From ce0585f77eec18ba908cd7210a91fb8eec110b1c Mon Sep 17 00:00:00 2001 From: Mihaela Mihaljevic Date: Wed, 24 Jun 2026 00:16:28 +0200 Subject: [PATCH] test(conformance): track all 402 suite cases; fix 3 regressions The gap-only manifest stopped guarding a case once it was fixed, so later work silently regressed previously-fixed cases (caught only by an external full-suite run, not the gated sweep or full corpus). Replace it with a full manifest of all 402 official cases (Tests/Fixtures/yaml-test-suite-manifest.yaml), each carrying its conformant expectation and a passing/gap status, with every case's files vendored. The gated sweep now asserts every passing case still passes (the regression guard) and every gap still reproduces, so any regression fails the build. The honest gate-enforced count is 329/402 passing (the earlier 348 came from a more lenient one-time oracle). Repairs three regressions the new gate revealed: the bucket-6 tab rule over-rejected tabs in block-scalar content and as separation before a scalar value (root cause: the batch scanner and the incremental TokenCursor had divergent line-start loops; unified onto a single scanStep, fixing 96NN/00, 96NN/01, R4YG, Y79Y/001, DK95/00, DK95/03, DK95/07, 6CA3, Q5MG, J3BT); an anchor on a prior line before an alias key wrongly rejected 26DV; and a tag-only flow key mis-parsed WZ62. Genuine tab-indentation errors (4EJS, Y79Y/000) still reject. --- .githooks/pre-commit | 1 + ATTRIBUTION.md | 8 +- CHANGELOG.md | 30 + Sources/Parsing/Scanner.BlockScalar.swift | 28 +- Sources/Parsing/Scanner.Indentation.swift | 32 +- Sources/Parsing/Scanner.Step.swift | 85 + Sources/Parsing/Scanner.swift | 43 +- Sources/Parsing/TokenCursor.swift | 31 +- Sources/Parsing/TokenEventParser.Flow.swift | 9 +- Sources/Parsing/TokenEventParser.swift | 11 +- Tests/Fixtures/yaml-test-suite-gaps.yaml | 498 --- Tests/Fixtures/yaml-test-suite-manifest.yaml | 3231 +++++++++++++++++ Tests/Fixtures/yaml-test-suite/229Q/in.json | 12 + Tests/Fixtures/yaml-test-suite/229Q/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/236B/error | 0 Tests/Fixtures/yaml-test-suite/236B/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/26DV/in.json | 18 + Tests/Fixtures/yaml-test-suite/26DV/in.yaml | 12 + Tests/Fixtures/yaml-test-suite/27NA/in.json | 1 + Tests/Fixtures/yaml-test-suite/27NA/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/2AUY/in.json | 6 + Tests/Fixtures/yaml-test-suite/2AUY/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/2CMS/error | 0 Tests/Fixtures/yaml-test-suite/2CMS/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/2EBW/in.json | 7 + Tests/Fixtures/yaml-test-suite/2EBW/in.yaml | 5 + .../Fixtures/yaml-test-suite/2G84/02/in.json | 1 + .../Fixtures/yaml-test-suite/2G84/02/in.yaml | 1 + .../Fixtures/yaml-test-suite/2G84/03/in.json | 1 + .../Fixtures/yaml-test-suite/2G84/03/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/2JQS/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/2LFX/in.json | 1 + Tests/Fixtures/yaml-test-suite/2LFX/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/2XXW/in.json | 5 + Tests/Fixtures/yaml-test-suite/2XXW/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/33X3/in.json | 5 + Tests/Fixtures/yaml-test-suite/33X3/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/35KP/in.json | 7 + Tests/Fixtures/yaml-test-suite/35KP/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/36F6/in.json | 3 + Tests/Fixtures/yaml-test-suite/36F6/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/3ALJ/in.json | 7 + Tests/Fixtures/yaml-test-suite/3ALJ/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/3GZX/in.json | 6 + Tests/Fixtures/yaml-test-suite/3GZX/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/3MYT/in.json | 1 + Tests/Fixtures/yaml-test-suite/3MYT/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/3R3P/in.json | 3 + Tests/Fixtures/yaml-test-suite/3R3P/in.yaml | 2 + .../Fixtures/yaml-test-suite/3RLN/00/in.json | 1 + .../Fixtures/yaml-test-suite/3RLN/00/in.yaml | 2 + .../Fixtures/yaml-test-suite/3RLN/01/in.json | 1 + .../Fixtures/yaml-test-suite/3RLN/01/in.yaml | 2 + .../Fixtures/yaml-test-suite/3RLN/02/in.json | 1 + .../Fixtures/yaml-test-suite/3RLN/02/in.yaml | 2 + .../Fixtures/yaml-test-suite/3RLN/03/in.json | 1 + .../Fixtures/yaml-test-suite/3RLN/03/in.yaml | 2 + .../Fixtures/yaml-test-suite/3RLN/04/in.json | 1 + .../Fixtures/yaml-test-suite/3RLN/04/in.yaml | 2 + .../Fixtures/yaml-test-suite/3RLN/05/in.json | 1 + .../Fixtures/yaml-test-suite/3RLN/05/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/3UYS/in.json | 3 + Tests/Fixtures/yaml-test-suite/3UYS/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/4ABK/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/4CQQ/in.json | 4 + Tests/Fixtures/yaml-test-suite/4CQQ/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/4EJS/error | 0 Tests/Fixtures/yaml-test-suite/4EJS/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/4FJ6/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/4GC6/in.json | 1 + Tests/Fixtures/yaml-test-suite/4GC6/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/4H7K/error | 0 Tests/Fixtures/yaml-test-suite/4H7K/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/4HVU/error | 0 Tests/Fixtures/yaml-test-suite/4HVU/in.yaml | 4 + .../Fixtures/yaml-test-suite/4MUZ/00/in.json | 3 + .../Fixtures/yaml-test-suite/4MUZ/00/in.yaml | 2 + .../Fixtures/yaml-test-suite/4MUZ/01/in.json | 3 + .../Fixtures/yaml-test-suite/4MUZ/01/in.yaml | 2 + .../Fixtures/yaml-test-suite/4MUZ/02/in.json | 3 + .../Fixtures/yaml-test-suite/4MUZ/02/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/4Q9F/in.json | 1 + Tests/Fixtures/yaml-test-suite/4Q9F/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/4QFQ/in.json | 6 + Tests/Fixtures/yaml-test-suite/4QFQ/in.yaml | 10 + Tests/Fixtures/yaml-test-suite/4RWC/in.json | 5 + Tests/Fixtures/yaml-test-suite/4RWC/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/4UYU/in.json | 1 + Tests/Fixtures/yaml-test-suite/4UYU/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/4V8U/in.json | 1 + Tests/Fixtures/yaml-test-suite/4V8U/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/4WA9/in.json | 6 + Tests/Fixtures/yaml-test-suite/4WA9/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/4ZYM/in.json | 5 + Tests/Fixtures/yaml-test-suite/4ZYM/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/52DL/in.json | 1 + Tests/Fixtures/yaml-test-suite/52DL/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/54T7/in.json | 4 + Tests/Fixtures/yaml-test-suite/54T7/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/565N/in.json | 5 + Tests/Fixtures/yaml-test-suite/565N/in.yaml | 12 + Tests/Fixtures/yaml-test-suite/58MP/in.json | 3 + Tests/Fixtures/yaml-test-suite/58MP/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/5BVJ/in.json | 4 + Tests/Fixtures/yaml-test-suite/5BVJ/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/5C5M/in.json | 10 + Tests/Fixtures/yaml-test-suite/5C5M/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/5GBF/in.json | 4 + Tests/Fixtures/yaml-test-suite/5GBF/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/5KJE/in.json | 10 + Tests/Fixtures/yaml-test-suite/5KJE/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/5LLU/error | 0 Tests/Fixtures/yaml-test-suite/5LLU/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/5MUD/in.json | 3 + Tests/Fixtures/yaml-test-suite/5MUD/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/5NYZ/in.json | 3 + Tests/Fixtures/yaml-test-suite/5NYZ/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/5T43/in.json | 8 + Tests/Fixtures/yaml-test-suite/5T43/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/5TRB/error | 0 Tests/Fixtures/yaml-test-suite/5TRB/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/5TYM/in.json | 2 + Tests/Fixtures/yaml-test-suite/5TYM/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/5WE3/in.json | 7 + Tests/Fixtures/yaml-test-suite/5WE3/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/652Z/in.json | 4 + Tests/Fixtures/yaml-test-suite/652Z/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/65WH/in.json | 3 + Tests/Fixtures/yaml-test-suite/65WH/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/6BCT/in.json | 9 + Tests/Fixtures/yaml-test-suite/6BCT/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/6CA3/in.json | 1 + Tests/Fixtures/yaml-test-suite/6CA3/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/6CK3/in.json | 5 + Tests/Fixtures/yaml-test-suite/6CK3/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/6FWR/in.json | 1 + Tests/Fixtures/yaml-test-suite/6FWR/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/6H3V/in.json | 3 + Tests/Fixtures/yaml-test-suite/6H3V/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/6HB6/in.json | 10 + Tests/Fixtures/yaml-test-suite/6HB6/in.yaml | 12 + Tests/Fixtures/yaml-test-suite/6JQW/in.json | 1 + Tests/Fixtures/yaml-test-suite/6JQW/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/6JTT/error | 0 Tests/Fixtures/yaml-test-suite/6JTT/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/6JWB/in.json | 8 + Tests/Fixtures/yaml-test-suite/6JWB/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/6KGN/in.json | 4 + Tests/Fixtures/yaml-test-suite/6KGN/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/6LVF/in.json | 1 + Tests/Fixtures/yaml-test-suite/6LVF/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/6M2F/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/6PBE/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/6S55/error | 0 Tests/Fixtures/yaml-test-suite/6S55/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/6SLA/in.json | 4 + Tests/Fixtures/yaml-test-suite/6SLA/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/6VJK/in.json | 1 + Tests/Fixtures/yaml-test-suite/6VJK/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/6WLZ/in.json | 2 + Tests/Fixtures/yaml-test-suite/6WLZ/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/6WPF/in.json | 1 + Tests/Fixtures/yaml-test-suite/6WPF/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/6XDY/in.json | 2 + Tests/Fixtures/yaml-test-suite/6XDY/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/6ZKB/in.json | 5 + Tests/Fixtures/yaml-test-suite/6ZKB/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/735Y/in.json | 7 + Tests/Fixtures/yaml-test-suite/735Y/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/74H7/in.json | 7 + Tests/Fixtures/yaml-test-suite/74H7/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/753E/in.json | 1 + Tests/Fixtures/yaml-test-suite/753E/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/7A4E/in.json | 1 + Tests/Fixtures/yaml-test-suite/7A4E/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/7BMT/in.json | 19 + Tests/Fixtures/yaml-test-suite/7BMT/in.yaml | 15 + Tests/Fixtures/yaml-test-suite/7BUB/in.json | 10 + Tests/Fixtures/yaml-test-suite/7BUB/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/7FWL/in.json | 3 + Tests/Fixtures/yaml-test-suite/7FWL/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/7MNF/error | 0 Tests/Fixtures/yaml-test-suite/7MNF/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/7T8X/in.json | 1 + Tests/Fixtures/yaml-test-suite/7T8X/in.yaml | 16 + Tests/Fixtures/yaml-test-suite/7TMG/in.json | 4 + Tests/Fixtures/yaml-test-suite/7TMG/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/7W2P/in.json | 5 + Tests/Fixtures/yaml-test-suite/7W2P/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/7Z25/in.json | 4 + Tests/Fixtures/yaml-test-suite/7Z25/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/82AN/in.json | 1 + Tests/Fixtures/yaml-test-suite/82AN/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/87E4/in.json | 7 + Tests/Fixtures/yaml-test-suite/87E4/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/8CWC/in.json | 3 + Tests/Fixtures/yaml-test-suite/8CWC/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/8G76/in.json | 0 Tests/Fixtures/yaml-test-suite/8G76/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/8KB6/in.json | 10 + Tests/Fixtures/yaml-test-suite/8KB6/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/8MK2/in.json | 1 + Tests/Fixtures/yaml-test-suite/8MK2/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/8QBE/in.json | 6 + Tests/Fixtures/yaml-test-suite/8QBE/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/8UDB/in.json | 11 + Tests/Fixtures/yaml-test-suite/8UDB/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/8XYN/in.json | 3 + Tests/Fixtures/yaml-test-suite/8XYN/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/93JH/in.json | 9 + Tests/Fixtures/yaml-test-suite/93JH/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/93WF/in.json | 1 + Tests/Fixtures/yaml-test-suite/93WF/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/96L6/in.json | 1 + Tests/Fixtures/yaml-test-suite/96L6/in.yaml | 4 + .../Fixtures/yaml-test-suite/96NN/00/in.json | 1 + .../Fixtures/yaml-test-suite/96NN/00/in.yaml | 2 + .../Fixtures/yaml-test-suite/96NN/01/in.json | 1 + .../Fixtures/yaml-test-suite/96NN/01/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/98YD/in.json | 0 Tests/Fixtures/yaml-test-suite/98YD/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/9BXH/in.json | 10 + Tests/Fixtures/yaml-test-suite/9BXH/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/9CWY/error | 0 Tests/Fixtures/yaml-test-suite/9CWY/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/9DXL/in.json | 7 + Tests/Fixtures/yaml-test-suite/9DXL/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/9FMG/in.json | 11 + Tests/Fixtures/yaml-test-suite/9FMG/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/9HCY/error | 0 Tests/Fixtures/yaml-test-suite/9HCY/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/9J7A/in.json | 5 + Tests/Fixtures/yaml-test-suite/9J7A/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/9KAX/in.json | 17 + Tests/Fixtures/yaml-test-suite/9KAX/in.yaml | 26 + Tests/Fixtures/yaml-test-suite/9KBC/error | 0 Tests/Fixtures/yaml-test-suite/9KBC/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/9MMA/error | 0 Tests/Fixtures/yaml-test-suite/9MMA/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/9MMW/in.yaml | 3 + .../Fixtures/yaml-test-suite/9MQT/00/in.json | 1 + .../Fixtures/yaml-test-suite/9MQT/00/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/9MQT/01/error | 0 .../Fixtures/yaml-test-suite/9MQT/01/in.json | 1 + .../Fixtures/yaml-test-suite/9MQT/01/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/9SA2/in.json | 8 + Tests/Fixtures/yaml-test-suite/9SA2/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/9SHH/in.json | 4 + Tests/Fixtures/yaml-test-suite/9SHH/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/9TFX/in.json | 1 + Tests/Fixtures/yaml-test-suite/9TFX/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/9U5K/in.json | 14 + Tests/Fixtures/yaml-test-suite/9U5K/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/9WXW/in.json | 2 + Tests/Fixtures/yaml-test-suite/9WXW/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/9YRD/in.json | 1 + Tests/Fixtures/yaml-test-suite/9YRD/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/A2M4/in.json | 9 + Tests/Fixtures/yaml-test-suite/A2M4/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/A6F9/in.json | 5 + Tests/Fixtures/yaml-test-suite/A6F9/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/A984/in.json | 4 + Tests/Fixtures/yaml-test-suite/A984/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/AB8U/in.json | 3 + Tests/Fixtures/yaml-test-suite/AB8U/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/AVM7/in.json | 0 Tests/Fixtures/yaml-test-suite/AVM7/in.yaml | 0 Tests/Fixtures/yaml-test-suite/AZ63/in.json | 7 + Tests/Fixtures/yaml-test-suite/AZ63/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/AZW3/in.json | 8 + Tests/Fixtures/yaml-test-suite/AZW3/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/B3HG/in.json | 1 + Tests/Fixtures/yaml-test-suite/B3HG/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/B63P/error | 0 Tests/Fixtures/yaml-test-suite/B63P/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/BD7L/error | 0 Tests/Fixtures/yaml-test-suite/BD7L/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/BEC7/in.json | 1 + Tests/Fixtures/yaml-test-suite/BEC7/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/BS4K/error | 0 Tests/Fixtures/yaml-test-suite/BS4K/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/BU8L/in.json | 5 + Tests/Fixtures/yaml-test-suite/BU8L/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/C2DT/in.json | 5 + Tests/Fixtures/yaml-test-suite/C2DT/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/C2SP/error | 0 Tests/Fixtures/yaml-test-suite/C2SP/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/C4HZ/in.json | 27 + Tests/Fixtures/yaml-test-suite/C4HZ/in.yaml | 14 + Tests/Fixtures/yaml-test-suite/CC74/in.json | 1 + Tests/Fixtures/yaml-test-suite/CC74/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/CFD4/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/CML9/error | 0 Tests/Fixtures/yaml-test-suite/CML9/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/CN3R/in.json | 14 + Tests/Fixtures/yaml-test-suite/CN3R/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/CPZ3/in.json | 3 + Tests/Fixtures/yaml-test-suite/CPZ3/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/CQ3W/error | 0 Tests/Fixtures/yaml-test-suite/CQ3W/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/CT4Q/in.json | 5 + Tests/Fixtures/yaml-test-suite/CT4Q/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/CUP7/in.json | 4 + Tests/Fixtures/yaml-test-suite/CUP7/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/D83L/in.json | 4 + Tests/Fixtures/yaml-test-suite/D83L/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/D88J/in.json | 6 + Tests/Fixtures/yaml-test-suite/D88J/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/D9TU/in.json | 3 + Tests/Fixtures/yaml-test-suite/D9TU/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/DBG4/in.json | 14 + Tests/Fixtures/yaml-test-suite/DBG4/in.yaml | 12 + .../Fixtures/yaml-test-suite/DE56/00/in.json | 1 + .../Fixtures/yaml-test-suite/DE56/00/in.yaml | 2 + .../Fixtures/yaml-test-suite/DE56/01/in.json | 1 + .../Fixtures/yaml-test-suite/DE56/01/in.yaml | 2 + .../Fixtures/yaml-test-suite/DE56/02/in.json | 1 + .../Fixtures/yaml-test-suite/DE56/02/in.yaml | 2 + .../Fixtures/yaml-test-suite/DE56/03/in.json | 1 + .../Fixtures/yaml-test-suite/DE56/03/in.yaml | 2 + .../Fixtures/yaml-test-suite/DE56/04/in.json | 1 + .../Fixtures/yaml-test-suite/DE56/04/in.yaml | 2 + .../Fixtures/yaml-test-suite/DE56/05/in.json | 1 + .../Fixtures/yaml-test-suite/DE56/05/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/DFF7/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/DHP8/in.json | 5 + Tests/Fixtures/yaml-test-suite/DHP8/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/DK3J/in.json | 1 + Tests/Fixtures/yaml-test-suite/DK3J/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/DK4H/error | 0 Tests/Fixtures/yaml-test-suite/DK4H/in.yaml | 3 + .../Fixtures/yaml-test-suite/DK95/00/in.json | 3 + .../Fixtures/yaml-test-suite/DK95/00/in.yaml | 2 + .../Fixtures/yaml-test-suite/DK95/02/in.json | 3 + .../Fixtures/yaml-test-suite/DK95/02/in.yaml | 2 + .../Fixtures/yaml-test-suite/DK95/03/in.json | 3 + .../Fixtures/yaml-test-suite/DK95/03/in.yaml | 2 + .../Fixtures/yaml-test-suite/DK95/04/in.json | 4 + .../Fixtures/yaml-test-suite/DK95/04/in.yaml | 3 + .../Fixtures/yaml-test-suite/DK95/05/in.json | 4 + .../Fixtures/yaml-test-suite/DK95/05/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/DK95/06/error | 0 .../Fixtures/yaml-test-suite/DK95/06/in.json | 4 + .../Fixtures/yaml-test-suite/DK95/06/in.yaml | 3 + .../Fixtures/yaml-test-suite/DK95/07/in.json | 1 + .../Fixtures/yaml-test-suite/DK95/07/in.yaml | 3 + .../Fixtures/yaml-test-suite/DK95/08/in.json | 3 + .../Fixtures/yaml-test-suite/DK95/08/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/DMG6/error | 0 Tests/Fixtures/yaml-test-suite/DMG6/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/DWX9/in.json | 1 + Tests/Fixtures/yaml-test-suite/DWX9/in.yaml | 9 + Tests/Fixtures/yaml-test-suite/E76Z/in.json | 4 + Tests/Fixtures/yaml-test-suite/E76Z/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/EB22/error | 0 Tests/Fixtures/yaml-test-suite/EB22/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/EHF6/in.json | 6 + Tests/Fixtures/yaml-test-suite/EHF6/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/EW3V/error | 0 Tests/Fixtures/yaml-test-suite/EW3V/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/EX5H/in.json | 1 + Tests/Fixtures/yaml-test-suite/EX5H/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/EXG3/in.json | 1 + Tests/Fixtures/yaml-test-suite/EXG3/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/F2C7/in.json | 6 + Tests/Fixtures/yaml-test-suite/F2C7/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/F3CP/in.json | 12 + Tests/Fixtures/yaml-test-suite/F3CP/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/F6MC/in.json | 4 + Tests/Fixtures/yaml-test-suite/F6MC/in.yaml | 9 + Tests/Fixtures/yaml-test-suite/F8F9/in.json | 5 + Tests/Fixtures/yaml-test-suite/F8F9/in.yaml | 19 + Tests/Fixtures/yaml-test-suite/FBC9/in.json | 6 + Tests/Fixtures/yaml-test-suite/FBC9/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/FP8R/in.json | 1 + Tests/Fixtures/yaml-test-suite/FP8R/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/FQ7F/in.json | 5 + Tests/Fixtures/yaml-test-suite/FQ7F/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/FRK4/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/FTA2/in.json | 3 + Tests/Fixtures/yaml-test-suite/FTA2/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/FUP4/in.json | 7 + Tests/Fixtures/yaml-test-suite/FUP4/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/G4RS/in.json | 8 + Tests/Fixtures/yaml-test-suite/G4RS/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/G7JE/error | 0 Tests/Fixtures/yaml-test-suite/G7JE/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/G992/in.json | 1 + Tests/Fixtures/yaml-test-suite/G992/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/G9HC/error | 0 Tests/Fixtures/yaml-test-suite/G9HC/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/GDY7/error | 0 Tests/Fixtures/yaml-test-suite/GDY7/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/GH63/in.json | 4 + Tests/Fixtures/yaml-test-suite/GH63/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/GT5M/error | 0 Tests/Fixtures/yaml-test-suite/GT5M/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/H2RW/in.json | 5 + Tests/Fixtures/yaml-test-suite/H2RW/in.yaml | 12 + Tests/Fixtures/yaml-test-suite/H3Z8/in.json | 3 + Tests/Fixtures/yaml-test-suite/H3Z8/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/H7TQ/error | 0 Tests/Fixtures/yaml-test-suite/H7TQ/in.yaml | 2 + .../Fixtures/yaml-test-suite/HM87/00/in.json | 3 + .../Fixtures/yaml-test-suite/HM87/00/in.yaml | 1 + .../Fixtures/yaml-test-suite/HM87/01/in.json | 3 + .../Fixtures/yaml-test-suite/HM87/01/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/HMK4/in.json | 5 + Tests/Fixtures/yaml-test-suite/HMK4/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/HMQ5/in.json | 4 + Tests/Fixtures/yaml-test-suite/HMQ5/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/HS5T/in.json | 1 + Tests/Fixtures/yaml-test-suite/HS5T/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/HWV9/in.json | 0 Tests/Fixtures/yaml-test-suite/HWV9/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/J5UC/in.json | 5 + Tests/Fixtures/yaml-test-suite/J5UC/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/J7PZ/in.json | 11 + Tests/Fixtures/yaml-test-suite/J7PZ/in.yaml | 11 + Tests/Fixtures/yaml-test-suite/J7VC/in.json | 4 + Tests/Fixtures/yaml-test-suite/J7VC/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/J9HZ/in.json | 10 + Tests/Fixtures/yaml-test-suite/J9HZ/in.yaml | 8 + .../Fixtures/yaml-test-suite/JEF9/00/in.json | 3 + .../Fixtures/yaml-test-suite/JEF9/00/in.yaml | 3 + .../Fixtures/yaml-test-suite/JEF9/01/in.json | 3 + .../Fixtures/yaml-test-suite/JEF9/01/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/JHB9/in.json | 9 + Tests/Fixtures/yaml-test-suite/JHB9/in.yaml | 10 + Tests/Fixtures/yaml-test-suite/JQ4R/in.json | 8 + Tests/Fixtures/yaml-test-suite/JQ4R/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/JR7V/in.json | 22 + Tests/Fixtures/yaml-test-suite/JR7V/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/JS2J/in.json | 4 + Tests/Fixtures/yaml-test-suite/JS2J/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/JTV5/in.json | 4 + Tests/Fixtures/yaml-test-suite/JTV5/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/K3WX/in.json | 3 + Tests/Fixtures/yaml-test-suite/K3WX/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/K4SU/in.json | 5 + Tests/Fixtures/yaml-test-suite/K4SU/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/K527/in.json | 1 + Tests/Fixtures/yaml-test-suite/K527/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/K54U/in.json | 1 + Tests/Fixtures/yaml-test-suite/K54U/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/K858/in.json | 5 + Tests/Fixtures/yaml-test-suite/K858/in.yaml | 6 + .../Fixtures/yaml-test-suite/KH5V/00/in.json | 1 + .../Fixtures/yaml-test-suite/KH5V/00/in.yaml | 1 + .../Fixtures/yaml-test-suite/KH5V/01/in.json | 1 + .../Fixtures/yaml-test-suite/KH5V/01/in.yaml | 1 + .../Fixtures/yaml-test-suite/KH5V/02/in.json | 1 + .../Fixtures/yaml-test-suite/KH5V/02/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/KK5P/in.yaml | 16 + Tests/Fixtures/yaml-test-suite/KMK3/in.json | 6 + Tests/Fixtures/yaml-test-suite/KMK3/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/KS4U/error | 0 Tests/Fixtures/yaml-test-suite/KS4U/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/KSS4/in.json | 2 + Tests/Fixtures/yaml-test-suite/KSS4/in.yaml | 3 + .../Fixtures/yaml-test-suite/L24T/00/in.json | 3 + .../Fixtures/yaml-test-suite/L24T/00/in.yaml | 3 + .../Fixtures/yaml-test-suite/L24T/01/in.json | 3 + .../Fixtures/yaml-test-suite/L24T/01/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/L383/in.json | 2 + Tests/Fixtures/yaml-test-suite/L383/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/L94M/in.json | 4 + Tests/Fixtures/yaml-test-suite/L94M/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/L9U5/in.json | 7 + Tests/Fixtures/yaml-test-suite/L9U5/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/LE5A/in.json | 7 + Tests/Fixtures/yaml-test-suite/LE5A/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/LHL4/error | 0 Tests/Fixtures/yaml-test-suite/LHL4/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/LP6E/in.json | 13 + Tests/Fixtures/yaml-test-suite/LP6E/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/LQZ7/in.json | 7 + Tests/Fixtures/yaml-test-suite/LQZ7/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/M29M/in.json | 3 + Tests/Fixtures/yaml-test-suite/M29M/in.yaml | 8 + .../Fixtures/yaml-test-suite/M2N8/00/in.yaml | 1 + .../Fixtures/yaml-test-suite/M2N8/01/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/M5DY/in.yaml | 9 + Tests/Fixtures/yaml-test-suite/M6YH/in.json | 9 + Tests/Fixtures/yaml-test-suite/M6YH/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/M7NX/in.json | 12 + Tests/Fixtures/yaml-test-suite/M7NX/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/M9B4/in.json | 1 + Tests/Fixtures/yaml-test-suite/M9B4/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/MJS9/in.json | 1 + Tests/Fixtures/yaml-test-suite/MJS9/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/MUS6/00/error | 0 .../Fixtures/yaml-test-suite/MUS6/00/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/MUS6/01/error | 0 .../Fixtures/yaml-test-suite/MUS6/01/in.yaml | 4 + .../Fixtures/yaml-test-suite/MUS6/02/in.json | 1 + .../Fixtures/yaml-test-suite/MUS6/02/in.yaml | 2 + .../Fixtures/yaml-test-suite/MUS6/03/in.json | 1 + .../Fixtures/yaml-test-suite/MUS6/03/in.yaml | 2 + .../Fixtures/yaml-test-suite/MUS6/04/in.json | 1 + .../Fixtures/yaml-test-suite/MUS6/04/in.yaml | 2 + .../Fixtures/yaml-test-suite/MUS6/05/in.json | 1 + .../Fixtures/yaml-test-suite/MUS6/05/in.yaml | 2 + .../Fixtures/yaml-test-suite/MUS6/06/in.json | 1 + .../Fixtures/yaml-test-suite/MUS6/06/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/MXS3/in.json | 5 + Tests/Fixtures/yaml-test-suite/MXS3/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/MYW6/in.json | 1 + Tests/Fixtures/yaml-test-suite/MYW6/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/MZX3/in.json | 7 + Tests/Fixtures/yaml-test-suite/MZX3/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/N4JP/error | 0 Tests/Fixtures/yaml-test-suite/N4JP/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/N782/error | 0 Tests/Fixtures/yaml-test-suite/N782/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/NAT4/in.json | 10 + Tests/Fixtures/yaml-test-suite/NAT4/in.yaml | 23 + Tests/Fixtures/yaml-test-suite/NHX8/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/NJ66/in.json | 8 + Tests/Fixtures/yaml-test-suite/NJ66/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/NKF9/in.yaml | 13 + Tests/Fixtures/yaml-test-suite/NP9H/in.json | 1 + Tests/Fixtures/yaml-test-suite/NP9H/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/P2AD/in.json | 6 + Tests/Fixtures/yaml-test-suite/P2AD/in.yaml | 9 + Tests/Fixtures/yaml-test-suite/P76L/in.json | 1 + Tests/Fixtures/yaml-test-suite/P76L/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/P94K/in.json | 3 + Tests/Fixtures/yaml-test-suite/P94K/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/PBJ2/in.json | 12 + Tests/Fixtures/yaml-test-suite/PBJ2/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/PRH3/in.json | 1 + Tests/Fixtures/yaml-test-suite/PRH3/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/PUW8/in.json | 4 + Tests/Fixtures/yaml-test-suite/PUW8/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/PW8X/in.yaml | 12 + Tests/Fixtures/yaml-test-suite/Q4CL/error | 0 Tests/Fixtures/yaml-test-suite/Q4CL/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/Q5MG/in.json | 1 + Tests/Fixtures/yaml-test-suite/Q5MG/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/Q88A/in.json | 12 + Tests/Fixtures/yaml-test-suite/Q88A/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/Q8AD/in.json | 1 + Tests/Fixtures/yaml-test-suite/Q8AD/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/QF4Y/in.json | 5 + Tests/Fixtures/yaml-test-suite/QF4Y/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/QT73/in.json | 0 Tests/Fixtures/yaml-test-suite/QT73/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/R4YG/in.json | 6 + Tests/Fixtures/yaml-test-suite/R4YG/in.yaml | 11 + Tests/Fixtures/yaml-test-suite/R52L/in.json | 10 + Tests/Fixtures/yaml-test-suite/R52L/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/RHX7/error | 0 Tests/Fixtures/yaml-test-suite/RHX7/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/RLU9/in.json | 8 + Tests/Fixtures/yaml-test-suite/RLU9/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/RR7F/in.json | 4 + Tests/Fixtures/yaml-test-suite/RR7F/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/RTP8/in.json | 1 + Tests/Fixtures/yaml-test-suite/RTP8/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/RXY3/error | 0 Tests/Fixtures/yaml-test-suite/RXY3/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/RZP5/in.yaml | 15 + Tests/Fixtures/yaml-test-suite/RZT7/in.json | 27 + Tests/Fixtures/yaml-test-suite/RZT7/in.yaml | 26 + Tests/Fixtures/yaml-test-suite/S3PD/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/S4GJ/error | 0 Tests/Fixtures/yaml-test-suite/S4GJ/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/S4T7/in.json | 3 + Tests/Fixtures/yaml-test-suite/S4T7/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/S7BG/in.json | 3 + Tests/Fixtures/yaml-test-suite/S7BG/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/S9E8/in.json | 10 + Tests/Fixtures/yaml-test-suite/S9E8/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/SBG9/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/SF5V/error | 0 Tests/Fixtures/yaml-test-suite/SF5V/in.yaml | 3 + .../Fixtures/yaml-test-suite/SM9W/00/in.json | 1 + .../Fixtures/yaml-test-suite/SM9W/00/in.yaml | 1 + .../Fixtures/yaml-test-suite/SM9W/01/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/SR86/error | 0 Tests/Fixtures/yaml-test-suite/SR86/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/SSW6/in.json | 1 + Tests/Fixtures/yaml-test-suite/SSW6/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/SU74/error | 0 Tests/Fixtures/yaml-test-suite/SU74/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/SYW4/in.json | 5 + Tests/Fixtures/yaml-test-suite/SYW4/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/T26H/in.json | 1 + Tests/Fixtures/yaml-test-suite/T26H/in.yaml | 9 + Tests/Fixtures/yaml-test-suite/T4YY/in.json | 1 + Tests/Fixtures/yaml-test-suite/T4YY/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/T5N4/in.json | 1 + Tests/Fixtures/yaml-test-suite/T5N4/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/T833/error | 0 Tests/Fixtures/yaml-test-suite/T833/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/TD5N/error | 0 Tests/Fixtures/yaml-test-suite/TD5N/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/TE2A/in.json | 5 + Tests/Fixtures/yaml-test-suite/TE2A/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/TL85/in.json | 1 + Tests/Fixtures/yaml-test-suite/TL85/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/TS54/in.json | 1 + Tests/Fixtures/yaml-test-suite/TS54/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/U3C3/in.json | 1 + Tests/Fixtures/yaml-test-suite/U3C3/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/U3XV/in.json | 19 + Tests/Fixtures/yaml-test-suite/U3XV/in.yaml | 17 + Tests/Fixtures/yaml-test-suite/U44R/error | 0 Tests/Fixtures/yaml-test-suite/U44R/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/U99R/error | 0 Tests/Fixtures/yaml-test-suite/U99R/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/U9NS/in.json | 10 + Tests/Fixtures/yaml-test-suite/U9NS/in.yaml | 10 + Tests/Fixtures/yaml-test-suite/UDM2/in.json | 5 + Tests/Fixtures/yaml-test-suite/UDM2/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/UDR7/in.json | 10 + Tests/Fixtures/yaml-test-suite/UDR7/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/UGM3/in.json | 41 + Tests/Fixtures/yaml-test-suite/UGM3/in.yaml | 29 + .../Fixtures/yaml-test-suite/UKK6/01/in.json | 3 + .../Fixtures/yaml-test-suite/UKK6/01/in.yaml | 1 + .../Fixtures/yaml-test-suite/UKK6/02/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/UT92/in.json | 4 + Tests/Fixtures/yaml-test-suite/UT92/in.yaml | 7 + Tests/Fixtures/yaml-test-suite/V55R/in.json | 6 + Tests/Fixtures/yaml-test-suite/V55R/in.yaml | 4 + .../Fixtures/yaml-test-suite/VJP3/01/in.json | 5 + .../Fixtures/yaml-test-suite/VJP3/01/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/W42U/in.json | 11 + Tests/Fixtures/yaml-test-suite/W42U/in.yaml | 6 + Tests/Fixtures/yaml-test-suite/W4TN/in.json | 2 + Tests/Fixtures/yaml-test-suite/W4TN/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/W5VH/in.json | 4 + Tests/Fixtures/yaml-test-suite/W5VH/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/W9L4/error | 0 Tests/Fixtures/yaml-test-suite/W9L4/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/WZ62/in.json | 4 + Tests/Fixtures/yaml-test-suite/WZ62/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/X38W/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/X8DW/in.json | 3 + Tests/Fixtures/yaml-test-suite/X8DW/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/XLQ9/in.json | 1 + Tests/Fixtures/yaml-test-suite/XLQ9/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/XV9V/in.json | 4 + Tests/Fixtures/yaml-test-suite/XV9V/in.yaml | 8 + Tests/Fixtures/yaml-test-suite/XW4D/in.yaml | 16 + Tests/Fixtures/yaml-test-suite/Y2GN/in.json | 3 + Tests/Fixtures/yaml-test-suite/Y2GN/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/Y79Y/000/error | 0 .../Fixtures/yaml-test-suite/Y79Y/000/in.yaml | 3 + .../Fixtures/yaml-test-suite/Y79Y/001/in.json | 4 + .../Fixtures/yaml-test-suite/Y79Y/001/in.yaml | 3 + .../Fixtures/yaml-test-suite/Y79Y/002/in.json | 5 + .../Fixtures/yaml-test-suite/Y79Y/002/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/Y79Y/004/error | 0 .../Fixtures/yaml-test-suite/Y79Y/004/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/Y79Y/005/error | 0 .../Fixtures/yaml-test-suite/Y79Y/005/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/Y79Y/006/error | 0 .../Fixtures/yaml-test-suite/Y79Y/006/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/Y79Y/007/error | 0 .../Fixtures/yaml-test-suite/Y79Y/007/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/Y79Y/008/error | 0 .../Fixtures/yaml-test-suite/Y79Y/008/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/Y79Y/009/error | 0 .../Fixtures/yaml-test-suite/Y79Y/009/in.yaml | 2 + .../Fixtures/yaml-test-suite/Y79Y/010/in.json | 3 + .../Fixtures/yaml-test-suite/Y79Y/010/in.yaml | 1 + Tests/Fixtures/yaml-test-suite/YD5X/in.json | 17 + Tests/Fixtures/yaml-test-suite/YD5X/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/Z67P/in.json | 4 + Tests/Fixtures/yaml-test-suite/Z67P/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/Z9M4/in.json | 3 + Tests/Fixtures/yaml-test-suite/Z9M4/in.yaml | 3 + Tests/Fixtures/yaml-test-suite/ZF4X/in.json | 10 + Tests/Fixtures/yaml-test-suite/ZF4X/in.yaml | 5 + Tests/Fixtures/yaml-test-suite/ZH7C/in.json | 4 + Tests/Fixtures/yaml-test-suite/ZH7C/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/ZK9H/in.json | 9 + Tests/Fixtures/yaml-test-suite/ZK9H/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/ZVH3/error | 0 Tests/Fixtures/yaml-test-suite/ZVH3/in.yaml | 2 + Tests/Fixtures/yaml-test-suite/ZWK4/in.json | 5 + Tests/Fixtures/yaml-test-suite/ZWK4/in.yaml | 4 + Tests/Fixtures/yaml-test-suite/ZXT5/error | 0 Tests/Fixtures/yaml-test-suite/ZXT5/in.yaml | 2 + Tests/YAMLTestSuiteGapsTests.swift | 135 +- docs/YAML_TEST_SUITE_CONFORMANCE.md | 125 +- scripts/check-yaml-test-suite.sh | 9 +- 690 files changed, 6392 insertions(+), 673 deletions(-) create mode 100644 Sources/Parsing/Scanner.Step.swift delete mode 100644 Tests/Fixtures/yaml-test-suite-gaps.yaml create mode 100644 Tests/Fixtures/yaml-test-suite-manifest.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/229Q/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/229Q/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/236B/error create mode 100644 Tests/Fixtures/yaml-test-suite/236B/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/26DV/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/26DV/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/27NA/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/27NA/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/2AUY/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/2AUY/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/2CMS/error create mode 100644 Tests/Fixtures/yaml-test-suite/2CMS/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/2EBW/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/2EBW/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/2G84/02/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/2G84/02/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/2G84/03/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/2G84/03/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/2JQS/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/2LFX/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/2LFX/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/2XXW/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/2XXW/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/33X3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/33X3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/35KP/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/35KP/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/36F6/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/36F6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3ALJ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3ALJ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3GZX/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3GZX/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3MYT/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3MYT/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3R3P/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3R3P/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/02/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/02/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/03/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/03/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/04/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/04/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/05/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3RLN/05/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/3UYS/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/3UYS/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4ABK/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4CQQ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4CQQ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4EJS/error create mode 100644 Tests/Fixtures/yaml-test-suite/4EJS/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4FJ6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4GC6/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4GC6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4H7K/error create mode 100644 Tests/Fixtures/yaml-test-suite/4H7K/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4HVU/error create mode 100644 Tests/Fixtures/yaml-test-suite/4HVU/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4MUZ/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4MUZ/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4MUZ/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4MUZ/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4MUZ/02/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4MUZ/02/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4Q9F/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4Q9F/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4QFQ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4QFQ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4RWC/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4RWC/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4UYU/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4UYU/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4V8U/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4V8U/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4WA9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4WA9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/4ZYM/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/4ZYM/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/52DL/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/52DL/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/54T7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/54T7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/565N/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/565N/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/58MP/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/58MP/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5BVJ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5BVJ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5C5M/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5C5M/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5GBF/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5GBF/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5KJE/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5KJE/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5LLU/error create mode 100644 Tests/Fixtures/yaml-test-suite/5LLU/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5MUD/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5MUD/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5NYZ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5NYZ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5T43/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5T43/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5TRB/error create mode 100644 Tests/Fixtures/yaml-test-suite/5TRB/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5TYM/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5TYM/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/5WE3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/5WE3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/652Z/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/652Z/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/65WH/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/65WH/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6BCT/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6BCT/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6CA3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6CA3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6CK3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6CK3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6FWR/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6FWR/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6H3V/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6H3V/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6HB6/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6HB6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6JQW/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6JQW/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6JTT/error create mode 100644 Tests/Fixtures/yaml-test-suite/6JTT/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6JWB/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6JWB/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6KGN/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6KGN/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6LVF/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6LVF/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6M2F/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6PBE/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6S55/error create mode 100644 Tests/Fixtures/yaml-test-suite/6S55/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6SLA/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6SLA/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6VJK/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6VJK/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6WLZ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6WLZ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6WPF/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6WPF/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6XDY/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6XDY/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/6ZKB/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/6ZKB/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/735Y/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/735Y/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/74H7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/74H7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/753E/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/753E/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7A4E/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/7A4E/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7BMT/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/7BMT/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7BUB/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/7BUB/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7FWL/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/7FWL/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7MNF/error create mode 100644 Tests/Fixtures/yaml-test-suite/7MNF/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7T8X/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/7T8X/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7TMG/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/7TMG/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7W2P/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/7W2P/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/7Z25/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/7Z25/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/82AN/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/82AN/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/87E4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/87E4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/8CWC/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/8CWC/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/8G76/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/8G76/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/8KB6/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/8KB6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/8MK2/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/8MK2/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/8QBE/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/8QBE/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/8UDB/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/8UDB/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/8XYN/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/8XYN/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/93JH/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/93JH/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/93WF/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/93WF/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/96L6/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/96L6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/96NN/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/96NN/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/96NN/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/96NN/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/98YD/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/98YD/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9BXH/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9BXH/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9CWY/error create mode 100644 Tests/Fixtures/yaml-test-suite/9CWY/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9DXL/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9DXL/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9FMG/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9FMG/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9HCY/error create mode 100644 Tests/Fixtures/yaml-test-suite/9HCY/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9J7A/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9J7A/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9KAX/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9KAX/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9KBC/error create mode 100644 Tests/Fixtures/yaml-test-suite/9KBC/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9MMA/error create mode 100644 Tests/Fixtures/yaml-test-suite/9MMA/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9MMW/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9MQT/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9MQT/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9MQT/01/error create mode 100644 Tests/Fixtures/yaml-test-suite/9MQT/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9MQT/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9SA2/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9SA2/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9SHH/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9SHH/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9TFX/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9TFX/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9U5K/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9U5K/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9WXW/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9WXW/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/9YRD/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/9YRD/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/A2M4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/A2M4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/A6F9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/A6F9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/A984/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/A984/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/AB8U/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/AB8U/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/AVM7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/AVM7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/AZ63/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/AZ63/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/AZW3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/AZW3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/B3HG/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/B3HG/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/B63P/error create mode 100644 Tests/Fixtures/yaml-test-suite/B63P/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/BD7L/error create mode 100644 Tests/Fixtures/yaml-test-suite/BD7L/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/BEC7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/BEC7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/BS4K/error create mode 100644 Tests/Fixtures/yaml-test-suite/BS4K/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/BU8L/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/BU8L/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/C2DT/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/C2DT/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/C2SP/error create mode 100644 Tests/Fixtures/yaml-test-suite/C2SP/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/C4HZ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/C4HZ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/CC74/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/CC74/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/CFD4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/CML9/error create mode 100644 Tests/Fixtures/yaml-test-suite/CML9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/CN3R/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/CN3R/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/CPZ3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/CPZ3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/CQ3W/error create mode 100644 Tests/Fixtures/yaml-test-suite/CQ3W/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/CT4Q/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/CT4Q/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/CUP7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/CUP7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/D83L/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/D83L/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/D88J/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/D88J/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/D9TU/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/D9TU/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DBG4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DBG4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/02/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/02/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/03/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/03/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/04/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/04/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/05/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DE56/05/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DFF7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DHP8/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DHP8/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK3J/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK3J/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK4H/error create mode 100644 Tests/Fixtures/yaml-test-suite/DK4H/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/02/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/02/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/03/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/03/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/04/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/04/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/05/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/05/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/06/error create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/06/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/06/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/07/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/07/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/08/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DK95/08/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DMG6/error create mode 100644 Tests/Fixtures/yaml-test-suite/DMG6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/DWX9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/DWX9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/E76Z/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/E76Z/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/EB22/error create mode 100644 Tests/Fixtures/yaml-test-suite/EB22/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/EHF6/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/EHF6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/EW3V/error create mode 100644 Tests/Fixtures/yaml-test-suite/EW3V/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/EX5H/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/EX5H/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/EXG3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/EXG3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/F2C7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/F2C7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/F3CP/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/F3CP/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/F6MC/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/F6MC/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/F8F9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/F8F9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/FBC9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/FBC9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/FP8R/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/FP8R/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/FQ7F/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/FQ7F/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/FRK4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/FTA2/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/FTA2/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/FUP4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/FUP4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/G4RS/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/G4RS/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/G7JE/error create mode 100644 Tests/Fixtures/yaml-test-suite/G7JE/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/G992/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/G992/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/G9HC/error create mode 100644 Tests/Fixtures/yaml-test-suite/G9HC/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/GDY7/error create mode 100644 Tests/Fixtures/yaml-test-suite/GDY7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/GH63/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/GH63/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/GT5M/error create mode 100644 Tests/Fixtures/yaml-test-suite/GT5M/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/H2RW/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/H2RW/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/H3Z8/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/H3Z8/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/H7TQ/error create mode 100644 Tests/Fixtures/yaml-test-suite/H7TQ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/HM87/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/HM87/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/HM87/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/HM87/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/HMK4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/HMK4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/HMQ5/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/HMQ5/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/HS5T/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/HS5T/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/HWV9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/HWV9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/J5UC/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/J5UC/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/J7PZ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/J7PZ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/J7VC/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/J7VC/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/J9HZ/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/J9HZ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/JEF9/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/JEF9/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/JEF9/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/JEF9/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/JHB9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/JHB9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/JQ4R/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/JQ4R/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/JR7V/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/JR7V/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/JS2J/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/JS2J/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/JTV5/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/JTV5/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/K3WX/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/K3WX/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/K4SU/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/K4SU/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/K527/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/K527/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/K54U/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/K54U/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/K858/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/K858/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/KH5V/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/KH5V/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/KH5V/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/KH5V/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/KH5V/02/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/KH5V/02/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/KK5P/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/KMK3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/KMK3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/KS4U/error create mode 100644 Tests/Fixtures/yaml-test-suite/KS4U/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/KSS4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/KSS4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/L24T/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/L24T/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/L24T/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/L24T/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/L383/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/L383/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/L94M/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/L94M/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/L9U5/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/L9U5/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/LE5A/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/LE5A/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/LHL4/error create mode 100644 Tests/Fixtures/yaml-test-suite/LHL4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/LP6E/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/LP6E/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/LQZ7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/LQZ7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/M29M/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/M29M/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/M2N8/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/M2N8/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/M5DY/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/M6YH/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/M6YH/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/M7NX/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/M7NX/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/M9B4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/M9B4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MJS9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MJS9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/00/error create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/01/error create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/02/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/02/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/03/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/03/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/04/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/04/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/05/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/05/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/06/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MUS6/06/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MXS3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MXS3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MYW6/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MYW6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/MZX3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/MZX3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/N4JP/error create mode 100644 Tests/Fixtures/yaml-test-suite/N4JP/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/N782/error create mode 100644 Tests/Fixtures/yaml-test-suite/N782/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/NAT4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/NAT4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/NHX8/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/NJ66/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/NJ66/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/NKF9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/NP9H/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/NP9H/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/P2AD/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/P2AD/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/P76L/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/P76L/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/P94K/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/P94K/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/PBJ2/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/PBJ2/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/PRH3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/PRH3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/PUW8/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/PUW8/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/PW8X/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Q4CL/error create mode 100644 Tests/Fixtures/yaml-test-suite/Q4CL/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Q5MG/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Q5MG/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Q88A/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Q88A/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Q8AD/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Q8AD/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/QF4Y/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/QF4Y/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/QT73/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/QT73/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/R4YG/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/R4YG/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/R52L/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/R52L/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/RHX7/error create mode 100644 Tests/Fixtures/yaml-test-suite/RHX7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/RLU9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/RLU9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/RR7F/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/RR7F/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/RTP8/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/RTP8/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/RXY3/error create mode 100644 Tests/Fixtures/yaml-test-suite/RXY3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/RZP5/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/RZT7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/RZT7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/S3PD/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/S4GJ/error create mode 100644 Tests/Fixtures/yaml-test-suite/S4GJ/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/S4T7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/S4T7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/S7BG/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/S7BG/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/S9E8/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/S9E8/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/SBG9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/SF5V/error create mode 100644 Tests/Fixtures/yaml-test-suite/SF5V/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/SM9W/00/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/SM9W/00/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/SM9W/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/SR86/error create mode 100644 Tests/Fixtures/yaml-test-suite/SR86/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/SSW6/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/SSW6/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/SU74/error create mode 100644 Tests/Fixtures/yaml-test-suite/SU74/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/SYW4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/SYW4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/T26H/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/T26H/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/T4YY/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/T4YY/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/T5N4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/T5N4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/T833/error create mode 100644 Tests/Fixtures/yaml-test-suite/T833/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/TD5N/error create mode 100644 Tests/Fixtures/yaml-test-suite/TD5N/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/TE2A/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/TE2A/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/TL85/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/TL85/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/TS54/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/TS54/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/U3C3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/U3C3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/U3XV/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/U3XV/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/U44R/error create mode 100644 Tests/Fixtures/yaml-test-suite/U44R/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/U99R/error create mode 100644 Tests/Fixtures/yaml-test-suite/U99R/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/U9NS/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/U9NS/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/UDM2/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/UDM2/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/UDR7/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/UDR7/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/UGM3/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/UGM3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/UKK6/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/UKK6/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/UKK6/02/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/UT92/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/UT92/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/V55R/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/V55R/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/VJP3/01/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/VJP3/01/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/W42U/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/W42U/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/W4TN/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/W4TN/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/W5VH/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/W5VH/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/W9L4/error create mode 100644 Tests/Fixtures/yaml-test-suite/W9L4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/WZ62/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/WZ62/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/X38W/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/X8DW/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/X8DW/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/XLQ9/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/XLQ9/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/XV9V/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/XV9V/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/XW4D/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y2GN/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Y2GN/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/000/error create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/000/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/001/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/001/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/002/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/002/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/004/error create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/004/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/005/error create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/005/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/006/error create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/006/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/007/error create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/007/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/008/error create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/008/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/009/error create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/009/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/010/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Y79Y/010/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/YD5X/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/YD5X/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Z67P/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Z67P/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/Z9M4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/Z9M4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/ZF4X/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/ZF4X/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/ZH7C/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/ZH7C/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/ZK9H/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/ZK9H/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/ZVH3/error create mode 100644 Tests/Fixtures/yaml-test-suite/ZVH3/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/ZWK4/in.json create mode 100644 Tests/Fixtures/yaml-test-suite/ZWK4/in.yaml create mode 100644 Tests/Fixtures/yaml-test-suite/ZXT5/error create mode 100644 Tests/Fixtures/yaml-test-suite/ZXT5/in.yaml diff --git a/.githooks/pre-commit b/.githooks/pre-commit index 603a28c..e4c04e0 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -64,6 +64,7 @@ SKIP_PATTERNS=( '^_archive/' '^Tests/Fixtures/acme/' '^Tests/Fixtures/real-yaml/' + '^Tests/Fixtures/yaml-test-suite/' # Rule files that DEFINE the prohibitions; they MUST be able to cite # the forbidden strings to document them. '/github-discipline\.md$' diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 5bdccb6..d88ec07 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -28,8 +28,8 @@ source for PureYAML. `Tests/Fixtures/yaml-test-suite/` contains input cases vendored from the official [YAML test suite](https://github.com/yaml/yaml-test-suite) (`data` branch, commit `6ad3d2c62885d82fc349026c136ef560838fdf3d`), which is distributed under the MIT -license. Only the cases PureYAML does not yet handle correctly are vendored, each as -its input (`in.yaml`), expected JSON projection (`in.json`), and expected-error -marker (`error`). `Tests/Fixtures/yaml-test-suite-gaps.yaml` records the provenance -and each case's current behavior. These files are test data, not implementation +license. All 402 cases (numbered sub-cases counted) are vendored, each as its input +(`in.yaml`), expected JSON projection (`in.json`), and/or expected-error marker +(`error`). `Tests/Fixtures/yaml-test-suite-manifest.yaml` records the provenance and +each case's conformance status. These files are test data, not implementation source. diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d33963..8b77009 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- Make the YAML test suite conformance gate comprehensive and repair the + regressions it revealed. The gap-only manifest (which deleted a case once fixed, + so nothing guarded it afterward and later work could silently regress it) is + replaced by a full manifest of all 402 official cases + (`Tests/Fixtures/yaml-test-suite-manifest.yaml`), each with its `id`, `name`, + `localPath`, conformant `expected` behavior, `oracle`, `byteCount`, `lineCount`, + and a `status` (`passing` | `gap`). Every case's files are vendored under + `Tests/Fixtures/yaml-test-suite/`. The gated sweep + (`PUREYAML_RUN_YAML_TEST_SUITE=1`) now asserts every `passing` case still passes + and every `gap` still reproduces, so a regression in any passing case fails the + sweep. Result at the pinned commit: **329 of 402 passing, 73 gap.** +- Stop over-rejecting tabs. A tab is invalid only as block-structure indentation + (`scanner.c` `scan_to_next_token` / `scan_block_scalar_breaks` / + `scan_plain_scalar`). Block indentation is now measured in spaces only; a tab is + left for the token scanner, which allows it inside block-scalar content once a + leading space fixes the content column (96NN/00, 96NN/01, R4YG, Y79Y/001), as + separation before a scalar value (DK95/00) or a flow node (6CA3, Q5MG, J3BT), and + on a whitespace-only blank line (DK95/03, DK95/07), while still rejecting genuine + tab indentation (4EJS, Y79Y/000, Y79Y/004-008, DK95/06). The batch scanner and the + incremental token cursor were unified onto a single `scanStep`, since their + divergence previously let the streaming parser miss a tab error the batch scanner + caught. +- Restore anchors/aliases as mapping keys for `26DV`: an anchor on a `key:` value + line followed by an indented `*alias :` key now anchors the nested mapping rather + than the alias key (which cannot carry properties); `&b *alias` on one line is + still rejected (SU74). +- Restore flow bare-tag/anchor keys for `WZ62` (`{ foo : !!str, !!str : bar, }` to + `{"foo":"", "":"bar"}`): a flow key introduced by a spliced `mappingKey` uses the + same key parser as the implicit form, so a bare tag before the `:` composes an + empty tagged scalar key instead of a mapping-as-key. - Complete flow-collection (`[...]`, `{...}`) parsing for keys, empty nodes, and multi-line scalars, fixing 10 official YAML test suite cases and removing them from the conformance gap manifest. The scanner now implements libyaml's diff --git a/Sources/Parsing/Scanner.BlockScalar.swift b/Sources/Parsing/Scanner.BlockScalar.swift index 79819b1..3d932fd 100644 --- a/Sources/Parsing/Scanner.BlockScalar.swift +++ b/Sources/Parsing/Scanner.BlockScalar.swift @@ -164,14 +164,7 @@ extension PureYAML.Parsing.Scanner { } state.reader.advance() } - // A tab where a block-scalar indentation space is expected is rejected, - // matching scanner.c:2993-2997 ("found a tab character where an - // indentation space is expected"). The tab only abuses indentation when - // it sits below the block's indent column (or while indent is still - // being auto-detected). - if state.reader.peek() == "\t", indent == 0 || blockScalarColumn(state) < indent { - throw PureYAML.Parsing.ParseError.tabIndentation(line: state.reader.mark.line) - } + try rejectBlockScalarIndentationTab(indent: indent, state: state) if blockScalarColumn(state) > maxIndent { maxIndent = blockScalarColumn(state) } @@ -193,6 +186,25 @@ extension PureYAML.Parsing.Scanner { } } + /// Rejects a tab where a block-scalar indentation space is expected, matching + /// scanner.c:2993-2997 ("found a tab character where an indentation space is + /// expected"). The tab abuses indentation only when it would itself supply the + /// block's indent: with a fixed indent, that is any tab below the content column; + /// while auto-detecting (`indent == 0`), a tab at column 0 (no space established a + /// content column) is illegal, but a tab after one or more leading spaces is the + /// first content character of an indented line, so the spaces fix the indent and + /// the tab is preserved as content. + private func rejectBlockScalarIndentationTab(indent: Int, state: State) throws { + guard state.reader.peek() == "\t" else { + return + } + let column = blockScalarColumn(state) + let abusesIndentation = indent > 0 ? column < indent : column == 0 + if abusesIndentation { + throw PureYAML.Parsing.ParseError.tabIndentation(line: state.reader.mark.line) + } + } + /// Reads a single line break, normalizing CR and CRLF to a single `\n`. private func readBlockScalarLineBreak(_ state: inout State) -> String { guard isLineBreak(state.reader.peek()) else { diff --git a/Sources/Parsing/Scanner.Indentation.swift b/Sources/Parsing/Scanner.Indentation.swift index 3e6c618..bd289b8 100644 --- a/Sources/Parsing/Scanner.Indentation.swift +++ b/Sources/Parsing/Scanner.Indentation.swift @@ -27,31 +27,21 @@ extension PureYAML.Parsing.Scanner { func scanIndentationWidth(_ state: inout State) throws -> Int { var width = 0 - while let character = state.reader.peek() { - if character == " " { - width += 1 - state.reader.advance() - } else if character == "\t" { - // A tab may not provide block indentation. At the start of a block - // line a simple key is allowed, so libyaml does not consume the tab - // as whitespace and the line is malformed (scanner.c:1948-1953). A - // tab is only legal here once it follows content on the same line. - if state.flowDepth == 0, state.simpleKeyAllowed { - throw PureYAML.Parsing.ParseError.tabIndentation(line: state.reader.mark.line) - } - width = nextTabStop(after: width) - state.reader.advance() - } else { - return width - } + while state.reader.peek() == " " { + width += 1 + state.reader.advance() } + // Block indentation (s-indent) is spaces only: a tab is never indentation + // (scanner.c's scan_to_next_token eats only spaces unconditionally). The tab + // is left under the reader so the token scanner can decide whether it is legal + // in-line separation (before a scalar value or flow node) or an illegal tab + // that supplies the indentation of a nested block node; `rejectTabSeparation` + // and the blank-line handling in `scan` make that call. A whitespace-only line + // (spaces and/or tabs followed by a break) is a blank line and carries no + // indentation token. return width } - func nextTabStop(after width: Int) -> Int { - ((width / 4) + 1) * 4 - } - func shouldProcessIndentation(_ state: State) -> Bool { guard !state.reader.isAtEnd, !isLineBreak(state.reader.peek()) else { return false diff --git a/Sources/Parsing/Scanner.Step.swift b/Sources/Parsing/Scanner.Step.swift new file mode 100644 index 0000000..4f8812c --- /dev/null +++ b/Sources/Parsing/Scanner.Step.swift @@ -0,0 +1,85 @@ +extension PureYAML.Parsing.Scanner { + /// Result of one scanning iteration over the source. Both the batch ``scan`` + /// loop and the incremental ``PureYAML/Parsing/TokenCursor`` driver share the + /// same step so the two paths cannot diverge (a divergence is what once let a + /// tab-indentation error slip past the streaming parser while the batch scanner + /// caught it). + enum Step { + /// Nothing remains; the caller appends stream end and stops. + case endOfInput + /// A line break, blank line, or comment was consumed; restart the loop. + case advanced + /// A directive or document marker was scanned; restart the loop. + case scannedMarker + /// An ordinary token was scanned. + case scannedToken + } + + /// Performs one scanning iteration: consumes a leading line break or blank line, + /// scans indentation at a line start, then scans either a directive / document + /// marker or one ordinary token. Resets `simpleKeyAllowed` at every block-context + /// line break so a tab at the next line start is recognized as (illegal) + /// indentation rather than (legal) in-line separation. + func scanStep(_ state: inout State) throws -> Step { + if state.reader.isAtEnd { + return .endOfInput + } + if isLineBreak(state.reader.peek()) { + state.reader.advance() + state.isAtLineStart = true + if state.flowDepth == 0 { + state.simpleKeyAllowed = true + } + return .advanced + } + + if state.isAtLineStart { + // A line whose entire content is blanks (spaces and/or tabs) before the + // break is a blank line: it carries no indentation and no token, matching + // scanner.c's scan_to_next_token, which eats the blanks and the break + // before any indent processing. Consuming it here keeps a whitespace-only + // line (e.g. `· \t`) from emitting a spurious indent token or being + // mis-scanned as content. + if consumeBlankLineRemainder(&state) { + return .advanced + } + try scanIndentation(&state) + if state.reader.isAtEnd || isLineBreak(state.reader.peek()) { + return .advanced + } + if try scanDirectiveOrDocumentMarker(&state) { + return .scannedMarker + } + state.isAtLineStart = false + } + + try scanToken(&state) + return .scannedToken + } + + /// When the reader sits on a run of blanks (spaces and/or tabs) that ends the + /// line (a line break or end of input follows), consumes that run plus the line + /// break and reports true: the line was blank. Otherwise leaves the reader where + /// it was and reports false. Used so a whitespace-only line (e.g. `· \t`) is + /// skipped rather than mis-scanned as plain-scalar content. + func consumeBlankLineRemainder(_ state: inout State) -> Bool { + var offset = 0 + while let character = state.reader.peek(offset: offset), character == " " || character == "\t" { + offset += 1 + } + let next = state.reader.peek(offset: offset) + guard next == nil || isLineBreak(next) else { + return false + } + for _ in 0 ..< offset { + state.reader.advance() + } + if isLineBreak(state.reader.peek()) { + state.reader.advance() + if state.flowDepth == 0 { + state.simpleKeyAllowed = true + } + } + return true + } +} diff --git a/Sources/Parsing/Scanner.swift b/Sources/Parsing/Scanner.swift index adba375..65d8cd4 100644 --- a/Sources/Parsing/Scanner.swift +++ b/Sources/Parsing/Scanner.swift @@ -6,31 +6,13 @@ extension PureYAML.Parsing { var state = State(reader: Reader(yaml)) state.append(.streamStart) - while !state.reader.isAtEnd { - if isLineBreak(state.reader.peek()) { - state.reader.advance() - state.isAtLineStart = true - if state.flowDepth == 0 { - state.simpleKeyAllowed = true - } + loop: while !state.reader.isAtEnd { + switch try scanStep(&state) { + case .endOfInput: + break loop + case .advanced, .scannedMarker, .scannedToken: continue } - - if state.isAtLineStart { - try scanIndentation(&state) - if state.reader.isAtEnd { - break - } - if isLineBreak(state.reader.peek()) { - continue - } - if try scanDirectiveOrDocumentMarker(&state) { - continue - } - state.isAtLineStart = false - } - - try scanToken(&state) } if state.hasPendingDirective { @@ -132,8 +114,9 @@ extension PureYAML.Parsing.Scanner { extension PureYAML.Parsing.Scanner { func scanToken(_ state: inout State) throws { - skipSeparation(&state) + skipSpaceSeparation(&state) try rejectTabSeparation(&state) + skipSeparation(&state) guard let character = state.reader.peek(), !isLineBreak(character) else { return } @@ -249,12 +232,22 @@ extension PureYAML.Parsing.Scanner { } } - func skipSeparation(_ state: inout State) { + func skipSpaceSeparation(_ state: inout State) { while state.reader.peek() == " " { state.reader.advance() } } + func skipSeparation(_ state: inout State) { + // In-line separation (s-white) is spaces and tabs. `rejectTabSeparation` has + // already rejected any tab that would supply the indentation of a nested block + // node, so a tab still under the reader here is ordinary separation before a + // scalar value or flow node and is consumed like a space (scanner.c IS_BLANK). + while let character = state.reader.peek(), character == " " || character == "\t" { + state.reader.advance() + } + } + func scanFixedToken( _ kind: PureYAML.Parsing.TokenKind, state: inout State, diff --git a/Sources/Parsing/TokenCursor.swift b/Sources/Parsing/TokenCursor.swift index 6e8cb5f..62f632e 100644 --- a/Sources/Parsing/TokenCursor.swift +++ b/Sources/Parsing/TokenCursor.swift @@ -83,7 +83,7 @@ extension PureYAML.Parsing { // flow collection's tokens must stay in `state.tokens` until it closes // for the retroactive index to remain valid. while scannerBox.state.tokens.isEmpty || scannerBox.state.flowDepth > 0 { - guard !scannerBox.state.reader.isAtEnd else { + if scannerBox.state.reader.isAtEnd { if scannerBox.state.hasPendingDirective { throw PureYAML.Parsing.ParseError.directiveWithoutDocument( line: scannerBox.state.reader.mark.line, @@ -96,30 +96,13 @@ extension PureYAML.Parsing { return } - if scanner.isLineBreak(scannerBox.state.reader.peek()) { - scannerBox.state.reader.advance() - scannerBox.state.isAtLineStart = true - continue + // Drive the same scanning step the batch scanner uses, so the two + // paths share one source of truth for line breaks, blank lines, + // indentation, and `simpleKeyAllowed` handling. + let step = try scanner.scanStep(&scannerBox.state) + if case .scannedMarker = step, !scannerBox.state.tokens.isEmpty { + break } - - if scannerBox.state.isAtLineStart { - try scanner.scanIndentation(&scannerBox.state) - if scannerBox.state.reader.isAtEnd { - continue - } - if scanner.isLineBreak(scannerBox.state.reader.peek()) { - continue - } - if try scanner.scanDirectiveOrDocumentMarker(&scannerBox.state) { - if !scannerBox.state.tokens.isEmpty { - break - } - continue - } - scannerBox.state.isAtLineStart = false - } - - try scanner.scanToken(&scannerBox.state) } drainScannedTokens(from: &scannerBox.state) diff --git a/Sources/Parsing/TokenEventParser.Flow.swift b/Sources/Parsing/TokenEventParser.Flow.swift index ad60110..7cb237b 100644 --- a/Sources/Parsing/TokenEventParser.Flow.swift +++ b/Sources/Parsing/TokenEventParser.Flow.swift @@ -129,7 +129,14 @@ extension PureYAML.Parsing.TokenEventParser { if flowKeyIsEmpty() { try emitEmptyScalar(properties: .none, mark: keyIndicator.endMark) } else { - _ = try parseNode() + // The key of a flow pair follows the same rules whether the pair was + // introduced by an explicit `?` or had a `mappingKey` spliced in by the + // simple-key mechanism: a bare tag/anchor before the `:` composes an empty + // tagged scalar key (`{ !!str : bar }`), and an alias before the `:` is the + // key itself. Routing through `parseNode` would instead treat the tag/`:` + // as a nested block mapping, so use the flow key parser shared with the + // implicit form. + try parseFlowMappingImplicitKey() } return try parseFlowMappingValue() } diff --git a/Sources/Parsing/TokenEventParser.swift b/Sources/Parsing/TokenEventParser.swift index e5382b6..8d09f14 100644 --- a/Sources/Parsing/TokenEventParser.swift +++ b/Sources/Parsing/TokenEventParser.swift @@ -259,11 +259,18 @@ extension PureYAML.Parsing.TokenEventParser { // An alias is a complete reference to an already-anchored node and cannot // itself carry an anchor or tag. libyaml handles ALIAS as the first branch // of yaml_parser_parse_node (parser.c:563-570), so the property branches - // are unreachable for an alias; mirror that by rejecting `&b *alias`. - if properties.anchor != nil || properties.tag != nil { + // are unreachable for an alias; mirror that by rejecting `&b *alias`. The + // rejection applies only when the property sits on the *same line* as the + // alias: a property scanned on the previous line (e.g. `key: &anchor` then an + // indented `*alias : value`) anchors the enclosing mapping, not the alias key. + let hasProperties = properties.anchor != nil || properties.tag != nil + if hasProperties, properties.mark?.line == token.mark.line { let mark = properties.mark ?? token.mark throw PureYAML.Parsing.ParseError.expectedNode(line: mark.line, column: mark.column) } + // An alias immediately followed by a `:` is the first key of a block mapping; + // any property that reached here belongs to the mapping (it was on a prior + // line, per the check above), so route into the mapping carrying it. if try cursor.peek()?.kind.isMappingValue == true { return try parseBlockMapping( properties: properties, diff --git a/Tests/Fixtures/yaml-test-suite-gaps.yaml b/Tests/Fixtures/yaml-test-suite-gaps.yaml deleted file mode 100644 index 492a6ad..0000000 --- a/Tests/Fixtures/yaml-test-suite-gaps.yaml +++ /dev/null @@ -1,498 +0,0 @@ -version: 1 -description: PureYAML conformance gaps vs the official YAML test suite -source: - repository: yaml/yaml-test-suite - branch: data - commit: 6ad3d2c62885d82fc349026c136ef560838fdf3d - license: MIT -# Each entry is a case PureYAML does NOT yet handle correctly. -# category: false-reject | json-mismatch | accepted-invalid -# expected: what a conformant parser must do (parse-ok | reject) -# current: PureYAML's present behavior (parse-error | value-mismatch | accepted) -cases: - - id: "2G84/00" - name: "Literal modifers" - localPath: yaml-test-suite/2G84/00/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 7 - lineCount: 1 - - id: "2G84/01" - name: "Literal modifers" - localPath: yaml-test-suite/2G84/01/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 8 - lineCount: 1 - - id: "2SXE" - name: "Anchors With Colon in Name" - localPath: yaml-test-suite/2SXE/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 29 - lineCount: 3 - - id: "3HFZ" - name: "Invalid content after document end marker" - localPath: yaml-test-suite/3HFZ/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 27 - lineCount: 3 - - id: "4JVG" - name: "Scalar value with two anchors" - localPath: yaml-test-suite/4JVG/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 54 - lineCount: 4 - - id: "55WF" - name: "Invalid escape in double quoted string" - localPath: yaml-test-suite/55WF/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 9 - lineCount: 2 - - id: "57H4" - name: "Spec Example 8.22. Block Collection Nodes" - localPath: yaml-test-suite/57H4/in.yaml - category: false-reject - expected: parse-ok - oracle: json - current: parse-error - byteCount: 67 - lineCount: 6 - - id: "5U3A" - name: "Sequence on same Line as Mapping Key" - localPath: yaml-test-suite/5U3A/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 18 - lineCount: 2 - - id: "62EZ" - name: "Invalid block mapping key on same line as previous key" - localPath: yaml-test-suite/62EZ/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 25 - lineCount: 2 - - id: "6BFJ" - name: "Mapping, key and flow sequence item anchors" - localPath: yaml-test-suite/6BFJ/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 43 - lineCount: 3 - - id: "7LBH" - name: "Multiline double quoted implicit keys" - localPath: yaml-test-suite/7LBH/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 20 - lineCount: 3 - - id: "7ZZ5" - name: "Empty flow collections" - localPath: yaml-test-suite/7ZZ5/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 58 - lineCount: 6 - - id: "8XDJ" - name: "Comment in plain multiline value" - localPath: yaml-test-suite/8XDJ/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 26 - lineCount: 3 - - id: "9C9N" - name: "Wrong indented flow sequence" - localPath: yaml-test-suite/9C9N/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 20 - lineCount: 4 - - id: "9JBA" - name: "Invalid comment after end of flow sequence" - localPath: yaml-test-suite/9JBA/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 25 - lineCount: 2 - - id: "9MAG" - name: "Flow sequence with invalid comma at the beginning" - localPath: yaml-test-suite/9MAG/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 18 - lineCount: 2 - - id: "BF9H" - name: "Trailing comment in multiline plain scalar" - localPath: yaml-test-suite/BF9H/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 47 - lineCount: 4 - - id: "CTN5" - name: "Flow sequence with invalid extra comma" - localPath: yaml-test-suite/CTN5/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 19 - lineCount: 2 - - id: "CVW2" - name: "Invalid comment after comma" - localPath: yaml-test-suite/CVW2/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 25 - lineCount: 3 - - id: "CXX2" - name: "Mapping with anchor on document start line" - localPath: yaml-test-suite/CXX2/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 17 - lineCount: 1 - - id: "D49Q" - name: "Multiline single quoted implicit keys" - localPath: yaml-test-suite/D49Q/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 20 - lineCount: 3 - - id: "DC7X" - name: "Various trailing tabs" - localPath: yaml-test-suite/DC7X/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 26 - lineCount: 4 - - id: "DK95/01" - name: "Tabs that look like indentation" - localPath: yaml-test-suite/DK95/01/in.yaml - category: accepted-invalid - expected: reject - oracle: json - current: accepted - byteCount: 16 - lineCount: 2 - - id: "FH7J" - name: "Tags on Empty Scalars" - localPath: yaml-test-suite/FH7J/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 51 - lineCount: 5 - - id: "G5U8" - name: "Plain dashes in flow sequence" - localPath: yaml-test-suite/G5U8/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 13 - lineCount: 2 - - id: "H7J7" - name: "Node anchor not indented" - localPath: yaml-test-suite/H7J7/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 21 - lineCount: 3 - - id: "HRE5" - name: "Double quoted scalar with escaped single quote" - localPath: yaml-test-suite/HRE5/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 31 - lineCount: 2 - - id: "HU3P" - name: "Invalid Mapping in plain scalar" - localPath: yaml-test-suite/HU3P/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 29 - lineCount: 3 - - id: "J3BT" - name: "Spec Example 5.12. Tabs and Spaces" - localPath: yaml-test-suite/J3BT/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 96 - lineCount: 6 - - id: "JEF9/02" - name: "Trailing whitespace in streams" - localPath: yaml-test-suite/JEF9/02/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 8 - lineCount: 1 - - id: "JKF3" - name: "Multiline unidented double quoted block key" - localPath: yaml-test-suite/JKF3/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 17 - lineCount: 2 - - id: "JY7Z" - name: "Trailing content that looks like a mapping" - localPath: yaml-test-suite/JY7Z/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 66 - lineCount: 3 - - id: "LX3P" - name: "Implicit Flow Mapping Key on one line" - localPath: yaml-test-suite/LX3P/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 14 - lineCount: 1 - - id: "M5C3" - name: "Spec Example 8.21. Block Scalar Nodes" - localPath: yaml-test-suite/M5C3/in.yaml - category: false-reject - expected: parse-ok - oracle: json - current: parse-error - byteCount: 48 - lineCount: 6 - - id: "M7A3" - name: "Spec Example 9.3. Bare Documents" - localPath: yaml-test-suite/M7A3/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 74 - lineCount: 7 - - id: "NB6Z" - name: "Multiline plain value with tabs on empty lines" - localPath: yaml-test-suite/NB6Z/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 31 - lineCount: 5 - - id: "P2EQ" - name: "Invalid sequene item on same line as previous item" - localPath: yaml-test-suite/P2EQ/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 24 - lineCount: 2 - - id: "Q9WF" - name: "Spec Example 6.12. Separation Spaces" - localPath: yaml-test-suite/Q9WF/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 97 - lineCount: 6 - - id: "QB6E" - name: "Wrong indented multiline quoted scalar" - localPath: yaml-test-suite/QB6E/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 20 - lineCount: 4 - - id: "QLJ7" - name: "Tag shorthand used in documents but only defined in the first" - localPath: yaml-test-suite/QLJ7/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 93 - lineCount: 7 - - id: "S4JQ" - name: "Spec Example 6.28. Non-Specific Tags" - localPath: yaml-test-suite/S4JQ/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 55 - lineCount: 4 - - id: "S98Z" - name: "Block scalar with more spaces than first content line" - localPath: yaml-test-suite/S98Z/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 42 - lineCount: 5 - - id: "SKE5" - name: "Anchor before zero indented sequence" - localPath: yaml-test-suite/SKE5/in.yaml - category: false-reject - expected: parse-ok - oracle: json - current: parse-error - byteCount: 26 - lineCount: 5 - - id: "SU5Z" - name: "Comment without whitespace after doublequoted scalar" - localPath: yaml-test-suite/SU5Z/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 30 - lineCount: 1 - - id: "SY6V" - name: "Anchor before sequence entry on same line" - localPath: yaml-test-suite/SY6V/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 25 - lineCount: 1 - - id: "UKK6/00" - name: "Syntax character edge cases" - localPath: yaml-test-suite/UKK6/00/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 4 - lineCount: 1 - - id: "UV7Q" - name: "Legal tab after indentation" - localPath: yaml-test-suite/UV7Q/in.yaml - category: json-mismatch - expected: parse-ok - oracle: json - current: value-mismatch - byteCount: 13 - lineCount: 3 - - id: "V9D5" - name: "Spec Example 8.19. Compact Block Mappings" - localPath: yaml-test-suite/V9D5/in.yaml - category: false-reject - expected: parse-ok - oracle: none - current: parse-error - byteCount: 46 - lineCount: 3 - - id: "VJP3/00" - name: "Flow collections over many lines" - localPath: yaml-test-suite/VJP3/00/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 13 - lineCount: 5 - - id: "X4QW" - name: "Comment without whitespace after block scalar indicator" - localPath: yaml-test-suite/X4QW/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 27 - lineCount: 2 - - id: "Y79Y/003" - name: "Tabs in various contexts" - localPath: yaml-test-suite/Y79Y/003/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 18 - lineCount: 4 - - id: "YJV2" - name: "Dash in flow sequence" - localPath: yaml-test-suite/YJV2/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 4 - lineCount: 1 - - id: "ZCZ6" - name: "Invalid mapping in plain single line value" - localPath: yaml-test-suite/ZCZ6/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 11 - lineCount: 1 - - id: "ZL4Z" - name: "Invalid nested mapping" - localPath: yaml-test-suite/ZL4Z/in.yaml - category: accepted-invalid - expected: reject - oracle: none - current: accepted - byteCount: 14 - lineCount: 2 diff --git a/Tests/Fixtures/yaml-test-suite-manifest.yaml b/Tests/Fixtures/yaml-test-suite-manifest.yaml new file mode 100644 index 0000000..b78eea3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite-manifest.yaml @@ -0,0 +1,3231 @@ +version: 2 +description: PureYAML conformance status vs the official YAML test suite +source: + repository: yaml/yaml-test-suite + branch: data + commit: 6ad3d2c62885d82fc349026c136ef560838fdf3d + license: MIT +# Full manifest of all official suite cases (numbered sub-cases counted). +# expected: what a conformant parser must do (parse-ok | reject) +# oracle: json if in.json present, else none +# status: passing (PureYAML conformant today) | gap (not yet conformant) +total: 402 +passing: 329 +gap: 73 +cases: + - id: "229Q" + name: "Spec Example 2.4. Sequence of Mappings" + localPath: yaml-test-suite/229Q/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 94 + lineCount: 8 + - id: "236B" + name: "Invalid value after mapping" + localPath: yaml-test-suite/236B/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 19 + lineCount: 3 + - id: "26DV" + name: "Whitespace around colon in mappings" + localPath: yaml-test-suite/26DV/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 193 + lineCount: 12 + - id: "27NA" + name: "Spec Example 5.9. Directive Indicator" + localPath: yaml-test-suite/27NA/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 2 + - id: "2AUY" + name: "Tags in Block Sequence" + localPath: yaml-test-suite/2AUY/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 33 + lineCount: 4 + - id: "2CMS" + name: "Invalid mapping in plain multiline" + localPath: yaml-test-suite/2CMS/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 22 + lineCount: 3 + - id: "2EBW" + name: "Allowed characters in keys" + localPath: yaml-test-suite/2EBW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 127 + lineCount: 5 + - id: "2G84/00" + name: "Literal modifers" + localPath: yaml-test-suite/2G84/00/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 7 + lineCount: 1 + - id: "2G84/01" + name: "Literal modifers" + localPath: yaml-test-suite/2G84/01/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 8 + lineCount: 1 + - id: "2G84/02" + name: "Literal modifers" + localPath: yaml-test-suite/2G84/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 7 + lineCount: 0 + - id: "2G84/03" + name: "Literal modifers" + localPath: yaml-test-suite/2G84/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 7 + lineCount: 0 + - id: "2JQS" + name: "Block Mapping with Missing Keys" + localPath: yaml-test-suite/2JQS/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 8 + lineCount: 2 + - id: "2LFX" + name: "Spec Example 6.13. Reserved Directives [1.3]" + localPath: yaml-test-suite/2LFX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 76 + lineCount: 4 + - id: "2SXE" + name: "Anchors With Colon in Name" + localPath: yaml-test-suite/2SXE/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 29 + lineCount: 3 + - id: "2XXW" + name: "Spec Example 2.25. Unordered Sets" + localPath: yaml-test-suite/2XXW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 137 + lineCount: 7 + - id: "33X3" + name: "Three explicit integers in a block sequence" + localPath: yaml-test-suite/33X3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 36 + lineCount: 4 + - id: "35KP" + name: "Tags for Root Objects" + localPath: yaml-test-suite/35KP/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 52 + lineCount: 8 + - id: "36F6" + name: "Multiline plain scalar with empty line" + localPath: yaml-test-suite/36F6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 5 + - id: "3ALJ" + name: "Block Sequence in Block Sequence" + localPath: yaml-test-suite/3ALJ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 3 + - id: "3GZX" + name: "Spec Example 7.1. Alias Nodes" + localPath: yaml-test-suite/3GZX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 108 + lineCount: 4 + - id: "3HFZ" + name: "Invalid content after document end marker" + localPath: yaml-test-suite/3HFZ/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 27 + lineCount: 3 + - id: "3MYT" + name: "Plain Scalar looking like key, comment, anchor and tag" + localPath: yaml-test-suite/3MYT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 3 + - id: "3R3P" + name: "Single block sequence with anchor" + localPath: yaml-test-suite/3R3P/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 2 + - id: "3RLN/00" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 2 + - id: "3RLN/01" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 2 + - id: "3RLN/02" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 2 + - id: "3RLN/03" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 2 + - id: "3RLN/04" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/04/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 2 + - id: "3RLN/05" + name: "Leading tabs in double quoted" + localPath: yaml-test-suite/3RLN/05/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 23 + lineCount: 2 + - id: "3UYS" + name: "Escaped slash in double quotes" + localPath: yaml-test-suite/3UYS/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 1 + - id: "4ABK" + name: "Flow Mapping Separate Values" + localPath: yaml-test-suite/4ABK/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 59 + lineCount: 5 + - id: "4CQQ" + name: "Spec Example 2.18. Multi-line Flow Scalars" + localPath: yaml-test-suite/4CQQ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 93 + lineCount: 6 + - id: "4EJS" + name: "Invalid tabs as indendation in a mapping" + localPath: yaml-test-suite/4EJS/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 22 + lineCount: 4 + - id: "4FJ6" + name: "Nested implicit complex keys" + localPath: yaml-test-suite/4FJ6/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 37 + lineCount: 4 + - id: "4GC6" + name: "Spec Example 7.7. Single Quoted Characters" + localPath: yaml-test-suite/4GC6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 1 + - id: "4H7K" + name: "Flow sequence with invalid extra closing bracket" + localPath: yaml-test-suite/4H7K/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 18 + lineCount: 2 + - id: "4HVU" + name: "Wrong indendation in Sequence" + localPath: yaml-test-suite/4HVU/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 36 + lineCount: 4 + - id: "4JVG" + name: "Scalar value with two anchors" + localPath: yaml-test-suite/4JVG/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 54 + lineCount: 4 + - id: "4MUZ/00" + name: "Flow mapping colon on line after key" + localPath: yaml-test-suite/4MUZ/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 2 + - id: "4MUZ/01" + name: "Flow mapping colon on line after key" + localPath: yaml-test-suite/4MUZ/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 2 + - id: "4MUZ/02" + name: "Flow mapping colon on line after key" + localPath: yaml-test-suite/4MUZ/02/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 12 + lineCount: 2 + - id: "4Q9F" + name: "Folded Block Scalar [1.3]" + localPath: yaml-test-suite/4Q9F/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 8 + - id: "4QFQ" + name: "Spec Example 8.2. Block Indentation Indicator [1.3]" + localPath: yaml-test-suite/4QFQ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 66 + lineCount: 10 + - id: "4RWC" + name: "Trailing spaces after flow collection" + localPath: yaml-test-suite/4RWC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 1 + - id: "4UYU" + name: "Colon in Double Quoted String" + localPath: yaml-test-suite/4UYU/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 1 + - id: "4V8U" + name: "Plain scalar with backslashes" + localPath: yaml-test-suite/4V8U/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 33 + lineCount: 2 + - id: "4WA9" + name: "Literal scalars" + localPath: yaml-test-suite/4WA9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 35 + lineCount: 4 + - id: "4ZYM" + name: "Spec Example 6.4. Line Prefixes" + localPath: yaml-test-suite/4ZYM/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 70 + lineCount: 7 + - id: "52DL" + name: "Explicit Non-Specific Tag [1.3]" + localPath: yaml-test-suite/52DL/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 8 + lineCount: 2 + - id: "54T7" + name: "Flow Mapping" + localPath: yaml-test-suite/54T7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 1 + - id: "55WF" + name: "Invalid escape in double quoted string" + localPath: yaml-test-suite/55WF/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 9 + lineCount: 2 + - id: "565N" + name: "Construct Binary" + localPath: yaml-test-suite/565N/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 636 + lineCount: 12 + - id: "57H4" + name: "Spec Example 8.22. Block Collection Nodes" + localPath: yaml-test-suite/57H4/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 67 + lineCount: 6 + - id: "58MP" + name: "Flow mapping edge cases" + localPath: yaml-test-suite/58MP/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 8 + lineCount: 1 + - id: "5BVJ" + name: "Spec Example 5.7. Block Scalar Indicators" + localPath: yaml-test-suite/5BVJ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 49 + lineCount: 6 + - id: "5C5M" + name: "Spec Example 7.15. Flow Mappings" + localPath: yaml-test-suite/5C5M/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 60 + lineCount: 2 + - id: "5GBF" + name: "Spec Example 6.5. Empty Lines" + localPath: yaml-test-suite/5GBF/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 83 + lineCount: 8 + - id: "5KJE" + name: "Spec Example 7.13. Flow Sequence" + localPath: yaml-test-suite/5KJE/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 32 + lineCount: 2 + - id: "5LLU" + name: "Block scalar with wrong indented line after spaces only" + localPath: yaml-test-suite/5LLU/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 34 + lineCount: 5 + - id: "5MUD" + name: "Colon and adjacent value on next line" + localPath: yaml-test-suite/5MUD/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 3 + - id: "5NYZ" + name: "Spec Example 6.9. Separated Comment" + localPath: yaml-test-suite/5NYZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 2 + - id: "5T43" + name: "Colon at the beginning of adjacent flow scalar" + localPath: yaml-test-suite/5T43/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 37 + lineCount: 2 + - id: "5TRB" + name: "Invalid document-start marker in doublequoted tring" + localPath: yaml-test-suite/5TRB/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 12 + lineCount: 4 + - id: "5TYM" + name: "Spec Example 6.21. Local Tag Prefix" + localPath: yaml-test-suite/5TYM/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 101 + lineCount: 7 + - id: "5U3A" + name: "Sequence on same Line as Mapping Key" + localPath: yaml-test-suite/5U3A/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 18 + lineCount: 2 + - id: "5WE3" + name: "Spec Example 8.17. Explicit Block Mapping Entries" + localPath: yaml-test-suite/5WE3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 94 + lineCount: 5 + - id: "62EZ" + name: "Invalid block mapping key on same line as previous key" + localPath: yaml-test-suite/62EZ/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 25 + lineCount: 2 + - id: "652Z" + name: "Question mark at start of flow key" + localPath: yaml-test-suite/652Z/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 23 + lineCount: 3 + - id: "65WH" + name: "Single Entry Block Sequence" + localPath: yaml-test-suite/65WH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 6 + lineCount: 1 + - id: "6BCT" + name: "Spec Example 6.3. Separation Spaces" + localPath: yaml-test-suite/6BCT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 28 + lineCount: 3 + - id: "6BFJ" + name: "Mapping, key and flow sequence item anchors" + localPath: yaml-test-suite/6BFJ/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 43 + lineCount: 3 + - id: "6CA3" + name: "Tab indented top flow" + localPath: yaml-test-suite/6CA3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 6 + lineCount: 2 + - id: "6CK3" + name: "Spec Example 6.26. Tag Shorthands" + localPath: yaml-test-suite/6CK3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 80 + lineCount: 5 + - id: "6FWR" + name: "Block Scalar Keep" + localPath: yaml-test-suite/6FWR/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 5 + - id: "6H3V" + name: "Backslashes in singlequotes" + localPath: yaml-test-suite/6H3V/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 1 + - id: "6HB6" + name: "Spec Example 6.1. Indentation Spaces" + localPath: yaml-test-suite/6HB6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 301 + lineCount: 12 + - id: "6JQW" + name: "Spec Example 2.13. In literals, newlines are preserved" + localPath: yaml-test-suite/6JQW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 44 + lineCount: 4 + - id: "6JTT" + name: "Flow sequence without closing bracket" + localPath: yaml-test-suite/6JTT/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 18 + lineCount: 2 + - id: "6JWB" + name: "Tags for Block Objects" + localPath: yaml-test-suite/6JWB/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 54 + lineCount: 4 + - id: "6KGN" + name: "Anchor for empty node" + localPath: yaml-test-suite/6KGN/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 3 + - id: "6LVF" + name: "Spec Example 6.13. Reserved Directives" + localPath: yaml-test-suite/6LVF/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 76 + lineCount: 3 + - id: "6M2F" + name: "Aliases in Explicit Block Mapping" + localPath: yaml-test-suite/6M2F/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 19 + lineCount: 3 + - id: "6PBE" + name: "Zero-indented sequences in explicit mapping keys" + localPath: yaml-test-suite/6PBE/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 24 + lineCount: 7 + - id: "6S55" + name: "Invalid scalar at the end of sequence" + localPath: yaml-test-suite/6S55/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 28 + lineCount: 4 + - id: "6SLA" + name: "Allowed characters in quoted mapping key" + localPath: yaml-test-suite/6SLA/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 58 + lineCount: 2 + - id: "6VJK" + name: "Spec Example 2.15. Folded newlines are preserved for \"more indented\" and blank lines" + localPath: yaml-test-suite/6VJK/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 120 + lineCount: 8 + - id: "6WLZ" + name: "Spec Example 6.18. Primary Tag Handle [1.3]" + localPath: yaml-test-suite/6WLZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 86 + lineCount: 8 + - id: "6WPF" + name: "Spec Example 6.8. Flow Folding [1.3]" + localPath: yaml-test-suite/6WPF/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 32 + lineCount: 8 + - id: "6XDY" + name: "Two document start markers" + localPath: yaml-test-suite/6XDY/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 8 + lineCount: 2 + - id: "6ZKB" + name: "Spec Example 9.6. Stream" + localPath: yaml-test-suite/6ZKB/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 53 + lineCount: 7 + - id: "735Y" + name: "Spec Example 8.20. Block Node Types" + localPath: yaml-test-suite/735Y/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 77 + lineCount: 6 + - id: "74H7" + name: "Tags in Implicit Mapping" + localPath: yaml-test-suite/74H7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 62 + lineCount: 5 + - id: "753E" + name: "Block Scalar Strip [1.3]" + localPath: yaml-test-suite/753E/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 5 + - id: "7A4E" + name: "Spec Example 7.6. Double Quoted Lines" + localPath: yaml-test-suite/7A4E/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 50 + lineCount: 4 + - id: "7BMT" + name: "Node and Mapping Key Anchors [1.3]" + localPath: yaml-test-suite/7BMT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 186 + lineCount: 15 + - id: "7BUB" + name: "Spec Example 2.10. Node for “Sammy Sosa” appears twice in this document" + localPath: yaml-test-suite/7BUB/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 127 + lineCount: 8 + - id: "7FWL" + name: "Spec Example 6.24. Verbatim Tags" + localPath: yaml-test-suite/7FWL/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 45 + lineCount: 2 + - id: "7LBH" + name: "Multiline double quoted implicit keys" + localPath: yaml-test-suite/7LBH/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 20 + lineCount: 3 + - id: "7MNF" + name: "Missing colon" + localPath: yaml-test-suite/7MNF/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 24 + lineCount: 3 + - id: "7T8X" + name: "Spec Example 8.10. Folded Lines - 8.13. Final Empty Lines" + localPath: yaml-test-suite/7T8X/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 88 + lineCount: 16 + - id: "7TMG" + name: "Comment in flow sequence before comma" + localPath: yaml-test-suite/7TMG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 31 + lineCount: 4 + - id: "7W2P" + name: "Block Mapping with Missing Values" + localPath: yaml-test-suite/7W2P/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 11 + lineCount: 3 + - id: "7Z25" + name: "Bare document after document end marker" + localPath: yaml-test-suite/7Z25/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 27 + lineCount: 4 + - id: "7ZZ5" + name: "Empty flow collections" + localPath: yaml-test-suite/7ZZ5/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 58 + lineCount: 6 + - id: "82AN" + name: "Three dashes and content without space" + localPath: yaml-test-suite/82AN/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 2 + - id: "87E4" + name: "Spec Example 7.8. Single Quoted Implicit Keys" + localPath: yaml-test-suite/87E4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 3 + - id: "8CWC" + name: "Plain mapping key ending with colon" + localPath: yaml-test-suite/8CWC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 38 + lineCount: 2 + - id: "8G76" + name: "Spec Example 6.10. Comment Lines" + localPath: yaml-test-suite/8G76/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 18 + lineCount: 4 + - id: "8KB6" + name: "Multiline plain flow mapping key without value" + localPath: yaml-test-suite/8KB6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 51 + lineCount: 4 + - id: "8MK2" + name: "Explicit Non-Specific Tag" + localPath: yaml-test-suite/8MK2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 4 + lineCount: 1 + - id: "8QBE" + name: "Block Sequence in Block Mapping" + localPath: yaml-test-suite/8QBE/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 23 + lineCount: 3 + - id: "8UDB" + name: "Spec Example 7.14. Flow Sequence Entries" + localPath: yaml-test-suite/8UDB/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 89 + lineCount: 8 + - id: "8XDJ" + name: "Comment in plain multiline value" + localPath: yaml-test-suite/8XDJ/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 26 + lineCount: 3 + - id: "8XYN" + name: "Anchor with unicode character" + localPath: yaml-test-suite/8XYN/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 27 + lineCount: 2 + - id: "93JH" + name: "Block Mappings in Block Sequence" + localPath: yaml-test-suite/93JH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 49 + lineCount: 4 + - id: "93WF" + name: "Spec Example 6.6. Line Folding [1.3]" + localPath: yaml-test-suite/93WF/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 36 + lineCount: 7 + - id: "96L6" + name: "Spec Example 2.14. In the folded scalars, newlines become spaces" + localPath: yaml-test-suite/96L6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 63 + lineCount: 4 + - id: "96NN/00" + name: "Leading tab content in literals" + localPath: yaml-test-suite/96NN/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 2 + - id: "96NN/01" + name: "Leading tab content in literals" + localPath: yaml-test-suite/96NN/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 1 + - id: "98YD" + name: "Spec Example 5.5. Comment Indicator" + localPath: yaml-test-suite/98YD/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 16 + lineCount: 1 + - id: "9BXH" + name: "Multiline doublequoted flow mapping key without value" + localPath: yaml-test-suite/9BXH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 55 + lineCount: 4 + - id: "9C9N" + name: "Wrong indented flow sequence" + localPath: yaml-test-suite/9C9N/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 20 + lineCount: 4 + - id: "9CWY" + name: "Invalid scalar at the end of mapping" + localPath: yaml-test-suite/9CWY/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 31 + lineCount: 4 + - id: "9DXL" + name: "Spec Example 9.6. Stream [1.3]" + localPath: yaml-test-suite/9DXL/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 62 + lineCount: 7 + - id: "9FMG" + name: "Multi-level Mapping Indent" + localPath: yaml-test-suite/9FMG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 36 + lineCount: 6 + - id: "9HCY" + name: "Need document footer before directives" + localPath: yaml-test-suite/9HCY/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 59 + lineCount: 4 + - id: "9J7A" + name: "Simple Mapping Indent" + localPath: yaml-test-suite/9J7A/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 2 + - id: "9JBA" + name: "Invalid comment after end of flow sequence" + localPath: yaml-test-suite/9JBA/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 25 + lineCount: 2 + - id: "9KAX" + name: "Various combinations of tags and anchors" + localPath: yaml-test-suite/9KAX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 219 + lineCount: 26 + - id: "9KBC" + name: "Mapping starting at --- line" + localPath: yaml-test-suite/9KBC/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 34 + lineCount: 2 + - id: "9MAG" + name: "Flow sequence with invalid comma at the beginning" + localPath: yaml-test-suite/9MAG/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 18 + lineCount: 2 + - id: "9MMA" + name: "Directive by itself with no document" + localPath: yaml-test-suite/9MMA/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 10 + lineCount: 1 + - id: "9MMW" + name: "Single Pair Implicit Entries" + localPath: yaml-test-suite/9MMW/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 77 + lineCount: 3 + - id: "9MQT/00" + name: "Scalar doc with '...' in content" + localPath: yaml-test-suite/9MQT/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 3 + - id: "9MQT/01" + name: "Scalar doc with '...' in content" + localPath: yaml-test-suite/9MQT/01/in.yaml + expected: reject + oracle: json + status: passing + byteCount: 16 + lineCount: 3 + - id: "9SA2" + name: "Multiline double quoted flow mapping key" + localPath: yaml-test-suite/9SA2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 57 + lineCount: 4 + - id: "9SHH" + name: "Spec Example 5.8. Quoted Scalar Indicators" + localPath: yaml-test-suite/9SHH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 30 + lineCount: 2 + - id: "9TFX" + name: "Spec Example 7.6. Double Quoted Lines [1.3]" + localPath: yaml-test-suite/9TFX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 54 + lineCount: 5 + - id: "9U5K" + name: "Spec Example 2.12. Compact Nested Mapping" + localPath: yaml-test-suite/9U5K/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 135 + lineCount: 8 + - id: "9WXW" + name: "Spec Example 6.18. Primary Tag Handle" + localPath: yaml-test-suite/9WXW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 82 + lineCount: 7 + - id: "9YRD" + name: "Multiline Scalar at Top Level" + localPath: yaml-test-suite/9YRD/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 6 + - id: "A2M4" + name: "Spec Example 6.2. Indentation Indicators" + localPath: yaml-test-suite/A2M4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 28 + lineCount: 4 + - id: "A6F9" + name: "Spec Example 8.4. Chomping Final Line Break" + localPath: yaml-test-suite/A6F9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 48 + lineCount: 6 + - id: "A984" + name: "Multiline Scalar in Mapping" + localPath: yaml-test-suite/A984/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 5 + - id: "AB8U" + name: "Sequence entry that looks like two with wrong indentation" + localPath: yaml-test-suite/AB8U/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 37 + lineCount: 2 + - id: "AVM7" + name: "Empty Stream" + localPath: yaml-test-suite/AVM7/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 0 + lineCount: 0 + - id: "AZ63" + name: "Sequence With Same Indentation as Parent Mapping" + localPath: yaml-test-suite/AZ63/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 4 + - id: "AZW3" + name: "Lookahead test cases" + localPath: yaml-test-suite/AZW3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 32 + lineCount: 2 + - id: "B3HG" + name: "Spec Example 8.9. Folded Scalar [1.3]" + localPath: yaml-test-suite/B3HG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 5 + - id: "B63P" + name: "Directive without document" + localPath: yaml-test-suite/B63P/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 14 + lineCount: 2 + - id: "BD7L" + name: "Invalid mapping after sequence" + localPath: yaml-test-suite/BD7L/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 27 + lineCount: 3 + - id: "BEC7" + name: "Spec Example 6.14. “YAML” directive" + localPath: yaml-test-suite/BEC7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 65 + lineCount: 4 + - id: "BF9H" + name: "Trailing comment in multiline plain scalar" + localPath: yaml-test-suite/BF9H/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 47 + lineCount: 4 + - id: "BS4K" + name: "Comment between plain scalar lines" + localPath: yaml-test-suite/BS4K/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 23 + lineCount: 2 + - id: "BU8L" + name: "Node Anchor and Tag on Seperate Lines" + localPath: yaml-test-suite/BU8L/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 27 + lineCount: 3 + - id: "C2DT" + name: "Spec Example 7.18. Flow Mapping Adjacent Values" + localPath: yaml-test-suite/C2DT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 50 + lineCount: 5 + - id: "C2SP" + name: "Flow Mapping Key on two lines" + localPath: yaml-test-suite/C2SP/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 10 + lineCount: 2 + - id: "C4HZ" + name: "Spec Example 2.24. Global Tags" + localPath: yaml-test-suite/C4HZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 298 + lineCount: 14 + - id: "CC74" + name: "Spec Example 6.20. Tag Handles" + localPath: yaml-test-suite/CC74/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 52 + lineCount: 3 + - id: "CFD4" + name: "Empty implicit key in single pair flow sequences" + localPath: yaml-test-suite/CFD4/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 42 + lineCount: 2 + - id: "CML9" + name: "Missing comma in flow" + localPath: yaml-test-suite/CML9/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 30 + lineCount: 3 + - id: "CN3R" + name: "Various location of anchors in flow sequence" + localPath: yaml-test-suite/CN3R/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 57 + lineCount: 6 + - id: "CPZ3" + name: "Doublequoted scalar starting with a tab" + localPath: yaml-test-suite/CPZ3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 2 + - id: "CQ3W" + name: "Double quoted string without closing quote" + localPath: yaml-test-suite/CQ3W/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 32 + lineCount: 2 + - id: "CT4Q" + name: "Spec Example 7.20. Single Pair Explicit Entry" + localPath: yaml-test-suite/CT4Q/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 4 + - id: "CTN5" + name: "Flow sequence with invalid extra comma" + localPath: yaml-test-suite/CTN5/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 19 + lineCount: 2 + - id: "CUP7" + name: "Spec Example 5.6. Node Property Indicators" + localPath: yaml-test-suite/CUP7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 46 + lineCount: 2 + - id: "CVW2" + name: "Invalid comment after comma" + localPath: yaml-test-suite/CVW2/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 25 + lineCount: 3 + - id: "CXX2" + name: "Mapping with anchor on document start line" + localPath: yaml-test-suite/CXX2/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 17 + lineCount: 1 + - id: "D49Q" + name: "Multiline single quoted implicit keys" + localPath: yaml-test-suite/D49Q/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 20 + lineCount: 3 + - id: "D83L" + name: "Block scalar indicator order" + localPath: yaml-test-suite/D83L/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 68 + lineCount: 4 + - id: "D88J" + name: "Flow Sequence in Block Mapping" + localPath: yaml-test-suite/D88J/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 10 + lineCount: 1 + - id: "D9TU" + name: "Single Pair Block Mapping" + localPath: yaml-test-suite/D9TU/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 9 + lineCount: 1 + - id: "DBG4" + name: "Spec Example 7.10. Plain Characters" + localPath: yaml-test-suite/DBG4/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 218 + lineCount: 12 + - id: "DC7X" + name: "Various trailing tabs" + localPath: yaml-test-suite/DC7X/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 26 + lineCount: 4 + - id: "DE56/00" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 23 + lineCount: 2 + - id: "DE56/01" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 2 + - id: "DE56/02" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 23 + lineCount: 2 + - id: "DE56/03" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 2 + - id: "DE56/04" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/04/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 2 + - id: "DE56/05" + name: "Trailing tabs in double quoted" + localPath: yaml-test-suite/DE56/05/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 2 + - id: "DFF7" + name: "Spec Example 7.16. Flow Mapping Entries" + localPath: yaml-test-suite/DFF7/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 42 + lineCount: 5 + - id: "DHP8" + name: "Flow Sequence" + localPath: yaml-test-suite/DHP8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 1 + - id: "DK3J" + name: "Zero indented block scalar with line that looks like a comment" + localPath: yaml-test-suite/DK3J/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 31 + lineCount: 4 + - id: "DK4H" + name: "Implicit key followed by newline" + localPath: yaml-test-suite/DK4H/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 22 + lineCount: 3 + - id: "DK95/00" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 11 + lineCount: 2 + - id: "DK95/01" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/01/in.yaml + expected: reject + oracle: json + status: gap + byteCount: 16 + lineCount: 2 + - id: "DK95/02" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 2 + - id: "DK95/03" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 10 + lineCount: 2 + - id: "DK95/04" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/04/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 3 + - id: "DK95/05" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/05/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 17 + lineCount: 3 + - id: "DK95/06" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/06/in.yaml + expected: reject + oracle: json + status: passing + byteCount: 20 + lineCount: 3 + - id: "DK95/07" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/07/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 3 + - id: "DK95/08" + name: "Tabs that look like indentation" + localPath: yaml-test-suite/DK95/08/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 2 + - id: "DMG6" + name: "Wrong indendation in Map" + localPath: yaml-test-suite/DMG6/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 23 + lineCount: 3 + - id: "DWX9" + name: "Spec Example 8.8. Literal Content" + localPath: yaml-test-suite/DWX9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 43 + lineCount: 9 + - id: "E76Z" + name: "Aliases in Implicit Block Mapping" + localPath: yaml-test-suite/E76Z/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 2 + - id: "EB22" + name: "Missing document-end marker before directive" + localPath: yaml-test-suite/EB22/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 44 + lineCount: 5 + - id: "EHF6" + name: "Tags for Flow Objects" + localPath: yaml-test-suite/EHF6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 37 + lineCount: 4 + - id: "EW3V" + name: "Wrong indendation in mapping" + localPath: yaml-test-suite/EW3V/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 15 + lineCount: 2 + - id: "EX5H" + name: "Multiline Scalar at Top Level [1.3]" + localPath: yaml-test-suite/EX5H/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 7 + - id: "EXG3" + name: "Three dashes and content without space [1.3]" + localPath: yaml-test-suite/EXG3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 19 + lineCount: 3 + - id: "F2C7" + name: "Anchors and Tags" + localPath: yaml-test-suite/F2C7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 47 + lineCount: 4 + - id: "F3CP" + name: "Nested flow collections on one line" + localPath: yaml-test-suite/F3CP/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 34 + lineCount: 2 + - id: "F6MC" + name: "More indented lines at the beginning of folded block scalars" + localPath: yaml-test-suite/F6MC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 72 + lineCount: 9 + - id: "F8F9" + name: "Spec Example 8.5. Chomping Trailing Lines" + localPath: yaml-test-suite/F8F9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 152 + lineCount: 19 + - id: "FBC9" + name: "Allowed characters in plain scalars" + localPath: yaml-test-suite/FBC9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 148 + lineCount: 5 + - id: "FH7J" + name: "Tags on Empty Scalars" + localPath: yaml-test-suite/FH7J/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 51 + lineCount: 5 + - id: "FP8R" + name: "Zero indented block scalar" + localPath: yaml-test-suite/FP8R/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 4 + - id: "FQ7F" + name: "Spec Example 2.1. Sequence of Scalars" + localPath: yaml-test-suite/FQ7F/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 42 + lineCount: 3 + - id: "FRK4" + name: "Spec Example 7.3. Completely Empty Flow Nodes" + localPath: yaml-test-suite/FRK4/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 24 + lineCount: 4 + - id: "FTA2" + name: "Single block sequence with anchor and explicit document start" + localPath: yaml-test-suite/FTA2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 2 + - id: "FUP4" + name: "Flow Sequence in Flow Sequence" + localPath: yaml-test-suite/FUP4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 12 + lineCount: 1 + - id: "G4RS" + name: "Spec Example 2.17. Quoted Scalars" + localPath: yaml-test-suite/G4RS/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 177 + lineCount: 7 + - id: "G5U8" + name: "Plain dashes in flow sequence" + localPath: yaml-test-suite/G5U8/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 13 + lineCount: 2 + - id: "G7JE" + name: "Multiline implicit keys" + localPath: yaml-test-suite/G7JE/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 16 + lineCount: 3 + - id: "G992" + name: "Spec Example 8.9. Folded Scalar" + localPath: yaml-test-suite/G992/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 5 + - id: "G9HC" + name: "Invalid anchor in zero indented sequence" + localPath: yaml-test-suite/G9HC/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 25 + lineCount: 5 + - id: "GDY7" + name: "Comment that looks like a mapping key" + localPath: yaml-test-suite/GDY7/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 31 + lineCount: 2 + - id: "GH63" + name: "Mixed Block Mapping (explicit to implicit)" + localPath: yaml-test-suite/GH63/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 3 + - id: "GT5M" + name: "Node anchor in sequence" + localPath: yaml-test-suite/GT5M/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 22 + lineCount: 3 + - id: "H2RW" + name: "Blank lines" + localPath: yaml-test-suite/H2RW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 52 + lineCount: 12 + - id: "H3Z8" + name: "Literal unicode" + localPath: yaml-test-suite/H3Z8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 35 + lineCount: 2 + - id: "H7J7" + name: "Node anchor not indented" + localPath: yaml-test-suite/H7J7/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 21 + lineCount: 3 + - id: "H7TQ" + name: "Extra words on %YAML directive" + localPath: yaml-test-suite/H7TQ/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 18 + lineCount: 2 + - id: "HM87/00" + name: "Scalars in flow start with syntax char" + localPath: yaml-test-suite/HM87/00/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 5 + lineCount: 1 + - id: "HM87/01" + name: "Scalars in flow start with syntax char" + localPath: yaml-test-suite/HM87/01/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 5 + lineCount: 1 + - id: "HMK4" + name: "Spec Example 2.16. Indentation determines scope" + localPath: yaml-test-suite/HMK4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 138 + lineCount: 7 + - id: "HMQ5" + name: "Spec Example 6.23. Node Properties" + localPath: yaml-test-suite/HMQ5/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 43 + lineCount: 3 + - id: "HRE5" + name: "Double quoted scalar with escaped single quote" + localPath: yaml-test-suite/HRE5/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 31 + lineCount: 2 + - id: "HS5T" + name: "Spec Example 7.12. Plain Lines" + localPath: yaml-test-suite/HS5T/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 46 + lineCount: 4 + - id: "HU3P" + name: "Invalid Mapping in plain scalar" + localPath: yaml-test-suite/HU3P/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 29 + lineCount: 3 + - id: "HWV9" + name: "Document-end marker" + localPath: yaml-test-suite/HWV9/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 4 + lineCount: 1 + - id: "J3BT" + name: "Spec Example 5.12. Tabs and Spaces" + localPath: yaml-test-suite/J3BT/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 96 + lineCount: 6 + - id: "J5UC" + name: "Multiple Pair Block Mapping" + localPath: yaml-test-suite/J5UC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 30 + lineCount: 3 + - id: "J7PZ" + name: "Spec Example 2.26. Ordered Mappings" + localPath: yaml-test-suite/J7PZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 318 + lineCount: 11 + - id: "J7VC" + name: "Empty Lines Between Mapping Elements" + localPath: yaml-test-suite/J7VC/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 18 + lineCount: 4 + - id: "J9HZ" + name: "Spec Example 2.9. Single Document with Two Comments" + localPath: yaml-test-suite/J9HZ/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 115 + lineCount: 8 + - id: "JEF9/00" + name: "Trailing whitespace in streams" + localPath: yaml-test-suite/JEF9/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 7 + lineCount: 3 + - id: "JEF9/01" + name: "Trailing whitespace in streams" + localPath: yaml-test-suite/JEF9/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 9 + lineCount: 2 + - id: "JEF9/02" + name: "Trailing whitespace in streams" + localPath: yaml-test-suite/JEF9/02/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 8 + lineCount: 1 + - id: "JHB9" + name: "Spec Example 2.7. Two Documents in a Stream" + localPath: yaml-test-suite/JHB9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 130 + lineCount: 10 + - id: "JKF3" + name: "Multiline unidented double quoted block key" + localPath: yaml-test-suite/JKF3/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 17 + lineCount: 2 + - id: "JQ4R" + name: "Spec Example 8.14. Block Sequence" + localPath: yaml-test-suite/JQ4R/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 40 + lineCount: 3 + - id: "JR7V" + name: "Question marks in scalars" + localPath: yaml-test-suite/JR7V/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 128 + lineCount: 8 + - id: "JS2J" + name: "Spec Example 6.29. Node Anchors" + localPath: yaml-test-suite/JS2J/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 2 + - id: "JTV5" + name: "Block Mapping with Multiline Scalars" + localPath: yaml-test-suite/JTV5/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 31 + lineCount: 6 + - id: "JY7Z" + name: "Trailing content that looks like a mapping" + localPath: yaml-test-suite/JY7Z/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 66 + lineCount: 3 + - id: "K3WX" + name: "Colon and adjacent value after comment on next line" + localPath: yaml-test-suite/K3WX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 31 + lineCount: 3 + - id: "K4SU" + name: "Multiple Entry Block Sequence" + localPath: yaml-test-suite/K4SU/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 17 + lineCount: 3 + - id: "K527" + name: "Spec Example 6.6. Line Folding" + localPath: yaml-test-suite/K527/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 32 + lineCount: 7 + - id: "K54U" + name: "Tab after document header" + localPath: yaml-test-suite/K54U/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 11 + lineCount: 1 + - id: "K858" + name: "Spec Example 8.6. Empty Scalar Chomping" + localPath: yaml-test-suite/K858/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 30 + lineCount: 6 + - id: "KH5V/00" + name: "Inline tabs in double quoted" + localPath: yaml-test-suite/KH5V/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 1 + - id: "KH5V/01" + name: "Inline tabs in double quoted" + localPath: yaml-test-suite/KH5V/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 1 + - id: "KH5V/02" + name: "Inline tabs in double quoted" + localPath: yaml-test-suite/KH5V/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 1 + - id: "KK5P" + name: "Various combinations of explicit block mappings" + localPath: yaml-test-suite/KK5P/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 124 + lineCount: 16 + - id: "KMK3" + name: "Block Submapping" + localPath: yaml-test-suite/KMK3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 3 + - id: "KS4U" + name: "Invalid item after end of flow sequence" + localPath: yaml-test-suite/KS4U/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 35 + lineCount: 5 + - id: "KSS4" + name: "Scalars on --- line" + localPath: yaml-test-suite/KSS4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 34 + lineCount: 3 + - id: "L24T/00" + name: "Trailing line of spaces" + localPath: yaml-test-suite/L24T/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 3 + - id: "L24T/01" + name: "Trailing line of spaces" + localPath: yaml-test-suite/L24T/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 2 + - id: "L383" + name: "Two scalar docs with trailing comments" + localPath: yaml-test-suite/L383/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 38 + lineCount: 2 + - id: "L94M" + name: "Tags in Explicit Mapping" + localPath: yaml-test-suite/L94M/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 35 + lineCount: 4 + - id: "L9U5" + name: "Spec Example 7.11. Plain Implicit Keys" + localPath: yaml-test-suite/L9U5/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 55 + lineCount: 3 + - id: "LE5A" + name: "Spec Example 7.24. Flow Nodes" + localPath: yaml-test-suite/LE5A/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 50 + lineCount: 5 + - id: "LHL4" + name: "Invalid tag" + localPath: yaml-test-suite/LHL4/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 25 + lineCount: 2 + - id: "LP6E" + name: "Whitespace After Scalars in Flow" + localPath: yaml-test-suite/LP6E/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 70 + lineCount: 6 + - id: "LQZ7" + name: "Spec Example 7.4. Double Quoted Implicit Keys" + localPath: yaml-test-suite/LQZ7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 3 + - id: "LX3P" + name: "Implicit Flow Mapping Key on one line" + localPath: yaml-test-suite/LX3P/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 14 + lineCount: 1 + - id: "M29M" + name: "Literal Block Scalar" + localPath: yaml-test-suite/M29M/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 8 + - id: "M2N8/00" + name: "Question mark edge cases" + localPath: yaml-test-suite/M2N8/00/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 8 + lineCount: 1 + - id: "M2N8/01" + name: "Question mark edge cases" + localPath: yaml-test-suite/M2N8/01/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 8 + lineCount: 1 + - id: "M5C3" + name: "Spec Example 8.21. Block Scalar Nodes" + localPath: yaml-test-suite/M5C3/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 48 + lineCount: 6 + - id: "M5DY" + name: "Spec Example 2.11. Mapping between Sequences" + localPath: yaml-test-suite/M5DY/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 142 + lineCount: 9 + - id: "M6YH" + name: "Block sequence indentation" + localPath: yaml-test-suite/M6YH/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 27 + lineCount: 6 + - id: "M7A3" + name: "Spec Example 9.3. Bare Documents" + localPath: yaml-test-suite/M7A3/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 74 + lineCount: 7 + - id: "M7NX" + name: "Nested flow collections" + localPath: yaml-test-suite/M7NX/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 44 + lineCount: 8 + - id: "M9B4" + name: "Spec Example 8.7. Literal Scalar" + localPath: yaml-test-suite/M9B4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 20 + lineCount: 5 + - id: "MJS9" + name: "Spec Example 6.7. Block Folding" + localPath: yaml-test-suite/MJS9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 6 + - id: "MUS6/00" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/00/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 18 + lineCount: 2 + - id: "MUS6/01" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/01/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 28 + lineCount: 4 + - id: "MUS6/02" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/02/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 2 + - id: "MUS6/03" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/03/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 2 + - id: "MUS6/04" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/04/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 25 + lineCount: 2 + - id: "MUS6/05" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/05/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 2 + - id: "MUS6/06" + name: "Directive variants" + localPath: yaml-test-suite/MUS6/06/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 2 + - id: "MXS3" + name: "Flow Mapping in Block Sequence" + localPath: yaml-test-suite/MXS3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 9 + lineCount: 1 + - id: "MYW6" + name: "Block Scalar Strip" + localPath: yaml-test-suite/MYW6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 15 + lineCount: 5 + - id: "MZX3" + name: "Non-Specific Tags on Scalars" + localPath: yaml-test-suite/MZX3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 70 + lineCount: 6 + - id: "N4JP" + name: "Bad indentation in mapping" + localPath: yaml-test-suite/N4JP/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 48 + lineCount: 3 + - id: "N782" + name: "Invalid document markers in flow style" + localPath: yaml-test-suite/N782/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 14 + lineCount: 4 + - id: "NAT4" + name: "Various empty or newline only quoted strings" + localPath: yaml-test-suite/NAT4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 86 + lineCount: 23 + - id: "NB6Z" + name: "Multiline plain value with tabs on empty lines" + localPath: yaml-test-suite/NB6Z/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 31 + lineCount: 5 + - id: "NHX8" + name: "Empty Lines at End of Document" + localPath: yaml-test-suite/NHX8/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 4 + lineCount: 3 + - id: "NJ66" + name: "Multiline plain flow mapping key" + localPath: yaml-test-suite/NJ66/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 53 + lineCount: 4 + - id: "NKF9" + name: "Empty keys in block and flow mapping" + localPath: yaml-test-suite/NKF9/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 120 + lineCount: 13 + - id: "NP9H" + name: "Spec Example 7.5. Double Quoted Line Breaks" + localPath: yaml-test-suite/NP9H/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 63 + lineCount: 5 + - id: "P2AD" + name: "Spec Example 8.1. Block Scalar Header" + localPath: yaml-test-suite/P2AD/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 143 + lineCount: 9 + - id: "P2EQ" + name: "Invalid sequene item on same line as previous item" + localPath: yaml-test-suite/P2EQ/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 24 + lineCount: 2 + - id: "P76L" + name: "Spec Example 6.19. Secondary Tag Handle" + localPath: yaml-test-suite/P76L/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 74 + lineCount: 3 + - id: "P94K" + name: "Spec Example 6.11. Multi-Line Comments" + localPath: yaml-test-suite/P94K/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 44 + lineCount: 5 + - id: "PBJ2" + name: "Spec Example 2.3. Mapping Scalars to Sequences" + localPath: yaml-test-suite/PBJ2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 133 + lineCount: 8 + - id: "PRH3" + name: "Spec Example 7.9. Single Quoted Lines" + localPath: yaml-test-suite/PRH3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 50 + lineCount: 4 + - id: "PUW8" + name: "Document start on last line" + localPath: yaml-test-suite/PUW8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 3 + - id: "PW8X" + name: "Anchors on Empty Scalars" + localPath: yaml-test-suite/PW8X/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 65 + lineCount: 12 + - id: "Q4CL" + name: "Trailing content after quoted value" + localPath: yaml-test-suite/Q4CL/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 65 + lineCount: 3 + - id: "Q5MG" + name: "Tab at beginning of line followed by a flow mapping" + localPath: yaml-test-suite/Q5MG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 4 + lineCount: 1 + - id: "Q88A" + name: "Spec Example 7.23. Flow Content" + localPath: yaml-test-suite/Q88A/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 38 + lineCount: 5 + - id: "Q8AD" + name: "Spec Example 7.5. Double Quoted Line Breaks [1.3]" + localPath: yaml-test-suite/Q8AD/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 66 + lineCount: 6 + - id: "Q9WF" + name: "Spec Example 6.12. Separation Spaces" + localPath: yaml-test-suite/Q9WF/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 97 + lineCount: 6 + - id: "QB6E" + name: "Wrong indented multiline quoted scalar" + localPath: yaml-test-suite/QB6E/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 20 + lineCount: 4 + - id: "QF4Y" + name: "Spec Example 7.19. Single Pair Flow Mappings" + localPath: yaml-test-suite/QF4Y/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 3 + - id: "QLJ7" + name: "Tag shorthand used in documents but only defined in the first" + localPath: yaml-test-suite/QLJ7/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 93 + lineCount: 7 + - id: "QT73" + name: "Comment and document-end marker" + localPath: yaml-test-suite/QT73/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 14 + lineCount: 2 + - id: "R4YG" + name: "Spec Example 8.2. Block Indentation Indicator" + localPath: yaml-test-suite/R4YG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 69 + lineCount: 11 + - id: "R52L" + name: "Nested flow mapping sequence and mappings" + localPath: yaml-test-suite/R52L/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 2 + - id: "RHX7" + name: "YAML directive without document end marker" + localPath: yaml-test-suite/RHX7/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 29 + lineCount: 4 + - id: "RLU9" + name: "Sequence Indent" + localPath: yaml-test-suite/RLU9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 4 + - id: "RR7F" + name: "Mixed Block Mapping (implicit to explicit)" + localPath: yaml-test-suite/RR7F/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 3 + - id: "RTP8" + name: "Spec Example 9.2. Document Markers" + localPath: yaml-test-suite/RTP8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 36 + lineCount: 4 + - id: "RXY3" + name: "Invalid document-end marker in single quoted string" + localPath: yaml-test-suite/RXY3/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 12 + lineCount: 4 + - id: "RZP5" + name: "Various Trailing Comments [1.3]" + localPath: yaml-test-suite/RZP5/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 157 + lineCount: 15 + - id: "RZT7" + name: "Spec Example 2.28. Log File" + localPath: yaml-test-suite/RZT7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 411 + lineCount: 26 + - id: "S3PD" + name: "Spec Example 8.18. Implicit Block Mapping Entries" + localPath: yaml-test-suite/S3PD/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 62 + lineCount: 4 + - id: "S4GJ" + name: "Invalid text after block scalar indicator" + localPath: yaml-test-suite/S4GJ/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 39 + lineCount: 3 + - id: "S4JQ" + name: "Spec Example 6.28. Non-Specific Tags" + localPath: yaml-test-suite/S4JQ/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 55 + lineCount: 4 + - id: "S4T7" + name: "Document with footer" + localPath: yaml-test-suite/S4T7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 13 + lineCount: 2 + - id: "S7BG" + name: "Colon followed by comma" + localPath: yaml-test-suite/S7BG/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 9 + lineCount: 2 + - id: "S98Z" + name: "Block scalar with more spaces than first content line" + localPath: yaml-test-suite/S98Z/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 42 + lineCount: 5 + - id: "S9E8" + name: "Spec Example 5.3. Block Structure Indicators" + localPath: yaml-test-suite/S9E8/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 62 + lineCount: 7 + - id: "SBG9" + name: "Flow Sequence in Flow Mapping" + localPath: yaml-test-suite/SBG9/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 23 + lineCount: 1 + - id: "SF5V" + name: "Duplicate YAML directive" + localPath: yaml-test-suite/SF5V/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 24 + lineCount: 3 + - id: "SKE5" + name: "Anchor before zero indented sequence" + localPath: yaml-test-suite/SKE5/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 26 + lineCount: 5 + - id: "SM9W/00" + name: "Single character streams" + localPath: yaml-test-suite/SM9W/00/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 1 + lineCount: 0 + - id: "SM9W/01" + name: "Single character streams" + localPath: yaml-test-suite/SM9W/01/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 1 + lineCount: 0 + - id: "SR86" + name: "Anchor plus Alias" + localPath: yaml-test-suite/SR86/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 27 + lineCount: 2 + - id: "SSW6" + name: "Spec Example 7.7. Single Quoted Characters [1.3]" + localPath: yaml-test-suite/SSW6/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 2 + - id: "SU5Z" + name: "Comment without whitespace after doublequoted scalar" + localPath: yaml-test-suite/SU5Z/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 30 + lineCount: 1 + - id: "SU74" + name: "Anchor and alias as mapping key" + localPath: yaml-test-suite/SU74/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 39 + lineCount: 2 + - id: "SY6V" + name: "Anchor before sequence entry on same line" + localPath: yaml-test-suite/SY6V/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 25 + lineCount: 1 + - id: "SYW4" + name: "Spec Example 2.2. Mapping Scalars to Scalars" + localPath: yaml-test-suite/SYW4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 80 + lineCount: 3 + - id: "T26H" + name: "Spec Example 8.8. Literal Content [1.3]" + localPath: yaml-test-suite/T26H/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 47 + lineCount: 9 + - id: "T4YY" + name: "Spec Example 7.9. Single Quoted Lines [1.3]" + localPath: yaml-test-suite/T4YY/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 54 + lineCount: 5 + - id: "T5N4" + name: "Spec Example 8.7. Literal Scalar [1.3]" + localPath: yaml-test-suite/T5N4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 5 + - id: "T833" + name: "Flow mapping missing a separating comma" + localPath: yaml-test-suite/T833/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 24 + lineCount: 4 + - id: "TD5N" + name: "Invalid scalar after sequence" + localPath: yaml-test-suite/TD5N/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 24 + lineCount: 3 + - id: "TE2A" + name: "Spec Example 8.16. Block Mappings" + localPath: yaml-test-suite/TE2A/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 27 + lineCount: 2 + - id: "TL85" + name: "Spec Example 6.8. Flow Folding" + localPath: yaml-test-suite/TL85/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 28 + lineCount: 7 + - id: "TS54" + name: "Folded Block Scalar" + localPath: yaml-test-suite/TS54/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 22 + lineCount: 8 + - id: "U3C3" + name: "Spec Example 6.16. “TAG” directive" + localPath: yaml-test-suite/U3C3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 51 + lineCount: 3 + - id: "U3XV" + name: "Node and Mapping Key Anchors" + localPath: yaml-test-suite/U3XV/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 190 + lineCount: 17 + - id: "U44R" + name: "Bad indentation in mapping (2)" + localPath: yaml-test-suite/U44R/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 50 + lineCount: 3 + - id: "U99R" + name: "Invalid comma in tag" + localPath: yaml-test-suite/U99R/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 13 + lineCount: 1 + - id: "U9NS" + name: "Spec Example 2.8. Play by Play Feed from a Game" + localPath: yaml-test-suite/U9NS/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 125 + lineCount: 10 + - id: "UDM2" + name: "Plain URL in flow mapping" + localPath: yaml-test-suite/UDM2/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 30 + lineCount: 1 + - id: "UDR7" + name: "Spec Example 5.4. Flow Collection Indicators" + localPath: yaml-test-suite/UDR7/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 59 + lineCount: 2 + - id: "UGM3" + name: "Spec Example 2.27. Invoice" + localPath: yaml-test-suite/UGM3/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 644 + lineCount: 29 + - id: "UKK6/00" + name: "Syntax character edge cases" + localPath: yaml-test-suite/UKK6/00/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 4 + lineCount: 1 + - id: "UKK6/01" + name: "Syntax character edge cases" + localPath: yaml-test-suite/UKK6/01/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 3 + lineCount: 1 + - id: "UKK6/02" + name: "Syntax character edge cases" + localPath: yaml-test-suite/UKK6/02/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 2 + lineCount: 1 + - id: "UT92" + name: "Spec Example 9.4. Explicit Documents" + localPath: yaml-test-suite/UT92/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 43 + lineCount: 7 + - id: "UV7Q" + name: "Legal tab after indentation" + localPath: yaml-test-suite/UV7Q/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 13 + lineCount: 3 + - id: "V55R" + name: "Aliases in Block Sequence" + localPath: yaml-test-suite/V55R/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 24 + lineCount: 4 + - id: "V9D5" + name: "Spec Example 8.19. Compact Block Mappings" + localPath: yaml-test-suite/V9D5/in.yaml + expected: parse-ok + oracle: none + status: gap + byteCount: 46 + lineCount: 3 + - id: "VJP3/00" + name: "Flow collections over many lines" + localPath: yaml-test-suite/VJP3/00/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 13 + lineCount: 5 + - id: "VJP3/01" + name: "Flow collections over many lines" + localPath: yaml-test-suite/VJP3/01/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 17 + lineCount: 5 + - id: "W42U" + name: "Spec Example 8.15. Block Sequence Entry Types" + localPath: yaml-test-suite/W42U/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 92 + lineCount: 6 + - id: "W4TN" + name: "Spec Example 9.5. Directives Documents" + localPath: yaml-test-suite/W4TN/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 61 + lineCount: 8 + - id: "W5VH" + name: "Allowed characters in alias" + localPath: yaml-test-suite/W5VH/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 43 + lineCount: 2 + - id: "W9L4" + name: "Literal block scalar with more spaces in first line" + localPath: yaml-test-suite/W9L4/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 71 + lineCount: 5 + - id: "WZ62" + name: "Spec Example 7.2. Empty Content" + localPath: yaml-test-suite/WZ62/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 34 + lineCount: 4 + - id: "X38W" + name: "Aliases in Flow Objects" + localPath: yaml-test-suite/X38W/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 37 + lineCount: 1 + - id: "X4QW" + name: "Comment without whitespace after block scalar indicator" + localPath: yaml-test-suite/X4QW/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 27 + lineCount: 2 + - id: "X8DW" + name: "Explicit key and value seperated by comment" + localPath: yaml-test-suite/X8DW/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 28 + lineCount: 4 + - id: "XLQ9" + name: "Multiline scalar that looks like a YAML directive" + localPath: yaml-test-suite/XLQ9/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 21 + lineCount: 3 + - id: "XV9V" + name: "Spec Example 6.5. Empty Lines [1.3]" + localPath: yaml-test-suite/XV9V/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 79 + lineCount: 8 + - id: "XW4D" + name: "Various Trailing Comments" + localPath: yaml-test-suite/XW4D/in.yaml + expected: parse-ok + oracle: none + status: passing + byteCount: 158 + lineCount: 16 + - id: "Y2GN" + name: "Anchor with colon in the middle" + localPath: yaml-test-suite/Y2GN/in.yaml + expected: parse-ok + oracle: json + status: gap + byteCount: 24 + lineCount: 2 + - id: "Y79Y/000" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/000/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 16 + lineCount: 3 + - id: "Y79Y/001" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/001/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 17 + lineCount: 3 + - id: "Y79Y/002" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/002/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 14 + lineCount: 4 + - id: "Y79Y/003" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/003/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 18 + lineCount: 4 + - id: "Y79Y/004" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/004/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 4 + lineCount: 1 + - id: "Y79Y/005" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/005/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 5 + lineCount: 1 + - id: "Y79Y/006" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/006/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 4 + lineCount: 1 + - id: "Y79Y/007" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/007/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 8 + lineCount: 2 + - id: "Y79Y/008" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/008/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 7 + lineCount: 1 + - id: "Y79Y/009" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/009/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 14 + lineCount: 2 + - id: "Y79Y/010" + name: "Tabs in various contexts" + localPath: yaml-test-suite/Y79Y/010/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 5 + lineCount: 1 + - id: "YD5X" + name: "Spec Example 2.5. Sequence of Sequences" + localPath: yaml-test-suite/YD5X/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 84 + lineCount: 3 + - id: "YJV2" + name: "Dash in flow sequence" + localPath: yaml-test-suite/YJV2/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 4 + lineCount: 1 + - id: "Z67P" + name: "Spec Example 8.21. Block Scalar Nodes [1.3]" + localPath: yaml-test-suite/Z67P/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 43 + lineCount: 4 + - id: "Z9M4" + name: "Spec Example 6.22. Global Tag Prefix" + localPath: yaml-test-suite/Z9M4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 54 + lineCount: 3 + - id: "ZCZ6" + name: "Invalid mapping in plain single line value" + localPath: yaml-test-suite/ZCZ6/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 11 + lineCount: 1 + - id: "ZF4X" + name: "Spec Example 2.6. Mapping of Mappings" + localPath: yaml-test-suite/ZF4X/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 80 + lineCount: 5 + - id: "ZH7C" + name: "Anchors in Mapping" + localPath: yaml-test-suite/ZH7C/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 16 + lineCount: 2 + - id: "ZK9H" + name: "Nested top level flow mapping" + localPath: yaml-test-suite/ZK9H/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 4 + - id: "ZL4Z" + name: "Invalid nested mapping" + localPath: yaml-test-suite/ZL4Z/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 14 + lineCount: 2 + - id: "ZVH3" + name: "Wrong indented sequence item" + localPath: yaml-test-suite/ZVH3/in.yaml + expected: reject + oracle: none + status: passing + byteCount: 22 + lineCount: 2 + - id: "ZWK4" + name: "Key with anchor after missing explicit mapping value" + localPath: yaml-test-suite/ZWK4/in.yaml + expected: parse-ok + oracle: json + status: passing + byteCount: 26 + lineCount: 4 + - id: "ZXT5" + name: "Implicit key followed by newline and adjacent value" + localPath: yaml-test-suite/ZXT5/in.yaml + expected: reject + oracle: none + status: gap + byteCount: 19 + lineCount: 2 diff --git a/Tests/Fixtures/yaml-test-suite/229Q/in.json b/Tests/Fixtures/yaml-test-suite/229Q/in.json new file mode 100644 index 0000000..3d3b2d9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/229Q/in.json @@ -0,0 +1,12 @@ +[ + { + "name": "Mark McGwire", + "hr": 65, + "avg": 0.278 + }, + { + "name": "Sammy Sosa", + "hr": 63, + "avg": 0.288 + } +] diff --git a/Tests/Fixtures/yaml-test-suite/229Q/in.yaml b/Tests/Fixtures/yaml-test-suite/229Q/in.yaml new file mode 100644 index 0000000..430f6b3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/229Q/in.yaml @@ -0,0 +1,8 @@ +- + name: Mark McGwire + hr: 65 + avg: 0.278 +- + name: Sammy Sosa + hr: 63 + avg: 0.288 diff --git a/Tests/Fixtures/yaml-test-suite/236B/error b/Tests/Fixtures/yaml-test-suite/236B/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/236B/in.yaml b/Tests/Fixtures/yaml-test-suite/236B/in.yaml new file mode 100644 index 0000000..254e6fc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/236B/in.yaml @@ -0,0 +1,3 @@ +foo: + bar +invalid diff --git a/Tests/Fixtures/yaml-test-suite/26DV/in.json b/Tests/Fixtures/yaml-test-suite/26DV/in.json new file mode 100644 index 0000000..508c2c1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/26DV/in.json @@ -0,0 +1,18 @@ +{ + "top1": { + "key1": "scalar1" + }, + "top2": { + "key2": "scalar2" + }, + "top3": { + "scalar1": "scalar3" + }, + "top4": { + "scalar2": "scalar4" + }, + "top5": "scalar5", + "top6": { + "key6": "scalar6" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/26DV/in.yaml b/Tests/Fixtures/yaml-test-suite/26DV/in.yaml new file mode 100644 index 0000000..5df48e7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/26DV/in.yaml @@ -0,0 +1,12 @@ +"top1" : + "key1" : &alias1 scalar1 +'top2' : + 'key2' : &alias2 scalar2 +top3: &node3 + *alias1 : scalar3 +top4: + *alias2 : scalar4 +top5 : + scalar5 +top6: + &anchor6 'key6' : scalar6 diff --git a/Tests/Fixtures/yaml-test-suite/27NA/in.json b/Tests/Fixtures/yaml-test-suite/27NA/in.json new file mode 100644 index 0000000..8ee55ad --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/27NA/in.json @@ -0,0 +1 @@ +"text" diff --git a/Tests/Fixtures/yaml-test-suite/27NA/in.yaml b/Tests/Fixtures/yaml-test-suite/27NA/in.yaml new file mode 100644 index 0000000..62204de --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/27NA/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.2 +--- text diff --git a/Tests/Fixtures/yaml-test-suite/2AUY/in.json b/Tests/Fixtures/yaml-test-suite/2AUY/in.json new file mode 100644 index 0000000..87bffdd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2AUY/in.json @@ -0,0 +1,6 @@ +[ + "a", + "b", + 42, + "d" +] diff --git a/Tests/Fixtures/yaml-test-suite/2AUY/in.yaml b/Tests/Fixtures/yaml-test-suite/2AUY/in.yaml new file mode 100644 index 0000000..5152961 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2AUY/in.yaml @@ -0,0 +1,4 @@ + - !!str a + - b + - !!int 42 + - d diff --git a/Tests/Fixtures/yaml-test-suite/2CMS/error b/Tests/Fixtures/yaml-test-suite/2CMS/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/2CMS/in.yaml b/Tests/Fixtures/yaml-test-suite/2CMS/in.yaml new file mode 100644 index 0000000..72d31b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2CMS/in.yaml @@ -0,0 +1,3 @@ +this + is + invalid: x diff --git a/Tests/Fixtures/yaml-test-suite/2EBW/in.json b/Tests/Fixtures/yaml-test-suite/2EBW/in.json new file mode 100644 index 0000000..91f8dbf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2EBW/in.json @@ -0,0 +1,7 @@ +{ + "a!\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~": "safe", + "?foo": "safe question mark", + ":foo": "safe colon", + "-foo": "safe dash", + "this is#not": "a comment" +} diff --git a/Tests/Fixtures/yaml-test-suite/2EBW/in.yaml b/Tests/Fixtures/yaml-test-suite/2EBW/in.yaml new file mode 100644 index 0000000..3a5b0a3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2EBW/in.yaml @@ -0,0 +1,5 @@ +a!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~: safe +?foo: safe question mark +:foo: safe colon +-foo: safe dash +this is#not: a comment diff --git a/Tests/Fixtures/yaml-test-suite/2G84/02/in.json b/Tests/Fixtures/yaml-test-suite/2G84/02/in.json new file mode 100644 index 0000000..e16c76d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2G84/02/in.json @@ -0,0 +1 @@ +"" diff --git a/Tests/Fixtures/yaml-test-suite/2G84/02/in.yaml b/Tests/Fixtures/yaml-test-suite/2G84/02/in.yaml new file mode 100644 index 0000000..9d09488 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2G84/02/in.yaml @@ -0,0 +1 @@ +--- |1- \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/2G84/03/in.json b/Tests/Fixtures/yaml-test-suite/2G84/03/in.json new file mode 100644 index 0000000..e16c76d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2G84/03/in.json @@ -0,0 +1 @@ +"" diff --git a/Tests/Fixtures/yaml-test-suite/2G84/03/in.yaml b/Tests/Fixtures/yaml-test-suite/2G84/03/in.yaml new file mode 100644 index 0000000..3220349 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2G84/03/in.yaml @@ -0,0 +1 @@ +--- |1+ \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/2JQS/in.yaml b/Tests/Fixtures/yaml-test-suite/2JQS/in.yaml new file mode 100644 index 0000000..d0a086d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2JQS/in.yaml @@ -0,0 +1,2 @@ +: a +: b diff --git a/Tests/Fixtures/yaml-test-suite/2LFX/in.json b/Tests/Fixtures/yaml-test-suite/2LFX/in.json new file mode 100644 index 0000000..810c96e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2LFX/in.json @@ -0,0 +1 @@ +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/2LFX/in.yaml b/Tests/Fixtures/yaml-test-suite/2LFX/in.yaml new file mode 100644 index 0000000..5068618 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2LFX/in.yaml @@ -0,0 +1,4 @@ +%FOO bar baz # Should be ignored + # with a warning. +--- +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/2XXW/in.json b/Tests/Fixtures/yaml-test-suite/2XXW/in.json new file mode 100644 index 0000000..88daa64 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2XXW/in.json @@ -0,0 +1,5 @@ +{ + "Mark McGwire": null, + "Sammy Sosa": null, + "Ken Griff": null +} diff --git a/Tests/Fixtures/yaml-test-suite/2XXW/in.yaml b/Tests/Fixtures/yaml-test-suite/2XXW/in.yaml new file mode 100644 index 0000000..cf4943a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/2XXW/in.yaml @@ -0,0 +1,7 @@ +# Sets are represented as a +# Mapping where each key is +# associated with a null value +--- !!set +? Mark McGwire +? Sammy Sosa +? Ken Griff diff --git a/Tests/Fixtures/yaml-test-suite/33X3/in.json b/Tests/Fixtures/yaml-test-suite/33X3/in.json new file mode 100644 index 0000000..bc33116 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/33X3/in.json @@ -0,0 +1,5 @@ +[ + 1, + -2, + 33 +] diff --git a/Tests/Fixtures/yaml-test-suite/33X3/in.yaml b/Tests/Fixtures/yaml-test-suite/33X3/in.yaml new file mode 100644 index 0000000..c30779e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/33X3/in.yaml @@ -0,0 +1,4 @@ +--- +- !!int 1 +- !!int -2 +- !!int 33 diff --git a/Tests/Fixtures/yaml-test-suite/35KP/in.json b/Tests/Fixtures/yaml-test-suite/35KP/in.json new file mode 100644 index 0000000..f8e731c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/35KP/in.json @@ -0,0 +1,7 @@ +{ + "a": "b" +} +[ + "c" +] +"d e" diff --git a/Tests/Fixtures/yaml-test-suite/35KP/in.yaml b/Tests/Fixtures/yaml-test-suite/35KP/in.yaml new file mode 100644 index 0000000..f0d91aa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/35KP/in.yaml @@ -0,0 +1,8 @@ +--- !!map +? a +: b +--- !!seq +- !!str c +--- !!str +d +e diff --git a/Tests/Fixtures/yaml-test-suite/36F6/in.json b/Tests/Fixtures/yaml-test-suite/36F6/in.json new file mode 100644 index 0000000..026d7b4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/36F6/in.json @@ -0,0 +1,3 @@ +{ + "plain": "a b\nc" +} diff --git a/Tests/Fixtures/yaml-test-suite/36F6/in.yaml b/Tests/Fixtures/yaml-test-suite/36F6/in.yaml new file mode 100644 index 0000000..71600b8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/36F6/in.yaml @@ -0,0 +1,5 @@ +--- +plain: a + b + + c diff --git a/Tests/Fixtures/yaml-test-suite/3ALJ/in.json b/Tests/Fixtures/yaml-test-suite/3ALJ/in.json new file mode 100644 index 0000000..71ea9d4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3ALJ/in.json @@ -0,0 +1,7 @@ +[ + [ + "s1_i1", + "s1_i2" + ], + "s2" +] diff --git a/Tests/Fixtures/yaml-test-suite/3ALJ/in.yaml b/Tests/Fixtures/yaml-test-suite/3ALJ/in.yaml new file mode 100644 index 0000000..4738eb1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3ALJ/in.yaml @@ -0,0 +1,3 @@ +- - s1_i1 + - s1_i2 +- s2 diff --git a/Tests/Fixtures/yaml-test-suite/3GZX/in.json b/Tests/Fixtures/yaml-test-suite/3GZX/in.json new file mode 100644 index 0000000..4e09f3a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3GZX/in.json @@ -0,0 +1,6 @@ +{ + "First occurrence": "Foo", + "Second occurrence": "Foo", + "Override anchor": "Bar", + "Reuse anchor": "Bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/3GZX/in.yaml b/Tests/Fixtures/yaml-test-suite/3GZX/in.yaml new file mode 100644 index 0000000..3887676 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3GZX/in.yaml @@ -0,0 +1,4 @@ +First occurrence: &anchor Foo +Second occurrence: *anchor +Override anchor: &anchor Bar +Reuse anchor: *anchor diff --git a/Tests/Fixtures/yaml-test-suite/3MYT/in.json b/Tests/Fixtures/yaml-test-suite/3MYT/in.json new file mode 100644 index 0000000..1c50067 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3MYT/in.json @@ -0,0 +1 @@ +"k:#foo &a !t s" diff --git a/Tests/Fixtures/yaml-test-suite/3MYT/in.yaml b/Tests/Fixtures/yaml-test-suite/3MYT/in.yaml new file mode 100644 index 0000000..04a1240 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3MYT/in.yaml @@ -0,0 +1,3 @@ +--- +k:#foo + &a !t s diff --git a/Tests/Fixtures/yaml-test-suite/3R3P/in.json b/Tests/Fixtures/yaml-test-suite/3R3P/in.json new file mode 100644 index 0000000..0ede90f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3R3P/in.json @@ -0,0 +1,3 @@ +[ + "a" +] diff --git a/Tests/Fixtures/yaml-test-suite/3R3P/in.yaml b/Tests/Fixtures/yaml-test-suite/3R3P/in.yaml new file mode 100644 index 0000000..bc2204c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3R3P/in.yaml @@ -0,0 +1,2 @@ +&sequence +- a diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/00/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/00/in.json new file mode 100644 index 0000000..821166a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/00/in.json @@ -0,0 +1 @@ +"1 leading \ttab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/00/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/00/in.yaml new file mode 100644 index 0000000..a6a23a8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/00/in.yaml @@ -0,0 +1,2 @@ +"1 leading + \ttab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/01/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/01/in.json new file mode 100644 index 0000000..29133b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/01/in.json @@ -0,0 +1 @@ +"2 leading \ttab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/01/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/01/in.yaml new file mode 100644 index 0000000..64057a8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/01/in.yaml @@ -0,0 +1,2 @@ +"2 leading + \ tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/02/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/02/in.json new file mode 100644 index 0000000..9f23c05 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/02/in.json @@ -0,0 +1 @@ +"3 leading tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/02/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/02/in.yaml new file mode 100644 index 0000000..3b18adc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/02/in.yaml @@ -0,0 +1,2 @@ +"3 leading + tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/03/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/03/in.json new file mode 100644 index 0000000..75b57d9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/03/in.json @@ -0,0 +1 @@ +"4 leading \t tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/03/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/03/in.yaml new file mode 100644 index 0000000..815c713 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/03/in.yaml @@ -0,0 +1,2 @@ +"4 leading + \t tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/04/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/04/in.json new file mode 100644 index 0000000..f73076a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/04/in.json @@ -0,0 +1 @@ +"5 leading \t tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/04/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/04/in.yaml new file mode 100644 index 0000000..07e14f5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/04/in.yaml @@ -0,0 +1,2 @@ +"5 leading + \ tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/05/in.json b/Tests/Fixtures/yaml-test-suite/3RLN/05/in.json new file mode 100644 index 0000000..46d1f8c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/05/in.json @@ -0,0 +1 @@ +"6 leading tab" diff --git a/Tests/Fixtures/yaml-test-suite/3RLN/05/in.yaml b/Tests/Fixtures/yaml-test-suite/3RLN/05/in.yaml new file mode 100644 index 0000000..75222d3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3RLN/05/in.yaml @@ -0,0 +1,2 @@ +"6 leading + tab" diff --git a/Tests/Fixtures/yaml-test-suite/3UYS/in.json b/Tests/Fixtures/yaml-test-suite/3UYS/in.json new file mode 100644 index 0000000..6119ed9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3UYS/in.json @@ -0,0 +1,3 @@ +{ + "escaped slash": "a/b" +} diff --git a/Tests/Fixtures/yaml-test-suite/3UYS/in.yaml b/Tests/Fixtures/yaml-test-suite/3UYS/in.yaml new file mode 100644 index 0000000..e47bf72 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/3UYS/in.yaml @@ -0,0 +1 @@ +escaped slash: "a\/b" diff --git a/Tests/Fixtures/yaml-test-suite/4ABK/in.yaml b/Tests/Fixtures/yaml-test-suite/4ABK/in.yaml new file mode 100644 index 0000000..c80379b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4ABK/in.yaml @@ -0,0 +1,5 @@ +{ +unquoted : "separate", +http://foo.com, +omitted value:, +} diff --git a/Tests/Fixtures/yaml-test-suite/4CQQ/in.json b/Tests/Fixtures/yaml-test-suite/4CQQ/in.json new file mode 100644 index 0000000..018e242 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4CQQ/in.json @@ -0,0 +1,4 @@ +{ + "plain": "This unquoted scalar spans many lines.", + "quoted": "So does this quoted scalar.\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/4CQQ/in.yaml b/Tests/Fixtures/yaml-test-suite/4CQQ/in.yaml new file mode 100644 index 0000000..e0a8bfa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4CQQ/in.yaml @@ -0,0 +1,6 @@ +plain: + This unquoted scalar + spans many lines. + +quoted: "So does this + quoted scalar.\n" diff --git a/Tests/Fixtures/yaml-test-suite/4EJS/error b/Tests/Fixtures/yaml-test-suite/4EJS/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/4EJS/in.yaml b/Tests/Fixtures/yaml-test-suite/4EJS/in.yaml new file mode 100644 index 0000000..b507e20 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4EJS/in.yaml @@ -0,0 +1,4 @@ +--- +a: + b: + c: value diff --git a/Tests/Fixtures/yaml-test-suite/4FJ6/in.yaml b/Tests/Fixtures/yaml-test-suite/4FJ6/in.yaml new file mode 100644 index 0000000..3f4aabe --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4FJ6/in.yaml @@ -0,0 +1,4 @@ +--- +[ + [ a, [ [[b,c]]: d, e]]: 23 +] diff --git a/Tests/Fixtures/yaml-test-suite/4GC6/in.json b/Tests/Fixtures/yaml-test-suite/4GC6/in.json new file mode 100644 index 0000000..fdc456c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4GC6/in.json @@ -0,0 +1 @@ +"here's to \"quotes\"" diff --git a/Tests/Fixtures/yaml-test-suite/4GC6/in.yaml b/Tests/Fixtures/yaml-test-suite/4GC6/in.yaml new file mode 100644 index 0000000..3efcb91 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4GC6/in.yaml @@ -0,0 +1 @@ +'here''s to "quotes"' diff --git a/Tests/Fixtures/yaml-test-suite/4H7K/error b/Tests/Fixtures/yaml-test-suite/4H7K/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/4H7K/in.yaml b/Tests/Fixtures/yaml-test-suite/4H7K/in.yaml new file mode 100644 index 0000000..686440d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4H7K/in.yaml @@ -0,0 +1,2 @@ +--- +[ a, b, c ] ] diff --git a/Tests/Fixtures/yaml-test-suite/4HVU/error b/Tests/Fixtures/yaml-test-suite/4HVU/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/4HVU/in.yaml b/Tests/Fixtures/yaml-test-suite/4HVU/in.yaml new file mode 100644 index 0000000..d4118cb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4HVU/in.yaml @@ -0,0 +1,4 @@ +key: + - ok + - also ok + - wrong diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.json b/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.yaml b/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.yaml new file mode 100644 index 0000000..d80f798 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/00/in.yaml @@ -0,0 +1,2 @@ +{"foo" +: "bar"} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.json b/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.yaml b/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.yaml new file mode 100644 index 0000000..0ad38e8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/01/in.yaml @@ -0,0 +1,2 @@ +{"foo" +: bar} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.json b/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.yaml b/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.yaml new file mode 100644 index 0000000..f3b4057 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4MUZ/02/in.yaml @@ -0,0 +1,2 @@ +{foo +: bar} diff --git a/Tests/Fixtures/yaml-test-suite/4Q9F/in.json b/Tests/Fixtures/yaml-test-suite/4Q9F/in.json new file mode 100644 index 0000000..c63e7ba --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4Q9F/in.json @@ -0,0 +1 @@ +"ab cd\nef\n\ngh\n" diff --git a/Tests/Fixtures/yaml-test-suite/4Q9F/in.yaml b/Tests/Fixtures/yaml-test-suite/4Q9F/in.yaml new file mode 100644 index 0000000..63a62ab --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4Q9F/in.yaml @@ -0,0 +1,8 @@ +--- > + ab + cd + + ef + + + gh diff --git a/Tests/Fixtures/yaml-test-suite/4QFQ/in.json b/Tests/Fixtures/yaml-test-suite/4QFQ/in.json new file mode 100644 index 0000000..6963db1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4QFQ/in.json @@ -0,0 +1,6 @@ +[ + "detected\n", + "\n\n# detected\n", + " explicit\n", + "detected\n" +] diff --git a/Tests/Fixtures/yaml-test-suite/4QFQ/in.yaml b/Tests/Fixtures/yaml-test-suite/4QFQ/in.yaml new file mode 100644 index 0000000..079de26 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4QFQ/in.yaml @@ -0,0 +1,10 @@ +- | + detected +- > + + + # detected +- |1 + explicit +- > + detected diff --git a/Tests/Fixtures/yaml-test-suite/4RWC/in.json b/Tests/Fixtures/yaml-test-suite/4RWC/in.json new file mode 100644 index 0000000..a85b7c9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4RWC/in.json @@ -0,0 +1,5 @@ +[ + 1, + 2, + 3 +] diff --git a/Tests/Fixtures/yaml-test-suite/4RWC/in.yaml b/Tests/Fixtures/yaml-test-suite/4RWC/in.yaml new file mode 100644 index 0000000..4337a64 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4RWC/in.yaml @@ -0,0 +1,2 @@ + [1, 2, 3] + \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/4UYU/in.json b/Tests/Fixtures/yaml-test-suite/4UYU/in.json new file mode 100644 index 0000000..912727e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4UYU/in.json @@ -0,0 +1 @@ +"foo: bar\": baz" diff --git a/Tests/Fixtures/yaml-test-suite/4UYU/in.yaml b/Tests/Fixtures/yaml-test-suite/4UYU/in.yaml new file mode 100644 index 0000000..912727e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4UYU/in.yaml @@ -0,0 +1 @@ +"foo: bar\": baz" diff --git a/Tests/Fixtures/yaml-test-suite/4V8U/in.json b/Tests/Fixtures/yaml-test-suite/4V8U/in.json new file mode 100644 index 0000000..8391b93 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4V8U/in.json @@ -0,0 +1 @@ +"plain\\value\\with\\backslashes" diff --git a/Tests/Fixtures/yaml-test-suite/4V8U/in.yaml b/Tests/Fixtures/yaml-test-suite/4V8U/in.yaml new file mode 100644 index 0000000..9a786b3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4V8U/in.yaml @@ -0,0 +1,2 @@ +--- +plain\value\with\backslashes diff --git a/Tests/Fixtures/yaml-test-suite/4WA9/in.json b/Tests/Fixtures/yaml-test-suite/4WA9/in.json new file mode 100644 index 0000000..bc81564 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4WA9/in.json @@ -0,0 +1,6 @@ +[ + { + "aaa" : "xxx\n", + "bbb" : "xxx\n" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/4WA9/in.yaml b/Tests/Fixtures/yaml-test-suite/4WA9/in.yaml new file mode 100644 index 0000000..0d9917e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4WA9/in.yaml @@ -0,0 +1,4 @@ +- aaa: |2 + xxx + bbb: | + xxx diff --git a/Tests/Fixtures/yaml-test-suite/4ZYM/in.json b/Tests/Fixtures/yaml-test-suite/4ZYM/in.json new file mode 100644 index 0000000..b90f107 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4ZYM/in.json @@ -0,0 +1,5 @@ +{ + "plain": "text lines", + "quoted": "text lines", + "block": "text\n \tlines\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/4ZYM/in.yaml b/Tests/Fixtures/yaml-test-suite/4ZYM/in.yaml new file mode 100644 index 0000000..2f62d08 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/4ZYM/in.yaml @@ -0,0 +1,7 @@ +plain: text + lines +quoted: "text + lines" +block: | + text + lines diff --git a/Tests/Fixtures/yaml-test-suite/52DL/in.json b/Tests/Fixtures/yaml-test-suite/52DL/in.json new file mode 100644 index 0000000..231f150 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/52DL/in.json @@ -0,0 +1 @@ +"a" diff --git a/Tests/Fixtures/yaml-test-suite/52DL/in.yaml b/Tests/Fixtures/yaml-test-suite/52DL/in.yaml new file mode 100644 index 0000000..ed7ee4e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/52DL/in.yaml @@ -0,0 +1,2 @@ +--- +! a diff --git a/Tests/Fixtures/yaml-test-suite/54T7/in.json b/Tests/Fixtures/yaml-test-suite/54T7/in.json new file mode 100644 index 0000000..639f014 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/54T7/in.json @@ -0,0 +1,4 @@ +{ + "foo": "you", + "bar": "far" +} diff --git a/Tests/Fixtures/yaml-test-suite/54T7/in.yaml b/Tests/Fixtures/yaml-test-suite/54T7/in.yaml new file mode 100644 index 0000000..fc448be --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/54T7/in.yaml @@ -0,0 +1 @@ +{foo: you, bar: far} diff --git a/Tests/Fixtures/yaml-test-suite/565N/in.json b/Tests/Fixtures/yaml-test-suite/565N/in.json new file mode 100644 index 0000000..4b6d817 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/565N/in.json @@ -0,0 +1,5 @@ +{ + "canonical": "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLCAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=", + "generic": "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\nOTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\n+f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\nAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=\n", + "description": "The binary value above is a tiny arrow encoded as a gif image." +} diff --git a/Tests/Fixtures/yaml-test-suite/565N/in.yaml b/Tests/Fixtures/yaml-test-suite/565N/in.yaml new file mode 100644 index 0000000..dcdb16f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/565N/in.yaml @@ -0,0 +1,12 @@ +canonical: !!binary "\ + R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\ + OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\ + +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\ + AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=" +generic: !!binary | + R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5 + OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+ + +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC + AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= +description: + The binary value above is a tiny arrow encoded as a gif image. diff --git a/Tests/Fixtures/yaml-test-suite/58MP/in.json b/Tests/Fixtures/yaml-test-suite/58MP/in.json new file mode 100644 index 0000000..a6ef103 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/58MP/in.json @@ -0,0 +1,3 @@ +{ + "x": ":x" +} diff --git a/Tests/Fixtures/yaml-test-suite/58MP/in.yaml b/Tests/Fixtures/yaml-test-suite/58MP/in.yaml new file mode 100644 index 0000000..21d0ff9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/58MP/in.yaml @@ -0,0 +1 @@ +{x: :x} diff --git a/Tests/Fixtures/yaml-test-suite/5BVJ/in.json b/Tests/Fixtures/yaml-test-suite/5BVJ/in.json new file mode 100644 index 0000000..a150c17 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5BVJ/in.json @@ -0,0 +1,4 @@ +{ + "literal": "some\ntext\n", + "folded": "some text\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/5BVJ/in.yaml b/Tests/Fixtures/yaml-test-suite/5BVJ/in.yaml new file mode 100644 index 0000000..934726c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5BVJ/in.yaml @@ -0,0 +1,6 @@ +literal: | + some + text +folded: > + some + text diff --git a/Tests/Fixtures/yaml-test-suite/5C5M/in.json b/Tests/Fixtures/yaml-test-suite/5C5M/in.json new file mode 100644 index 0000000..b516097 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5C5M/in.json @@ -0,0 +1,10 @@ +[ + { + "one": "two", + "three": "four" + }, + { + "five": "six", + "seven": "eight" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/5C5M/in.yaml b/Tests/Fixtures/yaml-test-suite/5C5M/in.yaml new file mode 100644 index 0000000..0718643 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5C5M/in.yaml @@ -0,0 +1,2 @@ +- { one : two , three: four , } +- {five: six,seven : eight} diff --git a/Tests/Fixtures/yaml-test-suite/5GBF/in.json b/Tests/Fixtures/yaml-test-suite/5GBF/in.json new file mode 100644 index 0000000..41a96a1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5GBF/in.json @@ -0,0 +1,4 @@ +{ + "Folding": "Empty line\nas a line feed", + "Chomping": "Clipped empty lines\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/5GBF/in.yaml b/Tests/Fixtures/yaml-test-suite/5GBF/in.yaml new file mode 100644 index 0000000..60958d5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5GBF/in.yaml @@ -0,0 +1,8 @@ +Folding: + "Empty line + + as a line feed" +Chomping: | + Clipped empty lines + + diff --git a/Tests/Fixtures/yaml-test-suite/5KJE/in.json b/Tests/Fixtures/yaml-test-suite/5KJE/in.json new file mode 100644 index 0000000..c19c46c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5KJE/in.json @@ -0,0 +1,10 @@ +[ + [ + "one", + "two" + ], + [ + "three", + "four" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/5KJE/in.yaml b/Tests/Fixtures/yaml-test-suite/5KJE/in.yaml new file mode 100644 index 0000000..cd77480 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5KJE/in.yaml @@ -0,0 +1,2 @@ +- [ one, two, ] +- [three ,four] diff --git a/Tests/Fixtures/yaml-test-suite/5LLU/error b/Tests/Fixtures/yaml-test-suite/5LLU/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/5LLU/in.yaml b/Tests/Fixtures/yaml-test-suite/5LLU/in.yaml new file mode 100644 index 0000000..34d30b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5LLU/in.yaml @@ -0,0 +1,5 @@ +block scalar: > + + + + invalid diff --git a/Tests/Fixtures/yaml-test-suite/5MUD/in.json b/Tests/Fixtures/yaml-test-suite/5MUD/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5MUD/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/5MUD/in.yaml b/Tests/Fixtures/yaml-test-suite/5MUD/in.yaml new file mode 100644 index 0000000..f0a4e3e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5MUD/in.yaml @@ -0,0 +1,3 @@ +--- +{ "foo" + :bar } diff --git a/Tests/Fixtures/yaml-test-suite/5NYZ/in.json b/Tests/Fixtures/yaml-test-suite/5NYZ/in.json new file mode 100644 index 0000000..7a9e864 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5NYZ/in.json @@ -0,0 +1,3 @@ +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/5NYZ/in.yaml b/Tests/Fixtures/yaml-test-suite/5NYZ/in.yaml new file mode 100644 index 0000000..9db0912 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5NYZ/in.yaml @@ -0,0 +1,2 @@ +key: # Comment + value diff --git a/Tests/Fixtures/yaml-test-suite/5T43/in.json b/Tests/Fixtures/yaml-test-suite/5T43/in.json new file mode 100644 index 0000000..7eb5fce --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5T43/in.json @@ -0,0 +1,8 @@ +[ + { + "key": "value" + }, + { + "key": ":value" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/5T43/in.yaml b/Tests/Fixtures/yaml-test-suite/5T43/in.yaml new file mode 100644 index 0000000..03936e6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5T43/in.yaml @@ -0,0 +1,2 @@ +- { "key":value } +- { "key"::value } diff --git a/Tests/Fixtures/yaml-test-suite/5TRB/error b/Tests/Fixtures/yaml-test-suite/5TRB/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/5TRB/in.yaml b/Tests/Fixtures/yaml-test-suite/5TRB/in.yaml new file mode 100644 index 0000000..8f75f6c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5TRB/in.yaml @@ -0,0 +1,4 @@ +--- +" +--- +" diff --git a/Tests/Fixtures/yaml-test-suite/5TYM/in.json b/Tests/Fixtures/yaml-test-suite/5TYM/in.json new file mode 100644 index 0000000..fbdf5d0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5TYM/in.json @@ -0,0 +1,2 @@ +"fluorescent" +"green" diff --git a/Tests/Fixtures/yaml-test-suite/5TYM/in.yaml b/Tests/Fixtures/yaml-test-suite/5TYM/in.yaml new file mode 100644 index 0000000..57315a5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5TYM/in.yaml @@ -0,0 +1,7 @@ +%TAG !m! !my- +--- # Bulb here +!m!light fluorescent +... +%TAG !m! !my- +--- # Color here +!m!light green diff --git a/Tests/Fixtures/yaml-test-suite/5WE3/in.json b/Tests/Fixtures/yaml-test-suite/5WE3/in.json new file mode 100644 index 0000000..35361a5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5WE3/in.json @@ -0,0 +1,7 @@ +{ + "explicit key": null, + "block key\n": [ + "one", + "two" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/5WE3/in.yaml b/Tests/Fixtures/yaml-test-suite/5WE3/in.yaml new file mode 100644 index 0000000..cb0cfd0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/5WE3/in.yaml @@ -0,0 +1,5 @@ +? explicit key # Empty value +? | + block key +: - one # Explicit compact + - two # block value diff --git a/Tests/Fixtures/yaml-test-suite/652Z/in.json b/Tests/Fixtures/yaml-test-suite/652Z/in.json new file mode 100644 index 0000000..5943efa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/652Z/in.json @@ -0,0 +1,4 @@ +{ + "?foo" : "bar", + "bar" : 42 +} diff --git a/Tests/Fixtures/yaml-test-suite/652Z/in.yaml b/Tests/Fixtures/yaml-test-suite/652Z/in.yaml new file mode 100644 index 0000000..c1a9c38 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/652Z/in.yaml @@ -0,0 +1,3 @@ +{ ?foo: bar, +bar: 42 +} diff --git a/Tests/Fixtures/yaml-test-suite/65WH/in.json b/Tests/Fixtures/yaml-test-suite/65WH/in.json new file mode 100644 index 0000000..de140ba --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/65WH/in.json @@ -0,0 +1,3 @@ +[ + "foo" +] diff --git a/Tests/Fixtures/yaml-test-suite/65WH/in.yaml b/Tests/Fixtures/yaml-test-suite/65WH/in.yaml new file mode 100644 index 0000000..a4b65cd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/65WH/in.yaml @@ -0,0 +1 @@ +- foo diff --git a/Tests/Fixtures/yaml-test-suite/6BCT/in.json b/Tests/Fixtures/yaml-test-suite/6BCT/in.json new file mode 100644 index 0000000..7216337 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6BCT/in.json @@ -0,0 +1,9 @@ +[ + { + "foo": "bar" + }, + [ + "baz", + "baz" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/6BCT/in.yaml b/Tests/Fixtures/yaml-test-suite/6BCT/in.yaml new file mode 100644 index 0000000..5f48cf4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6BCT/in.yaml @@ -0,0 +1,3 @@ +- foo: bar +- - baz + - baz diff --git a/Tests/Fixtures/yaml-test-suite/6CA3/in.json b/Tests/Fixtures/yaml-test-suite/6CA3/in.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6CA3/in.json @@ -0,0 +1 @@ +[] diff --git a/Tests/Fixtures/yaml-test-suite/6CA3/in.yaml b/Tests/Fixtures/yaml-test-suite/6CA3/in.yaml new file mode 100644 index 0000000..26a80a6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6CA3/in.yaml @@ -0,0 +1,2 @@ + [ + ] diff --git a/Tests/Fixtures/yaml-test-suite/6CK3/in.json b/Tests/Fixtures/yaml-test-suite/6CK3/in.json new file mode 100644 index 0000000..cdaf9b8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6CK3/in.json @@ -0,0 +1,5 @@ +[ + "foo", + "bar", + "baz" +] diff --git a/Tests/Fixtures/yaml-test-suite/6CK3/in.yaml b/Tests/Fixtures/yaml-test-suite/6CK3/in.yaml new file mode 100644 index 0000000..70365f4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6CK3/in.yaml @@ -0,0 +1,5 @@ +%TAG !e! tag:example.com,2000:app/ +--- +- !local foo +- !!str bar +- !e!tag%21 baz diff --git a/Tests/Fixtures/yaml-test-suite/6FWR/in.json b/Tests/Fixtures/yaml-test-suite/6FWR/in.json new file mode 100644 index 0000000..7b0aa63 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6FWR/in.json @@ -0,0 +1 @@ +"ab\n\n \n" diff --git a/Tests/Fixtures/yaml-test-suite/6FWR/in.yaml b/Tests/Fixtures/yaml-test-suite/6FWR/in.yaml new file mode 100644 index 0000000..1ff9bfa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6FWR/in.yaml @@ -0,0 +1,5 @@ +--- |+ + ab + + +... diff --git a/Tests/Fixtures/yaml-test-suite/6H3V/in.json b/Tests/Fixtures/yaml-test-suite/6H3V/in.json new file mode 100644 index 0000000..030ae9c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6H3V/in.json @@ -0,0 +1,3 @@ +{ + "foo: bar\\": "baz'" +} diff --git a/Tests/Fixtures/yaml-test-suite/6H3V/in.yaml b/Tests/Fixtures/yaml-test-suite/6H3V/in.yaml new file mode 100644 index 0000000..33424c0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6H3V/in.yaml @@ -0,0 +1 @@ +'foo: bar\': baz' diff --git a/Tests/Fixtures/yaml-test-suite/6HB6/in.json b/Tests/Fixtures/yaml-test-suite/6HB6/in.json new file mode 100644 index 0000000..90112cb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6HB6/in.json @@ -0,0 +1,10 @@ +{ + "Not indented": { + "By one space": "By four\n spaces\n", + "Flow style": [ + "By two", + "Also by two", + "Still by two" + ] + } +} diff --git a/Tests/Fixtures/yaml-test-suite/6HB6/in.yaml b/Tests/Fixtures/yaml-test-suite/6HB6/in.yaml new file mode 100644 index 0000000..b5496c1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6HB6/in.yaml @@ -0,0 +1,12 @@ + # Leading comment line spaces are + # neither content nor indentation. + +Not indented: + By one space: | + By four + spaces + Flow style: [ # Leading spaces + By two, # in flow style + Also by two, # are neither + Still by two # content nor + ] # indentation. diff --git a/Tests/Fixtures/yaml-test-suite/6JQW/in.json b/Tests/Fixtures/yaml-test-suite/6JQW/in.json new file mode 100644 index 0000000..6f981a5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JQW/in.json @@ -0,0 +1 @@ +"\\//||\\/||\n// || ||__\n" diff --git a/Tests/Fixtures/yaml-test-suite/6JQW/in.yaml b/Tests/Fixtures/yaml-test-suite/6JQW/in.yaml new file mode 100644 index 0000000..13fb656 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JQW/in.yaml @@ -0,0 +1,4 @@ +# ASCII Art +--- | + \//||\/|| + // || ||__ diff --git a/Tests/Fixtures/yaml-test-suite/6JTT/error b/Tests/Fixtures/yaml-test-suite/6JTT/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/6JTT/in.yaml b/Tests/Fixtures/yaml-test-suite/6JTT/in.yaml new file mode 100644 index 0000000..939a071 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JTT/in.yaml @@ -0,0 +1,2 @@ +--- +[ [ a, b, c ] diff --git a/Tests/Fixtures/yaml-test-suite/6JWB/in.json b/Tests/Fixtures/yaml-test-suite/6JWB/in.json new file mode 100644 index 0000000..7f20946 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JWB/in.json @@ -0,0 +1,8 @@ +{ + "foo": [ + "a", + { + "key": "value" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/6JWB/in.yaml b/Tests/Fixtures/yaml-test-suite/6JWB/in.yaml new file mode 100644 index 0000000..7a3e8f1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6JWB/in.yaml @@ -0,0 +1,4 @@ +foo: !!seq + - !!str a + - !!map + key: !!str value diff --git a/Tests/Fixtures/yaml-test-suite/6KGN/in.json b/Tests/Fixtures/yaml-test-suite/6KGN/in.json new file mode 100644 index 0000000..32b9bb5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6KGN/in.json @@ -0,0 +1,4 @@ +{ + "a": null, + "b": null +} diff --git a/Tests/Fixtures/yaml-test-suite/6KGN/in.yaml b/Tests/Fixtures/yaml-test-suite/6KGN/in.yaml new file mode 100644 index 0000000..dea985e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6KGN/in.yaml @@ -0,0 +1,3 @@ +--- +a: &anchor +b: *anchor diff --git a/Tests/Fixtures/yaml-test-suite/6LVF/in.json b/Tests/Fixtures/yaml-test-suite/6LVF/in.json new file mode 100644 index 0000000..810c96e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6LVF/in.json @@ -0,0 +1 @@ +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/6LVF/in.yaml b/Tests/Fixtures/yaml-test-suite/6LVF/in.yaml new file mode 100644 index 0000000..cedbf23 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6LVF/in.yaml @@ -0,0 +1,3 @@ +%FOO bar baz # Should be ignored + # with a warning. +--- "foo" diff --git a/Tests/Fixtures/yaml-test-suite/6M2F/in.yaml b/Tests/Fixtures/yaml-test-suite/6M2F/in.yaml new file mode 100644 index 0000000..b1490a6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6M2F/in.yaml @@ -0,0 +1,3 @@ +? &a a +: &b b +: *a diff --git a/Tests/Fixtures/yaml-test-suite/6PBE/in.yaml b/Tests/Fixtures/yaml-test-suite/6PBE/in.yaml new file mode 100644 index 0000000..5637a1a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6PBE/in.yaml @@ -0,0 +1,7 @@ +--- +? +- a +- b +: +- c +- d diff --git a/Tests/Fixtures/yaml-test-suite/6S55/error b/Tests/Fixtures/yaml-test-suite/6S55/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/6S55/in.yaml b/Tests/Fixtures/yaml-test-suite/6S55/in.yaml new file mode 100644 index 0000000..0b067d6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6S55/in.yaml @@ -0,0 +1,4 @@ +key: + - bar + - baz + invalid diff --git a/Tests/Fixtures/yaml-test-suite/6SLA/in.json b/Tests/Fixtures/yaml-test-suite/6SLA/in.json new file mode 100644 index 0000000..b76510f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6SLA/in.json @@ -0,0 +1,4 @@ +{ + "foo\nbar:baz\tx \\$%^&*()x": 23, + "x\\ny:z\\tx $%^&*()x": 24 +} diff --git a/Tests/Fixtures/yaml-test-suite/6SLA/in.yaml b/Tests/Fixtures/yaml-test-suite/6SLA/in.yaml new file mode 100644 index 0000000..5b8cd26 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6SLA/in.yaml @@ -0,0 +1,2 @@ +"foo\nbar:baz\tx \\$%^&*()x": 23 +'x\ny:z\tx $%^&*()x': 24 diff --git a/Tests/Fixtures/yaml-test-suite/6VJK/in.json b/Tests/Fixtures/yaml-test-suite/6VJK/in.json new file mode 100644 index 0000000..d61c429 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6VJK/in.json @@ -0,0 +1 @@ +"Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n" diff --git a/Tests/Fixtures/yaml-test-suite/6VJK/in.yaml b/Tests/Fixtures/yaml-test-suite/6VJK/in.yaml new file mode 100644 index 0000000..80b89a6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6VJK/in.yaml @@ -0,0 +1,8 @@ +> + Sammy Sosa completed another + fine season with great stats. + + 63 Home Runs + 0.288 Batting Average + + What a year! diff --git a/Tests/Fixtures/yaml-test-suite/6WLZ/in.json b/Tests/Fixtures/yaml-test-suite/6WLZ/in.json new file mode 100644 index 0000000..f95cbd7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6WLZ/in.json @@ -0,0 +1,2 @@ +"bar" +"bar" diff --git a/Tests/Fixtures/yaml-test-suite/6WLZ/in.yaml b/Tests/Fixtures/yaml-test-suite/6WLZ/in.yaml new file mode 100644 index 0000000..fd94164 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6WLZ/in.yaml @@ -0,0 +1,8 @@ +# Private +--- +!foo "bar" +... +# Global +%TAG ! tag:example.com,2000:app/ +--- +!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/6WPF/in.json b/Tests/Fixtures/yaml-test-suite/6WPF/in.json new file mode 100644 index 0000000..0fcc9db --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6WPF/in.json @@ -0,0 +1 @@ +" foo\nbar\nbaz " diff --git a/Tests/Fixtures/yaml-test-suite/6WPF/in.yaml b/Tests/Fixtures/yaml-test-suite/6WPF/in.yaml new file mode 100644 index 0000000..aed6e4b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6WPF/in.yaml @@ -0,0 +1,8 @@ +--- +" + foo + + bar + + baz +" diff --git a/Tests/Fixtures/yaml-test-suite/6XDY/in.json b/Tests/Fixtures/yaml-test-suite/6XDY/in.json new file mode 100644 index 0000000..c1e4b6c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6XDY/in.json @@ -0,0 +1,2 @@ +null +null diff --git a/Tests/Fixtures/yaml-test-suite/6XDY/in.yaml b/Tests/Fixtures/yaml-test-suite/6XDY/in.yaml new file mode 100644 index 0000000..a845151 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6XDY/in.yaml @@ -0,0 +1,2 @@ +--- +--- diff --git a/Tests/Fixtures/yaml-test-suite/6ZKB/in.json b/Tests/Fixtures/yaml-test-suite/6ZKB/in.json new file mode 100644 index 0000000..b637cb9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6ZKB/in.json @@ -0,0 +1,5 @@ +"Document" +null +{ + "matches %": 20 +} diff --git a/Tests/Fixtures/yaml-test-suite/6ZKB/in.yaml b/Tests/Fixtures/yaml-test-suite/6ZKB/in.yaml new file mode 100644 index 0000000..52bd345 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/6ZKB/in.yaml @@ -0,0 +1,7 @@ +Document +--- +# Empty +... +%YAML 1.2 +--- +matches %: 20 diff --git a/Tests/Fixtures/yaml-test-suite/735Y/in.json b/Tests/Fixtures/yaml-test-suite/735Y/in.json new file mode 100644 index 0000000..0cca491 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/735Y/in.json @@ -0,0 +1,7 @@ +[ + "flow in block", + "Block scalar\n", + { + "foo": "bar" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/735Y/in.yaml b/Tests/Fixtures/yaml-test-suite/735Y/in.yaml new file mode 100644 index 0000000..a3f13ae --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/735Y/in.yaml @@ -0,0 +1,6 @@ +- + "flow in block" +- > + Block scalar +- !!map # Block collection + foo : bar diff --git a/Tests/Fixtures/yaml-test-suite/74H7/in.json b/Tests/Fixtures/yaml-test-suite/74H7/in.json new file mode 100644 index 0000000..5890c51 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/74H7/in.json @@ -0,0 +1,7 @@ +{ + "a": "b", + "c": 42, + "e": "f", + "g": "h", + "23": false +} diff --git a/Tests/Fixtures/yaml-test-suite/74H7/in.yaml b/Tests/Fixtures/yaml-test-suite/74H7/in.yaml new file mode 100644 index 0000000..dd1a8fa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/74H7/in.yaml @@ -0,0 +1,5 @@ +!!str a: b +c: !!int 42 +e: !!str f +g: h +!!str 23: !!bool false diff --git a/Tests/Fixtures/yaml-test-suite/753E/in.json b/Tests/Fixtures/yaml-test-suite/753E/in.json new file mode 100644 index 0000000..cb5537d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/753E/in.json @@ -0,0 +1 @@ +"ab" diff --git a/Tests/Fixtures/yaml-test-suite/753E/in.yaml b/Tests/Fixtures/yaml-test-suite/753E/in.yaml new file mode 100644 index 0000000..33a6577 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/753E/in.yaml @@ -0,0 +1,5 @@ +--- |- + ab + + +... diff --git a/Tests/Fixtures/yaml-test-suite/7A4E/in.json b/Tests/Fixtures/yaml-test-suite/7A4E/in.json new file mode 100644 index 0000000..2dfab84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7A4E/in.json @@ -0,0 +1 @@ +" 1st non-empty\n2nd non-empty 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/7A4E/in.yaml b/Tests/Fixtures/yaml-test-suite/7A4E/in.yaml new file mode 100644 index 0000000..3d8b76d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7A4E/in.yaml @@ -0,0 +1,4 @@ +" 1st non-empty + + 2nd non-empty + 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/7BMT/in.json b/Tests/Fixtures/yaml-test-suite/7BMT/in.json new file mode 100644 index 0000000..7bc2e58 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7BMT/in.json @@ -0,0 +1,19 @@ +{ + "top1": { + "key1": "one" + }, + "top2": { + "key2": "two" + }, + "top3": { + "key3": "three" + }, + "top4": { + "key4": "four" + }, + "top5": { + "key5": "five" + }, + "top6": "six", + "top7": "seven" +} diff --git a/Tests/Fixtures/yaml-test-suite/7BMT/in.yaml b/Tests/Fixtures/yaml-test-suite/7BMT/in.yaml new file mode 100644 index 0000000..6d66011 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7BMT/in.yaml @@ -0,0 +1,15 @@ +--- +top1: &node1 + &k1 key1: one +top2: &node2 # comment + key2: two +top3: + &k3 key3: three +top4: &node4 + &k4 key4: four +top5: &node5 + key5: five +top6: &val6 + six +top7: + &val7 seven diff --git a/Tests/Fixtures/yaml-test-suite/7BUB/in.json b/Tests/Fixtures/yaml-test-suite/7BUB/in.json new file mode 100644 index 0000000..d32dc2f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7BUB/in.json @@ -0,0 +1,10 @@ +{ + "hr": [ + "Mark McGwire", + "Sammy Sosa" + ], + "rbi": [ + "Sammy Sosa", + "Ken Griffey" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/7BUB/in.yaml b/Tests/Fixtures/yaml-test-suite/7BUB/in.yaml new file mode 100644 index 0000000..61808f6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7BUB/in.yaml @@ -0,0 +1,8 @@ +--- +hr: + - Mark McGwire + # Following node labeled SS + - &SS Sammy Sosa +rbi: + - *SS # Subsequent occurrence + - Ken Griffey diff --git a/Tests/Fixtures/yaml-test-suite/7FWL/in.json b/Tests/Fixtures/yaml-test-suite/7FWL/in.json new file mode 100644 index 0000000..c9f7a94 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7FWL/in.json @@ -0,0 +1,3 @@ +{ + "foo": "baz" +} diff --git a/Tests/Fixtures/yaml-test-suite/7FWL/in.yaml b/Tests/Fixtures/yaml-test-suite/7FWL/in.yaml new file mode 100644 index 0000000..8e51f52 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7FWL/in.yaml @@ -0,0 +1,2 @@ +! foo : + ! baz diff --git a/Tests/Fixtures/yaml-test-suite/7MNF/error b/Tests/Fixtures/yaml-test-suite/7MNF/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/7MNF/in.yaml b/Tests/Fixtures/yaml-test-suite/7MNF/in.yaml new file mode 100644 index 0000000..39bce10 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7MNF/in.yaml @@ -0,0 +1,3 @@ +top1: + key1: val1 +top2 diff --git a/Tests/Fixtures/yaml-test-suite/7T8X/in.json b/Tests/Fixtures/yaml-test-suite/7T8X/in.json new file mode 100644 index 0000000..f52f875 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7T8X/in.json @@ -0,0 +1 @@ +"\nfolded line\nnext line\n * bullet\n\n * list\n * lines\n\nlast line\n" diff --git a/Tests/Fixtures/yaml-test-suite/7T8X/in.yaml b/Tests/Fixtures/yaml-test-suite/7T8X/in.yaml new file mode 100644 index 0000000..992dd76 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7T8X/in.yaml @@ -0,0 +1,16 @@ +> + + folded + line + + next + line + * bullet + + * list + * lines + + last + line + +# Comment diff --git a/Tests/Fixtures/yaml-test-suite/7TMG/in.json b/Tests/Fixtures/yaml-test-suite/7TMG/in.json new file mode 100644 index 0000000..064aca0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7TMG/in.json @@ -0,0 +1,4 @@ +[ + "word1", + "word2" +] diff --git a/Tests/Fixtures/yaml-test-suite/7TMG/in.yaml b/Tests/Fixtures/yaml-test-suite/7TMG/in.yaml new file mode 100644 index 0000000..312847e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7TMG/in.yaml @@ -0,0 +1,4 @@ +--- +[ word1 +# comment +, word2] diff --git a/Tests/Fixtures/yaml-test-suite/7W2P/in.json b/Tests/Fixtures/yaml-test-suite/7W2P/in.json new file mode 100644 index 0000000..a08ddaa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7W2P/in.json @@ -0,0 +1,5 @@ +{ + "a": null, + "b": null, + "c": null +} diff --git a/Tests/Fixtures/yaml-test-suite/7W2P/in.yaml b/Tests/Fixtures/yaml-test-suite/7W2P/in.yaml new file mode 100644 index 0000000..e36dcc9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7W2P/in.yaml @@ -0,0 +1,3 @@ +? a +? b +c: diff --git a/Tests/Fixtures/yaml-test-suite/7Z25/in.json b/Tests/Fixtures/yaml-test-suite/7Z25/in.json new file mode 100644 index 0000000..ca729cd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7Z25/in.json @@ -0,0 +1,4 @@ +"scalar1" +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/7Z25/in.yaml b/Tests/Fixtures/yaml-test-suite/7Z25/in.yaml new file mode 100644 index 0000000..6964944 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/7Z25/in.yaml @@ -0,0 +1,4 @@ +--- +scalar1 +... +key: value diff --git a/Tests/Fixtures/yaml-test-suite/82AN/in.json b/Tests/Fixtures/yaml-test-suite/82AN/in.json new file mode 100644 index 0000000..62a7caa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/82AN/in.json @@ -0,0 +1 @@ +"---word1 word2" diff --git a/Tests/Fixtures/yaml-test-suite/82AN/in.yaml b/Tests/Fixtures/yaml-test-suite/82AN/in.yaml new file mode 100644 index 0000000..fffaf58 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/82AN/in.yaml @@ -0,0 +1,2 @@ +---word1 +word2 diff --git a/Tests/Fixtures/yaml-test-suite/87E4/in.json b/Tests/Fixtures/yaml-test-suite/87E4/in.json new file mode 100644 index 0000000..16ae65b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/87E4/in.json @@ -0,0 +1,7 @@ +{ + "implicit block key": [ + { + "implicit flow key": "value" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/87E4/in.yaml b/Tests/Fixtures/yaml-test-suite/87E4/in.yaml new file mode 100644 index 0000000..f1baf58 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/87E4/in.yaml @@ -0,0 +1,3 @@ +'implicit block key' : [ + 'implicit flow key' : value, + ] diff --git a/Tests/Fixtures/yaml-test-suite/8CWC/in.json b/Tests/Fixtures/yaml-test-suite/8CWC/in.json new file mode 100644 index 0000000..64ee5f2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8CWC/in.json @@ -0,0 +1,3 @@ +{ + "key ends with two colons::": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/8CWC/in.yaml b/Tests/Fixtures/yaml-test-suite/8CWC/in.yaml new file mode 100644 index 0000000..79d518d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8CWC/in.yaml @@ -0,0 +1,2 @@ +--- +key ends with two colons::: value diff --git a/Tests/Fixtures/yaml-test-suite/8G76/in.json b/Tests/Fixtures/yaml-test-suite/8G76/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/8G76/in.yaml b/Tests/Fixtures/yaml-test-suite/8G76/in.yaml new file mode 100644 index 0000000..e5f1a84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8G76/in.yaml @@ -0,0 +1,4 @@ + # Comment + + + diff --git a/Tests/Fixtures/yaml-test-suite/8KB6/in.json b/Tests/Fixtures/yaml-test-suite/8KB6/in.json new file mode 100644 index 0000000..2716276 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8KB6/in.json @@ -0,0 +1,10 @@ +[ + { + "single line": null, + "a": "b" + }, + { + "multi line": null, + "a": "b" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/8KB6/in.yaml b/Tests/Fixtures/yaml-test-suite/8KB6/in.yaml new file mode 100644 index 0000000..9167fd6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8KB6/in.yaml @@ -0,0 +1,4 @@ +--- +- { single line, a: b} +- { multi + line, a: b} diff --git a/Tests/Fixtures/yaml-test-suite/8MK2/in.json b/Tests/Fixtures/yaml-test-suite/8MK2/in.json new file mode 100644 index 0000000..231f150 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8MK2/in.json @@ -0,0 +1 @@ +"a" diff --git a/Tests/Fixtures/yaml-test-suite/8MK2/in.yaml b/Tests/Fixtures/yaml-test-suite/8MK2/in.yaml new file mode 100644 index 0000000..eae54f7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8MK2/in.yaml @@ -0,0 +1 @@ +! a diff --git a/Tests/Fixtures/yaml-test-suite/8QBE/in.json b/Tests/Fixtures/yaml-test-suite/8QBE/in.json new file mode 100644 index 0000000..53a2601 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8QBE/in.json @@ -0,0 +1,6 @@ +{ + "key": [ + "item1", + "item2" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/8QBE/in.yaml b/Tests/Fixtures/yaml-test-suite/8QBE/in.yaml new file mode 100644 index 0000000..6b937f8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8QBE/in.yaml @@ -0,0 +1,3 @@ +key: + - item1 + - item2 diff --git a/Tests/Fixtures/yaml-test-suite/8UDB/in.json b/Tests/Fixtures/yaml-test-suite/8UDB/in.json new file mode 100644 index 0000000..763236f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8UDB/in.json @@ -0,0 +1,11 @@ +[ + "double quoted", + "single quoted", + "plain text", + [ + "nested" + ], + { + "single": "pair" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/8UDB/in.yaml b/Tests/Fixtures/yaml-test-suite/8UDB/in.yaml new file mode 100644 index 0000000..6327116 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8UDB/in.yaml @@ -0,0 +1,8 @@ +[ +"double + quoted", 'single + quoted', +plain + text, [ nested ], +single: pair, +] diff --git a/Tests/Fixtures/yaml-test-suite/8XYN/in.json b/Tests/Fixtures/yaml-test-suite/8XYN/in.json new file mode 100644 index 0000000..85f4c1a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8XYN/in.json @@ -0,0 +1,3 @@ +[ + "unicode anchor" +] diff --git a/Tests/Fixtures/yaml-test-suite/8XYN/in.yaml b/Tests/Fixtures/yaml-test-suite/8XYN/in.yaml new file mode 100644 index 0000000..72c1c37 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/8XYN/in.yaml @@ -0,0 +1,2 @@ +--- +- &😁 unicode anchor diff --git a/Tests/Fixtures/yaml-test-suite/93JH/in.json b/Tests/Fixtures/yaml-test-suite/93JH/in.json new file mode 100644 index 0000000..ab22c39 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/93JH/in.json @@ -0,0 +1,9 @@ +[ + { + "key": "value", + "key2": "value2" + }, + { + "key3": "value3" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/93JH/in.yaml b/Tests/Fixtures/yaml-test-suite/93JH/in.yaml new file mode 100644 index 0000000..30c49a3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/93JH/in.yaml @@ -0,0 +1,4 @@ + - key: value + key2: value2 + - + key3: value3 diff --git a/Tests/Fixtures/yaml-test-suite/93WF/in.json b/Tests/Fixtures/yaml-test-suite/93WF/in.json new file mode 100644 index 0000000..9c6ce92 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/93WF/in.json @@ -0,0 +1 @@ +"trimmed\n\n\nas space" diff --git a/Tests/Fixtures/yaml-test-suite/93WF/in.yaml b/Tests/Fixtures/yaml-test-suite/93WF/in.yaml new file mode 100644 index 0000000..938ee98 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/93WF/in.yaml @@ -0,0 +1,7 @@ +--- >- + trimmed + + + + as + space diff --git a/Tests/Fixtures/yaml-test-suite/96L6/in.json b/Tests/Fixtures/yaml-test-suite/96L6/in.json new file mode 100644 index 0000000..f427bc2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96L6/in.json @@ -0,0 +1 @@ +"Mark McGwire's year was crippled by a knee injury.\n" diff --git a/Tests/Fixtures/yaml-test-suite/96L6/in.yaml b/Tests/Fixtures/yaml-test-suite/96L6/in.yaml new file mode 100644 index 0000000..fb4ed4a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96L6/in.yaml @@ -0,0 +1,4 @@ +--- > + Mark McGwire's + year was crippled + by a knee injury. diff --git a/Tests/Fixtures/yaml-test-suite/96NN/00/in.json b/Tests/Fixtures/yaml-test-suite/96NN/00/in.json new file mode 100644 index 0000000..0adc1e5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96NN/00/in.json @@ -0,0 +1 @@ +{"foo":"\tbar"} diff --git a/Tests/Fixtures/yaml-test-suite/96NN/00/in.yaml b/Tests/Fixtures/yaml-test-suite/96NN/00/in.yaml new file mode 100644 index 0000000..de7acab --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96NN/00/in.yaml @@ -0,0 +1,2 @@ +foo: |- + bar diff --git a/Tests/Fixtures/yaml-test-suite/96NN/01/in.json b/Tests/Fixtures/yaml-test-suite/96NN/01/in.json new file mode 100644 index 0000000..0adc1e5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96NN/01/in.json @@ -0,0 +1 @@ +{"foo":"\tbar"} diff --git a/Tests/Fixtures/yaml-test-suite/96NN/01/in.yaml b/Tests/Fixtures/yaml-test-suite/96NN/01/in.yaml new file mode 100644 index 0000000..28703ea --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/96NN/01/in.yaml @@ -0,0 +1,2 @@ +foo: |- + bar \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/98YD/in.json b/Tests/Fixtures/yaml-test-suite/98YD/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/98YD/in.yaml b/Tests/Fixtures/yaml-test-suite/98YD/in.yaml new file mode 100644 index 0000000..62524c0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/98YD/in.yaml @@ -0,0 +1 @@ +# Comment only. diff --git a/Tests/Fixtures/yaml-test-suite/9BXH/in.json b/Tests/Fixtures/yaml-test-suite/9BXH/in.json new file mode 100644 index 0000000..2716276 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9BXH/in.json @@ -0,0 +1,10 @@ +[ + { + "single line": null, + "a": "b" + }, + { + "multi line": null, + "a": "b" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/9BXH/in.yaml b/Tests/Fixtures/yaml-test-suite/9BXH/in.yaml new file mode 100644 index 0000000..c007827 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9BXH/in.yaml @@ -0,0 +1,4 @@ +--- +- { "single line", a: b} +- { "multi + line", a: b} diff --git a/Tests/Fixtures/yaml-test-suite/9CWY/error b/Tests/Fixtures/yaml-test-suite/9CWY/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9CWY/in.yaml b/Tests/Fixtures/yaml-test-suite/9CWY/in.yaml new file mode 100644 index 0000000..b84657b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9CWY/in.yaml @@ -0,0 +1,4 @@ +key: + - item1 + - item2 +invalid diff --git a/Tests/Fixtures/yaml-test-suite/9DXL/in.json b/Tests/Fixtures/yaml-test-suite/9DXL/in.json new file mode 100644 index 0000000..e211160 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9DXL/in.json @@ -0,0 +1,7 @@ +{ + "Mapping": "Document" +} +null +{ + "matches %": 20 +} diff --git a/Tests/Fixtures/yaml-test-suite/9DXL/in.yaml b/Tests/Fixtures/yaml-test-suite/9DXL/in.yaml new file mode 100644 index 0000000..7ec08e8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9DXL/in.yaml @@ -0,0 +1,7 @@ +Mapping: Document +--- +# Empty +... +%YAML 1.2 +--- +matches %: 20 diff --git a/Tests/Fixtures/yaml-test-suite/9FMG/in.json b/Tests/Fixtures/yaml-test-suite/9FMG/in.json new file mode 100644 index 0000000..b521c7f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9FMG/in.json @@ -0,0 +1,11 @@ +{ + "a": { + "b": { + "c": "d" + }, + "e": { + "f": "g" + } + }, + "h": "i" +} diff --git a/Tests/Fixtures/yaml-test-suite/9FMG/in.yaml b/Tests/Fixtures/yaml-test-suite/9FMG/in.yaml new file mode 100644 index 0000000..25f0447 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9FMG/in.yaml @@ -0,0 +1,6 @@ +a: + b: + c: d + e: + f: g +h: i diff --git a/Tests/Fixtures/yaml-test-suite/9HCY/error b/Tests/Fixtures/yaml-test-suite/9HCY/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9HCY/in.yaml b/Tests/Fixtures/yaml-test-suite/9HCY/in.yaml new file mode 100644 index 0000000..dc49d9c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9HCY/in.yaml @@ -0,0 +1,4 @@ +!foo "bar" +%TAG ! tag:example.com,2000:app/ +--- +!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/9J7A/in.json b/Tests/Fixtures/yaml-test-suite/9J7A/in.json new file mode 100644 index 0000000..faa9156 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9J7A/in.json @@ -0,0 +1,5 @@ +{ + "foo": { + "bar": "baz" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/9J7A/in.yaml b/Tests/Fixtures/yaml-test-suite/9J7A/in.yaml new file mode 100644 index 0000000..4ee8d9d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9J7A/in.yaml @@ -0,0 +1,2 @@ +foo: + bar: baz diff --git a/Tests/Fixtures/yaml-test-suite/9KAX/in.json b/Tests/Fixtures/yaml-test-suite/9KAX/in.json new file mode 100644 index 0000000..6056492 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9KAX/in.json @@ -0,0 +1,17 @@ +"scalar1" +"scalar2" +"scalar3" +{ + "key5": "value4" +} +{ + "a6": 1, + "b6": 2 +} +{ + "key8": "value7" +} +{ + "key10": "value9" +} +"value11" diff --git a/Tests/Fixtures/yaml-test-suite/9KAX/in.yaml b/Tests/Fixtures/yaml-test-suite/9KAX/in.yaml new file mode 100644 index 0000000..0ade841 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9KAX/in.yaml @@ -0,0 +1,26 @@ +--- +&a1 +!!str +scalar1 +--- +!!str +&a2 +scalar2 +--- +&a3 +!!str scalar3 +--- +&a4 !!map +&a5 !!str key5: value4 +--- +a6: 1 +&anchor6 b6: 2 +--- +!!map +&a8 !!str key8: value7 +--- +!!map +!!str &a10 key10: value9 +--- +!!str &a11 +value11 diff --git a/Tests/Fixtures/yaml-test-suite/9KBC/error b/Tests/Fixtures/yaml-test-suite/9KBC/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9KBC/in.yaml b/Tests/Fixtures/yaml-test-suite/9KBC/in.yaml new file mode 100644 index 0000000..f2c1654 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9KBC/in.yaml @@ -0,0 +1,2 @@ +--- key1: value1 + key2: value2 diff --git a/Tests/Fixtures/yaml-test-suite/9MMA/error b/Tests/Fixtures/yaml-test-suite/9MMA/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9MMA/in.yaml b/Tests/Fixtures/yaml-test-suite/9MMA/in.yaml new file mode 100644 index 0000000..6e9a0bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MMA/in.yaml @@ -0,0 +1 @@ +%YAML 1.2 diff --git a/Tests/Fixtures/yaml-test-suite/9MMW/in.yaml b/Tests/Fixtures/yaml-test-suite/9MMW/in.yaml new file mode 100644 index 0000000..b9fe5e1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MMW/in.yaml @@ -0,0 +1,3 @@ +- [ YAML : separate ] +- [ "JSON like":adjacent ] +- [ {JSON: like}:adjacent ] diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/00/in.json b/Tests/Fixtures/yaml-test-suite/9MQT/00/in.json new file mode 100644 index 0000000..ed697c1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MQT/00/in.json @@ -0,0 +1 @@ +"a ...x b" diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/00/in.yaml b/Tests/Fixtures/yaml-test-suite/9MQT/00/in.yaml new file mode 100644 index 0000000..8f86a1b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MQT/00/in.yaml @@ -0,0 +1,3 @@ +--- "a +...x +b" diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/01/error b/Tests/Fixtures/yaml-test-suite/9MQT/01/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/01/in.json b/Tests/Fixtures/yaml-test-suite/9MQT/01/in.json new file mode 100644 index 0000000..ed697c1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MQT/01/in.json @@ -0,0 +1 @@ +"a ...x b" diff --git a/Tests/Fixtures/yaml-test-suite/9MQT/01/in.yaml b/Tests/Fixtures/yaml-test-suite/9MQT/01/in.yaml new file mode 100644 index 0000000..ed9388b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9MQT/01/in.yaml @@ -0,0 +1,3 @@ +--- "a +... x +b" diff --git a/Tests/Fixtures/yaml-test-suite/9SA2/in.json b/Tests/Fixtures/yaml-test-suite/9SA2/in.json new file mode 100644 index 0000000..d214d88 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9SA2/in.json @@ -0,0 +1,8 @@ +[ + { + "single line": "value" + }, + { + "multi line": "value" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/9SA2/in.yaml b/Tests/Fixtures/yaml-test-suite/9SA2/in.yaml new file mode 100644 index 0000000..b79124b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9SA2/in.yaml @@ -0,0 +1,4 @@ +--- +- { "single line": value} +- { "multi + line": value} diff --git a/Tests/Fixtures/yaml-test-suite/9SHH/in.json b/Tests/Fixtures/yaml-test-suite/9SHH/in.json new file mode 100644 index 0000000..4e274b0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9SHH/in.json @@ -0,0 +1,4 @@ +{ + "single": "text", + "double": "text" +} diff --git a/Tests/Fixtures/yaml-test-suite/9SHH/in.yaml b/Tests/Fixtures/yaml-test-suite/9SHH/in.yaml new file mode 100644 index 0000000..04ebf69 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9SHH/in.yaml @@ -0,0 +1,2 @@ +single: 'text' +double: "text" diff --git a/Tests/Fixtures/yaml-test-suite/9TFX/in.json b/Tests/Fixtures/yaml-test-suite/9TFX/in.json new file mode 100644 index 0000000..2dfab84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9TFX/in.json @@ -0,0 +1 @@ +" 1st non-empty\n2nd non-empty 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/9TFX/in.yaml b/Tests/Fixtures/yaml-test-suite/9TFX/in.yaml new file mode 100644 index 0000000..5afb3f4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9TFX/in.yaml @@ -0,0 +1,5 @@ +--- +" 1st non-empty + + 2nd non-empty + 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/9U5K/in.json b/Tests/Fixtures/yaml-test-suite/9U5K/in.json new file mode 100644 index 0000000..f932159 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9U5K/in.json @@ -0,0 +1,14 @@ +[ + { + "item": "Super Hoop", + "quantity": 1 + }, + { + "item": "Basketball", + "quantity": 4 + }, + { + "item": "Big Shoes", + "quantity": 1 + } +] diff --git a/Tests/Fixtures/yaml-test-suite/9U5K/in.yaml b/Tests/Fixtures/yaml-test-suite/9U5K/in.yaml new file mode 100644 index 0000000..63a8ed7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9U5K/in.yaml @@ -0,0 +1,8 @@ +--- +# Products purchased +- item : Super Hoop + quantity: 1 +- item : Basketball + quantity: 4 +- item : Big Shoes + quantity: 1 diff --git a/Tests/Fixtures/yaml-test-suite/9WXW/in.json b/Tests/Fixtures/yaml-test-suite/9WXW/in.json new file mode 100644 index 0000000..f95cbd7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9WXW/in.json @@ -0,0 +1,2 @@ +"bar" +"bar" diff --git a/Tests/Fixtures/yaml-test-suite/9WXW/in.yaml b/Tests/Fixtures/yaml-test-suite/9WXW/in.yaml new file mode 100644 index 0000000..d79f04e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9WXW/in.yaml @@ -0,0 +1,7 @@ +# Private +!foo "bar" +... +# Global +%TAG ! tag:example.com,2000:app/ +--- +!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/9YRD/in.json b/Tests/Fixtures/yaml-test-suite/9YRD/in.json new file mode 100644 index 0000000..a565abc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9YRD/in.json @@ -0,0 +1 @@ +"a b c d\ne" diff --git a/Tests/Fixtures/yaml-test-suite/9YRD/in.yaml b/Tests/Fixtures/yaml-test-suite/9YRD/in.yaml new file mode 100644 index 0000000..8a21b02 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/9YRD/in.yaml @@ -0,0 +1,6 @@ +a +b + c +d + +e diff --git a/Tests/Fixtures/yaml-test-suite/A2M4/in.json b/Tests/Fixtures/yaml-test-suite/A2M4/in.json new file mode 100644 index 0000000..848d9f6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A2M4/in.json @@ -0,0 +1,9 @@ +{ + "a": [ + "b", + [ + "c", + "d" + ] + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/A2M4/in.yaml b/Tests/Fixtures/yaml-test-suite/A2M4/in.yaml new file mode 100644 index 0000000..ac0d970 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A2M4/in.yaml @@ -0,0 +1,4 @@ +? a +: - b + - - c + - d diff --git a/Tests/Fixtures/yaml-test-suite/A6F9/in.json b/Tests/Fixtures/yaml-test-suite/A6F9/in.json new file mode 100644 index 0000000..50e1907 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A6F9/in.json @@ -0,0 +1,5 @@ +{ + "strip": "text", + "clip": "text\n", + "keep": "text\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/A6F9/in.yaml b/Tests/Fixtures/yaml-test-suite/A6F9/in.yaml new file mode 100644 index 0000000..fa6190f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A6F9/in.yaml @@ -0,0 +1,6 @@ +strip: |- + text +clip: | + text +keep: |+ + text diff --git a/Tests/Fixtures/yaml-test-suite/A984/in.json b/Tests/Fixtures/yaml-test-suite/A984/in.json new file mode 100644 index 0000000..50ad5bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A984/in.json @@ -0,0 +1,4 @@ +{ + "a": "b c", + "d": "e f" +} diff --git a/Tests/Fixtures/yaml-test-suite/A984/in.yaml b/Tests/Fixtures/yaml-test-suite/A984/in.yaml new file mode 100644 index 0000000..62fe04a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/A984/in.yaml @@ -0,0 +1,5 @@ +a: b + c +d: + e + f diff --git a/Tests/Fixtures/yaml-test-suite/AB8U/in.json b/Tests/Fixtures/yaml-test-suite/AB8U/in.json new file mode 100644 index 0000000..ea0a643 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AB8U/in.json @@ -0,0 +1,3 @@ +[ + "single multiline - sequence entry" +] diff --git a/Tests/Fixtures/yaml-test-suite/AB8U/in.yaml b/Tests/Fixtures/yaml-test-suite/AB8U/in.yaml new file mode 100644 index 0000000..abf6cec --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AB8U/in.yaml @@ -0,0 +1,2 @@ +- single multiline + - sequence entry diff --git a/Tests/Fixtures/yaml-test-suite/AVM7/in.json b/Tests/Fixtures/yaml-test-suite/AVM7/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/AVM7/in.yaml b/Tests/Fixtures/yaml-test-suite/AVM7/in.yaml new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/AZ63/in.json b/Tests/Fixtures/yaml-test-suite/AZ63/in.json new file mode 100644 index 0000000..d8d5d7e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AZ63/in.json @@ -0,0 +1,7 @@ +{ + "one": [ + 2, + 3 + ], + "four": 5 +} diff --git a/Tests/Fixtures/yaml-test-suite/AZ63/in.yaml b/Tests/Fixtures/yaml-test-suite/AZ63/in.yaml new file mode 100644 index 0000000..80eda20 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AZ63/in.yaml @@ -0,0 +1,4 @@ +one: +- 2 +- 3 +four: 5 diff --git a/Tests/Fixtures/yaml-test-suite/AZW3/in.json b/Tests/Fixtures/yaml-test-suite/AZW3/in.json new file mode 100644 index 0000000..0e62301 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AZW3/in.json @@ -0,0 +1,8 @@ +[ + { + "bla\"keks": "foo" + }, + { + "bla]keks": "foo" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/AZW3/in.yaml b/Tests/Fixtures/yaml-test-suite/AZW3/in.yaml new file mode 100644 index 0000000..c9219e9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/AZW3/in.yaml @@ -0,0 +1,2 @@ +- bla"keks: foo +- bla]keks: foo diff --git a/Tests/Fixtures/yaml-test-suite/B3HG/in.json b/Tests/Fixtures/yaml-test-suite/B3HG/in.json new file mode 100644 index 0000000..d5cf354 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/B3HG/in.json @@ -0,0 +1 @@ +"folded text\n" diff --git a/Tests/Fixtures/yaml-test-suite/B3HG/in.yaml b/Tests/Fixtures/yaml-test-suite/B3HG/in.yaml new file mode 100644 index 0000000..668490c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/B3HG/in.yaml @@ -0,0 +1,5 @@ +--- > + folded + text + + diff --git a/Tests/Fixtures/yaml-test-suite/B63P/error b/Tests/Fixtures/yaml-test-suite/B63P/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/B63P/in.yaml b/Tests/Fixtures/yaml-test-suite/B63P/in.yaml new file mode 100644 index 0000000..142134e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/B63P/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.2 +... diff --git a/Tests/Fixtures/yaml-test-suite/BD7L/error b/Tests/Fixtures/yaml-test-suite/BD7L/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/BD7L/in.yaml b/Tests/Fixtures/yaml-test-suite/BD7L/in.yaml new file mode 100644 index 0000000..30799d9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BD7L/in.yaml @@ -0,0 +1,3 @@ +- item1 +- item2 +invalid: x diff --git a/Tests/Fixtures/yaml-test-suite/BEC7/in.json b/Tests/Fixtures/yaml-test-suite/BEC7/in.json new file mode 100644 index 0000000..810c96e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BEC7/in.json @@ -0,0 +1 @@ +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/BEC7/in.yaml b/Tests/Fixtures/yaml-test-suite/BEC7/in.yaml new file mode 100644 index 0000000..fb55215 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BEC7/in.yaml @@ -0,0 +1,4 @@ +%YAML 1.3 # Attempt parsing + # with a warning +--- +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/BS4K/error b/Tests/Fixtures/yaml-test-suite/BS4K/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/BS4K/in.yaml b/Tests/Fixtures/yaml-test-suite/BS4K/in.yaml new file mode 100644 index 0000000..5ddae76 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BS4K/in.yaml @@ -0,0 +1,2 @@ +word1 # comment +word2 diff --git a/Tests/Fixtures/yaml-test-suite/BU8L/in.json b/Tests/Fixtures/yaml-test-suite/BU8L/in.json new file mode 100644 index 0000000..1609d45 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BU8L/in.json @@ -0,0 +1,5 @@ +{ + "key": { + "a": "b" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/BU8L/in.yaml b/Tests/Fixtures/yaml-test-suite/BU8L/in.yaml new file mode 100644 index 0000000..35d556d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/BU8L/in.yaml @@ -0,0 +1,3 @@ +key: &anchor + !!map + a: b diff --git a/Tests/Fixtures/yaml-test-suite/C2DT/in.json b/Tests/Fixtures/yaml-test-suite/C2DT/in.json new file mode 100644 index 0000000..e522f08 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C2DT/in.json @@ -0,0 +1,5 @@ +{ + "adjacent": "value", + "readable": "value", + "empty": null +} diff --git a/Tests/Fixtures/yaml-test-suite/C2DT/in.yaml b/Tests/Fixtures/yaml-test-suite/C2DT/in.yaml new file mode 100644 index 0000000..7fc069c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C2DT/in.yaml @@ -0,0 +1,5 @@ +{ +"adjacent":value, +"readable": value, +"empty": +} diff --git a/Tests/Fixtures/yaml-test-suite/C2SP/error b/Tests/Fixtures/yaml-test-suite/C2SP/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/C2SP/in.yaml b/Tests/Fixtures/yaml-test-suite/C2SP/in.yaml new file mode 100644 index 0000000..bb88dde --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C2SP/in.yaml @@ -0,0 +1,2 @@ +[23 +]: 42 diff --git a/Tests/Fixtures/yaml-test-suite/C4HZ/in.json b/Tests/Fixtures/yaml-test-suite/C4HZ/in.json new file mode 100644 index 0000000..de484e0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C4HZ/in.json @@ -0,0 +1,27 @@ +[ + { + "center": { + "x": 73, + "y": 129 + }, + "radius": 7 + }, + { + "start": { + "x": 73, + "y": 129 + }, + "finish": { + "x": 89, + "y": 102 + } + }, + { + "start": { + "x": 73, + "y": 129 + }, + "color": 16772795, + "text": "Pretty vector drawing." + } +] diff --git a/Tests/Fixtures/yaml-test-suite/C4HZ/in.yaml b/Tests/Fixtures/yaml-test-suite/C4HZ/in.yaml new file mode 100644 index 0000000..1180757 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/C4HZ/in.yaml @@ -0,0 +1,14 @@ +%TAG ! tag:clarkevans.com,2002: +--- !shape + # Use the ! handle for presenting + # tag:clarkevans.com,2002:circle +- !circle + center: &ORIGIN {x: 73, y: 129} + radius: 7 +- !line + start: *ORIGIN + finish: { x: 89, y: 102 } +- !label + start: *ORIGIN + color: 0xFFEEBB + text: Pretty vector drawing. diff --git a/Tests/Fixtures/yaml-test-suite/CC74/in.json b/Tests/Fixtures/yaml-test-suite/CC74/in.json new file mode 100644 index 0000000..196e587 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CC74/in.json @@ -0,0 +1 @@ +"bar" diff --git a/Tests/Fixtures/yaml-test-suite/CC74/in.yaml b/Tests/Fixtures/yaml-test-suite/CC74/in.yaml new file mode 100644 index 0000000..690f138 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CC74/in.yaml @@ -0,0 +1,3 @@ +%TAG !e! tag:example.com,2000:app/ +--- +!e!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/CFD4/in.yaml b/Tests/Fixtures/yaml-test-suite/CFD4/in.yaml new file mode 100644 index 0000000..503d73a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CFD4/in.yaml @@ -0,0 +1,2 @@ +- [ : empty key ] +- [: another empty key] diff --git a/Tests/Fixtures/yaml-test-suite/CML9/error b/Tests/Fixtures/yaml-test-suite/CML9/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/CML9/in.yaml b/Tests/Fixtures/yaml-test-suite/CML9/in.yaml new file mode 100644 index 0000000..b2c39a5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CML9/in.yaml @@ -0,0 +1,3 @@ +key: [ word1 +# xxx + word2 ] diff --git a/Tests/Fixtures/yaml-test-suite/CN3R/in.json b/Tests/Fixtures/yaml-test-suite/CN3R/in.json new file mode 100644 index 0000000..28eb29e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CN3R/in.json @@ -0,0 +1,14 @@ +[ + { + "a": "b" + }, + { + "c": "d" + }, + { + "e": "f" + }, + { + "g": "h" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/CN3R/in.yaml b/Tests/Fixtures/yaml-test-suite/CN3R/in.yaml new file mode 100644 index 0000000..8345dfc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CN3R/in.yaml @@ -0,0 +1,6 @@ +&flowseq [ + a: b, + &c c: d, + { &e e: f }, + &g { g: h } +] diff --git a/Tests/Fixtures/yaml-test-suite/CPZ3/in.json b/Tests/Fixtures/yaml-test-suite/CPZ3/in.json new file mode 100644 index 0000000..977fceb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CPZ3/in.json @@ -0,0 +1,3 @@ +{ + "tab": "\tstring" +} diff --git a/Tests/Fixtures/yaml-test-suite/CPZ3/in.yaml b/Tests/Fixtures/yaml-test-suite/CPZ3/in.yaml new file mode 100644 index 0000000..082400b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CPZ3/in.yaml @@ -0,0 +1,2 @@ +--- +tab: "\tstring" diff --git a/Tests/Fixtures/yaml-test-suite/CQ3W/error b/Tests/Fixtures/yaml-test-suite/CQ3W/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/CQ3W/in.yaml b/Tests/Fixtures/yaml-test-suite/CQ3W/in.yaml new file mode 100644 index 0000000..c8d7e45 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CQ3W/in.yaml @@ -0,0 +1,2 @@ +--- +key: "missing closing quote diff --git a/Tests/Fixtures/yaml-test-suite/CT4Q/in.json b/Tests/Fixtures/yaml-test-suite/CT4Q/in.json new file mode 100644 index 0000000..6342cb2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CT4Q/in.json @@ -0,0 +1,5 @@ +[ + { + "foo bar": "baz" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/CT4Q/in.yaml b/Tests/Fixtures/yaml-test-suite/CT4Q/in.yaml new file mode 100644 index 0000000..19dc4f5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CT4Q/in.yaml @@ -0,0 +1,4 @@ +[ +? foo + bar : baz +] diff --git a/Tests/Fixtures/yaml-test-suite/CUP7/in.json b/Tests/Fixtures/yaml-test-suite/CUP7/in.json new file mode 100644 index 0000000..55f1478 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CUP7/in.json @@ -0,0 +1,4 @@ +{ + "anchored": "value", + "alias": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/CUP7/in.yaml b/Tests/Fixtures/yaml-test-suite/CUP7/in.yaml new file mode 100644 index 0000000..7a1f9b3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/CUP7/in.yaml @@ -0,0 +1,2 @@ +anchored: !local &anchor value +alias: *anchor diff --git a/Tests/Fixtures/yaml-test-suite/D83L/in.json b/Tests/Fixtures/yaml-test-suite/D83L/in.json new file mode 100644 index 0000000..179dcbd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D83L/in.json @@ -0,0 +1,4 @@ +[ + "explicit indent and chomp", + "chomp and explicit indent" +] diff --git a/Tests/Fixtures/yaml-test-suite/D83L/in.yaml b/Tests/Fixtures/yaml-test-suite/D83L/in.yaml new file mode 100644 index 0000000..3d603d1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D83L/in.yaml @@ -0,0 +1,4 @@ +- |2- + explicit indent and chomp +- |-2 + chomp and explicit indent diff --git a/Tests/Fixtures/yaml-test-suite/D88J/in.json b/Tests/Fixtures/yaml-test-suite/D88J/in.json new file mode 100644 index 0000000..93f2131 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D88J/in.json @@ -0,0 +1,6 @@ +{ + "a": [ + "b", + "c" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/D88J/in.yaml b/Tests/Fixtures/yaml-test-suite/D88J/in.yaml new file mode 100644 index 0000000..8238fdf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D88J/in.yaml @@ -0,0 +1 @@ +a: [b, c] diff --git a/Tests/Fixtures/yaml-test-suite/D9TU/in.json b/Tests/Fixtures/yaml-test-suite/D9TU/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D9TU/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/D9TU/in.yaml b/Tests/Fixtures/yaml-test-suite/D9TU/in.yaml new file mode 100644 index 0000000..20e9ff3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/D9TU/in.yaml @@ -0,0 +1 @@ +foo: bar diff --git a/Tests/Fixtures/yaml-test-suite/DBG4/in.json b/Tests/Fixtures/yaml-test-suite/DBG4/in.json new file mode 100644 index 0000000..a90aeee --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DBG4/in.json @@ -0,0 +1,14 @@ +[ + "::vector", + ": - ()", + "Up, up, and away!", + -123, + "http://example.com/foo#bar", + [ + "::vector", + ": - ()", + "Up, up and away!", + -123, + "http://example.com/foo#bar" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/DBG4/in.yaml b/Tests/Fixtures/yaml-test-suite/DBG4/in.yaml new file mode 100644 index 0000000..7ed369f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DBG4/in.yaml @@ -0,0 +1,12 @@ +# Outside flow collection: +- ::vector +- ": - ()" +- Up, up, and away! +- -123 +- http://example.com/foo#bar +# Inside flow collection: +- [ ::vector, + ": - ()", + "Up, up and away!", + -123, + http://example.com/foo#bar ] diff --git a/Tests/Fixtures/yaml-test-suite/DE56/00/in.json b/Tests/Fixtures/yaml-test-suite/DE56/00/in.json new file mode 100644 index 0000000..03179cd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/00/in.json @@ -0,0 +1 @@ +"1 trailing\t tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/00/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/00/in.yaml new file mode 100644 index 0000000..a235094 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/00/in.yaml @@ -0,0 +1,2 @@ +"1 trailing\t + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/01/in.json b/Tests/Fixtures/yaml-test-suite/DE56/01/in.json new file mode 100644 index 0000000..ade6481 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/01/in.json @@ -0,0 +1 @@ +"2 trailing\t tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/01/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/01/in.yaml new file mode 100644 index 0000000..006f12a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/01/in.yaml @@ -0,0 +1,2 @@ +"2 trailing\t + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/02/in.json b/Tests/Fixtures/yaml-test-suite/DE56/02/in.json new file mode 100644 index 0000000..611058e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/02/in.json @@ -0,0 +1 @@ +"3 trailing\t tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/02/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/02/in.yaml new file mode 100644 index 0000000..b06a045 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/02/in.yaml @@ -0,0 +1,2 @@ +"3 trailing\ + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/03/in.json b/Tests/Fixtures/yaml-test-suite/DE56/03/in.json new file mode 100644 index 0000000..388f4e4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/03/in.json @@ -0,0 +1 @@ +"4 trailing\t tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/03/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/03/in.yaml new file mode 100644 index 0000000..13694b0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/03/in.yaml @@ -0,0 +1,2 @@ +"4 trailing\ + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/04/in.json b/Tests/Fixtures/yaml-test-suite/DE56/04/in.json new file mode 100644 index 0000000..c83327d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/04/in.json @@ -0,0 +1 @@ +"5 trailing tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/04/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/04/in.yaml new file mode 100644 index 0000000..5f8ff1c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/04/in.yaml @@ -0,0 +1,2 @@ +"5 trailing + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/05/in.json b/Tests/Fixtures/yaml-test-suite/DE56/05/in.json new file mode 100644 index 0000000..56138d1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/05/in.json @@ -0,0 +1 @@ +"6 trailing tab" diff --git a/Tests/Fixtures/yaml-test-suite/DE56/05/in.yaml b/Tests/Fixtures/yaml-test-suite/DE56/05/in.yaml new file mode 100644 index 0000000..f25a33a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DE56/05/in.yaml @@ -0,0 +1,2 @@ +"6 trailing + tab" diff --git a/Tests/Fixtures/yaml-test-suite/DFF7/in.yaml b/Tests/Fixtures/yaml-test-suite/DFF7/in.yaml new file mode 100644 index 0000000..cb84a99 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DFF7/in.yaml @@ -0,0 +1,5 @@ +{ +? explicit: entry, +implicit: entry, +? +} diff --git a/Tests/Fixtures/yaml-test-suite/DHP8/in.json b/Tests/Fixtures/yaml-test-suite/DHP8/in.json new file mode 100644 index 0000000..1866413 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DHP8/in.json @@ -0,0 +1,5 @@ +[ + "foo", + "bar", + 42 +] diff --git a/Tests/Fixtures/yaml-test-suite/DHP8/in.yaml b/Tests/Fixtures/yaml-test-suite/DHP8/in.yaml new file mode 100644 index 0000000..bf34158 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DHP8/in.yaml @@ -0,0 +1 @@ +[foo, bar, 42] diff --git a/Tests/Fixtures/yaml-test-suite/DK3J/in.json b/Tests/Fixtures/yaml-test-suite/DK3J/in.json new file mode 100644 index 0000000..ce8e836 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK3J/in.json @@ -0,0 +1 @@ +"line1 # no comment line3\n" diff --git a/Tests/Fixtures/yaml-test-suite/DK3J/in.yaml b/Tests/Fixtures/yaml-test-suite/DK3J/in.yaml new file mode 100644 index 0000000..ffb9aeb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK3J/in.yaml @@ -0,0 +1,4 @@ +--- > +line1 +# no comment +line3 diff --git a/Tests/Fixtures/yaml-test-suite/DK4H/error b/Tests/Fixtures/yaml-test-suite/DK4H/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/DK4H/in.yaml b/Tests/Fixtures/yaml-test-suite/DK4H/in.yaml new file mode 100644 index 0000000..c7a31c9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK4H/in.yaml @@ -0,0 +1,3 @@ +--- +[ key + : value ] diff --git a/Tests/Fixtures/yaml-test-suite/DK95/00/in.json b/Tests/Fixtures/yaml-test-suite/DK95/00/in.json new file mode 100644 index 0000000..d7b2eeb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/00/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/00/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/00/in.yaml new file mode 100644 index 0000000..420d531 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/00/in.yaml @@ -0,0 +1,2 @@ +foo: + bar diff --git a/Tests/Fixtures/yaml-test-suite/DK95/02/in.json b/Tests/Fixtures/yaml-test-suite/DK95/02/in.json new file mode 100644 index 0000000..f86c8d6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/02/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "bar baz" +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/02/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/02/in.yaml new file mode 100644 index 0000000..422933c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/02/in.yaml @@ -0,0 +1,2 @@ +foo: "bar + baz" diff --git a/Tests/Fixtures/yaml-test-suite/DK95/03/in.json b/Tests/Fixtures/yaml-test-suite/DK95/03/in.json new file mode 100644 index 0000000..31ce888 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/03/in.json @@ -0,0 +1,3 @@ +{ + "foo" : 1 +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/03/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/03/in.yaml new file mode 100644 index 0000000..87cf24e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/03/in.yaml @@ -0,0 +1,2 @@ + +foo: 1 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/04/in.json b/Tests/Fixtures/yaml-test-suite/DK95/04/in.json new file mode 100644 index 0000000..eed797b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/04/in.json @@ -0,0 +1,4 @@ +{ + "foo" : 1, + "bar" : 2 +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/04/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/04/in.yaml new file mode 100644 index 0000000..077ba0b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/04/in.yaml @@ -0,0 +1,3 @@ +foo: 1 + +bar: 2 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/05/in.json b/Tests/Fixtures/yaml-test-suite/DK95/05/in.json new file mode 100644 index 0000000..eed797b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/05/in.json @@ -0,0 +1,4 @@ +{ + "foo" : 1, + "bar" : 2 +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/05/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/05/in.yaml new file mode 100644 index 0000000..fea60bc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/05/in.yaml @@ -0,0 +1,3 @@ +foo: 1 + +bar: 2 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/06/error b/Tests/Fixtures/yaml-test-suite/DK95/06/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/06/in.json b/Tests/Fixtures/yaml-test-suite/DK95/06/in.json new file mode 100644 index 0000000..eed797b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/06/in.json @@ -0,0 +1,4 @@ +{ + "foo" : 1, + "bar" : 2 +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/06/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/06/in.yaml new file mode 100644 index 0000000..6bda856 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/06/in.yaml @@ -0,0 +1,3 @@ +foo: + a: 1 + b: 2 diff --git a/Tests/Fixtures/yaml-test-suite/DK95/07/in.json b/Tests/Fixtures/yaml-test-suite/DK95/07/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/07/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/DK95/07/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/07/in.yaml new file mode 100644 index 0000000..9ad1ed2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/07/in.yaml @@ -0,0 +1,3 @@ +%YAML 1.2 + +--- diff --git a/Tests/Fixtures/yaml-test-suite/DK95/08/in.json b/Tests/Fixtures/yaml-test-suite/DK95/08/in.json new file mode 100644 index 0000000..0dc83aa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/08/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "bar baz \t \t " +} diff --git a/Tests/Fixtures/yaml-test-suite/DK95/08/in.yaml b/Tests/Fixtures/yaml-test-suite/DK95/08/in.yaml new file mode 100644 index 0000000..1ae7eca --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DK95/08/in.yaml @@ -0,0 +1,2 @@ +foo: "bar + baz " diff --git a/Tests/Fixtures/yaml-test-suite/DMG6/error b/Tests/Fixtures/yaml-test-suite/DMG6/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/DMG6/in.yaml b/Tests/Fixtures/yaml-test-suite/DMG6/in.yaml new file mode 100644 index 0000000..148a693 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DMG6/in.yaml @@ -0,0 +1,3 @@ +key: + ok: 1 + wrong: 2 diff --git a/Tests/Fixtures/yaml-test-suite/DWX9/in.json b/Tests/Fixtures/yaml-test-suite/DWX9/in.json new file mode 100644 index 0000000..6383f8d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DWX9/in.json @@ -0,0 +1 @@ +"\n\nliteral\n \n\ntext\n" diff --git a/Tests/Fixtures/yaml-test-suite/DWX9/in.yaml b/Tests/Fixtures/yaml-test-suite/DWX9/in.yaml new file mode 100644 index 0000000..9d537cb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/DWX9/in.yaml @@ -0,0 +1,9 @@ +| + + + literal + + + text + + # Comment diff --git a/Tests/Fixtures/yaml-test-suite/E76Z/in.json b/Tests/Fixtures/yaml-test-suite/E76Z/in.json new file mode 100644 index 0000000..a9b2dde --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/E76Z/in.json @@ -0,0 +1,4 @@ +{ + "a": "b", + "b": "a" +} diff --git a/Tests/Fixtures/yaml-test-suite/E76Z/in.yaml b/Tests/Fixtures/yaml-test-suite/E76Z/in.yaml new file mode 100644 index 0000000..756ff71 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/E76Z/in.yaml @@ -0,0 +1,2 @@ +&a a: &b b +*b : *a diff --git a/Tests/Fixtures/yaml-test-suite/EB22/error b/Tests/Fixtures/yaml-test-suite/EB22/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/EB22/in.yaml b/Tests/Fixtures/yaml-test-suite/EB22/in.yaml new file mode 100644 index 0000000..2c7dd1d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EB22/in.yaml @@ -0,0 +1,5 @@ +--- +scalar1 # comment +%YAML 1.2 +--- +scalar2 diff --git a/Tests/Fixtures/yaml-test-suite/EHF6/in.json b/Tests/Fixtures/yaml-test-suite/EHF6/in.json new file mode 100644 index 0000000..d5d1744 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EHF6/in.json @@ -0,0 +1,6 @@ +{ + "k": [ + "a", + "b" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/EHF6/in.yaml b/Tests/Fixtures/yaml-test-suite/EHF6/in.yaml new file mode 100644 index 0000000..f69ccde --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EHF6/in.yaml @@ -0,0 +1,4 @@ +!!map { + k: !!seq + [ a, !!str b] +} diff --git a/Tests/Fixtures/yaml-test-suite/EW3V/error b/Tests/Fixtures/yaml-test-suite/EW3V/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/EW3V/in.yaml b/Tests/Fixtures/yaml-test-suite/EW3V/in.yaml new file mode 100644 index 0000000..433a5f1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EW3V/in.yaml @@ -0,0 +1,2 @@ +k1: v1 + k2: v2 diff --git a/Tests/Fixtures/yaml-test-suite/EX5H/in.json b/Tests/Fixtures/yaml-test-suite/EX5H/in.json new file mode 100644 index 0000000..a565abc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EX5H/in.json @@ -0,0 +1 @@ +"a b c d\ne" diff --git a/Tests/Fixtures/yaml-test-suite/EX5H/in.yaml b/Tests/Fixtures/yaml-test-suite/EX5H/in.yaml new file mode 100644 index 0000000..0e75a65 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EX5H/in.yaml @@ -0,0 +1,7 @@ +--- +a +b + c +d + +e diff --git a/Tests/Fixtures/yaml-test-suite/EXG3/in.json b/Tests/Fixtures/yaml-test-suite/EXG3/in.json new file mode 100644 index 0000000..62a7caa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EXG3/in.json @@ -0,0 +1 @@ +"---word1 word2" diff --git a/Tests/Fixtures/yaml-test-suite/EXG3/in.yaml b/Tests/Fixtures/yaml-test-suite/EXG3/in.yaml new file mode 100644 index 0000000..8ebd5d2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/EXG3/in.yaml @@ -0,0 +1,3 @@ +--- +---word1 +word2 diff --git a/Tests/Fixtures/yaml-test-suite/F2C7/in.json b/Tests/Fixtures/yaml-test-suite/F2C7/in.json new file mode 100644 index 0000000..2c185ac --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F2C7/in.json @@ -0,0 +1,6 @@ +[ + "a", + 2, + 4, + "d" +] diff --git a/Tests/Fixtures/yaml-test-suite/F2C7/in.yaml b/Tests/Fixtures/yaml-test-suite/F2C7/in.yaml new file mode 100644 index 0000000..8574f95 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F2C7/in.yaml @@ -0,0 +1,4 @@ + - &a !!str a + - !!int 2 + - !!int &c 4 + - &d d diff --git a/Tests/Fixtures/yaml-test-suite/F3CP/in.json b/Tests/Fixtures/yaml-test-suite/F3CP/in.json new file mode 100644 index 0000000..a134c8f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F3CP/in.json @@ -0,0 +1,12 @@ +{ + "a": [ + "b", + "c", + { + "d": [ + "e", + "f" + ] + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/F3CP/in.yaml b/Tests/Fixtures/yaml-test-suite/F3CP/in.yaml new file mode 100644 index 0000000..04e631b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F3CP/in.yaml @@ -0,0 +1,2 @@ +--- +{ a: [b, c, { d: [e, f] } ] } diff --git a/Tests/Fixtures/yaml-test-suite/F6MC/in.json b/Tests/Fixtures/yaml-test-suite/F6MC/in.json new file mode 100644 index 0000000..72be982 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F6MC/in.json @@ -0,0 +1,4 @@ +{ + "a": " more indented\nregular\n", + "b": "\n\n more indented\nregular\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/F6MC/in.yaml b/Tests/Fixtures/yaml-test-suite/F6MC/in.yaml new file mode 100644 index 0000000..08c530d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F6MC/in.yaml @@ -0,0 +1,9 @@ +--- +a: >2 + more indented + regular +b: >2 + + + more indented + regular diff --git a/Tests/Fixtures/yaml-test-suite/F8F9/in.json b/Tests/Fixtures/yaml-test-suite/F8F9/in.json new file mode 100644 index 0000000..4dfaa4e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F8F9/in.json @@ -0,0 +1,5 @@ +{ + "strip": "# text", + "clip": "# text\n", + "keep": "# text\n\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/F8F9/in.yaml b/Tests/Fixtures/yaml-test-suite/F8F9/in.yaml new file mode 100644 index 0000000..32fa08f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/F8F9/in.yaml @@ -0,0 +1,19 @@ + # Strip + # Comments: +strip: |- + # text + + # Clip + # comments: + +clip: | + # text + + # Keep + # comments: + +keep: |+ + # text + + # Trail + # comments. diff --git a/Tests/Fixtures/yaml-test-suite/FBC9/in.json b/Tests/Fixtures/yaml-test-suite/FBC9/in.json new file mode 100644 index 0000000..bb25484 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FBC9/in.json @@ -0,0 +1,6 @@ +{ + "safe": "a!\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~", + "safe question mark": "?foo", + "safe colon": ":foo", + "safe dash": "-foo" +} diff --git a/Tests/Fixtures/yaml-test-suite/FBC9/in.yaml b/Tests/Fixtures/yaml-test-suite/FBC9/in.yaml new file mode 100644 index 0000000..ed2516d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FBC9/in.yaml @@ -0,0 +1,5 @@ +safe: a!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~ + !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~ +safe question mark: ?foo +safe colon: :foo +safe dash: -foo diff --git a/Tests/Fixtures/yaml-test-suite/FP8R/in.json b/Tests/Fixtures/yaml-test-suite/FP8R/in.json new file mode 100644 index 0000000..15c6a36 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FP8R/in.json @@ -0,0 +1 @@ +"line1 line2 line3\n" diff --git a/Tests/Fixtures/yaml-test-suite/FP8R/in.yaml b/Tests/Fixtures/yaml-test-suite/FP8R/in.yaml new file mode 100644 index 0000000..b4e414d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FP8R/in.yaml @@ -0,0 +1,4 @@ +--- > +line1 +line2 +line3 diff --git a/Tests/Fixtures/yaml-test-suite/FQ7F/in.json b/Tests/Fixtures/yaml-test-suite/FQ7F/in.json new file mode 100644 index 0000000..5f8dd7d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FQ7F/in.json @@ -0,0 +1,5 @@ +[ + "Mark McGwire", + "Sammy Sosa", + "Ken Griffey" +] diff --git a/Tests/Fixtures/yaml-test-suite/FQ7F/in.yaml b/Tests/Fixtures/yaml-test-suite/FQ7F/in.yaml new file mode 100644 index 0000000..d12e671 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FQ7F/in.yaml @@ -0,0 +1,3 @@ +- Mark McGwire +- Sammy Sosa +- Ken Griffey diff --git a/Tests/Fixtures/yaml-test-suite/FRK4/in.yaml b/Tests/Fixtures/yaml-test-suite/FRK4/in.yaml new file mode 100644 index 0000000..f46900d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FRK4/in.yaml @@ -0,0 +1,4 @@ +{ + ? foo :, + : bar, +} diff --git a/Tests/Fixtures/yaml-test-suite/FTA2/in.json b/Tests/Fixtures/yaml-test-suite/FTA2/in.json new file mode 100644 index 0000000..0ede90f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FTA2/in.json @@ -0,0 +1,3 @@ +[ + "a" +] diff --git a/Tests/Fixtures/yaml-test-suite/FTA2/in.yaml b/Tests/Fixtures/yaml-test-suite/FTA2/in.yaml new file mode 100644 index 0000000..e90e1c7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FTA2/in.yaml @@ -0,0 +1,2 @@ +--- &sequence +- a diff --git a/Tests/Fixtures/yaml-test-suite/FUP4/in.json b/Tests/Fixtures/yaml-test-suite/FUP4/in.json new file mode 100644 index 0000000..8b0e4ac --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FUP4/in.json @@ -0,0 +1,7 @@ +[ + "a", + [ + "b", + "c" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/FUP4/in.yaml b/Tests/Fixtures/yaml-test-suite/FUP4/in.yaml new file mode 100644 index 0000000..5f76a2e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/FUP4/in.yaml @@ -0,0 +1 @@ +[a, [b, c]] diff --git a/Tests/Fixtures/yaml-test-suite/G4RS/in.json b/Tests/Fixtures/yaml-test-suite/G4RS/in.json new file mode 100644 index 0000000..9b2b73a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G4RS/in.json @@ -0,0 +1,8 @@ +{ + "unicode": "Sosa did fine.☺", + "control": "\b1998\t1999\t2000\n", + "hex esc": "\r\n is \r\n", + "single": "\"Howdy!\" he cried.", + "quoted": " # Not a 'comment'.", + "tie-fighter": "|\\-*-/|" +} diff --git a/Tests/Fixtures/yaml-test-suite/G4RS/in.yaml b/Tests/Fixtures/yaml-test-suite/G4RS/in.yaml new file mode 100644 index 0000000..c5c2a18 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G4RS/in.yaml @@ -0,0 +1,7 @@ +unicode: "Sosa did fine.\u263A" +control: "\b1998\t1999\t2000\n" +hex esc: "\x0d\x0a is \r\n" + +single: '"Howdy!" he cried.' +quoted: ' # Not a ''comment''.' +tie-fighter: '|\-*-/|' diff --git a/Tests/Fixtures/yaml-test-suite/G7JE/error b/Tests/Fixtures/yaml-test-suite/G7JE/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/G7JE/in.yaml b/Tests/Fixtures/yaml-test-suite/G7JE/in.yaml new file mode 100644 index 0000000..e0a85bf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G7JE/in.yaml @@ -0,0 +1,3 @@ +a\nb: 1 +c + d: 1 diff --git a/Tests/Fixtures/yaml-test-suite/G992/in.json b/Tests/Fixtures/yaml-test-suite/G992/in.json new file mode 100644 index 0000000..d5cf354 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G992/in.json @@ -0,0 +1 @@ +"folded text\n" diff --git a/Tests/Fixtures/yaml-test-suite/G992/in.yaml b/Tests/Fixtures/yaml-test-suite/G992/in.yaml new file mode 100644 index 0000000..078fbc8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G992/in.yaml @@ -0,0 +1,5 @@ +> + folded + text + + diff --git a/Tests/Fixtures/yaml-test-suite/G9HC/error b/Tests/Fixtures/yaml-test-suite/G9HC/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/G9HC/in.yaml b/Tests/Fixtures/yaml-test-suite/G9HC/in.yaml new file mode 100644 index 0000000..8525992 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/G9HC/in.yaml @@ -0,0 +1,5 @@ +--- +seq: +&anchor +- a +- b diff --git a/Tests/Fixtures/yaml-test-suite/GDY7/error b/Tests/Fixtures/yaml-test-suite/GDY7/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/GDY7/in.yaml b/Tests/Fixtures/yaml-test-suite/GDY7/in.yaml new file mode 100644 index 0000000..ac493b7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/GDY7/in.yaml @@ -0,0 +1,2 @@ +key: value +this is #not a: key diff --git a/Tests/Fixtures/yaml-test-suite/GH63/in.json b/Tests/Fixtures/yaml-test-suite/GH63/in.json new file mode 100644 index 0000000..649f5e4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/GH63/in.json @@ -0,0 +1,4 @@ +{ + "a": 1.3, + "fifteen": "d" +} diff --git a/Tests/Fixtures/yaml-test-suite/GH63/in.yaml b/Tests/Fixtures/yaml-test-suite/GH63/in.yaml new file mode 100644 index 0000000..e54cd41 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/GH63/in.yaml @@ -0,0 +1,3 @@ +? a +: 1.3 +fifteen: d diff --git a/Tests/Fixtures/yaml-test-suite/GT5M/error b/Tests/Fixtures/yaml-test-suite/GT5M/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/GT5M/in.yaml b/Tests/Fixtures/yaml-test-suite/GT5M/in.yaml new file mode 100644 index 0000000..d641a43 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/GT5M/in.yaml @@ -0,0 +1,3 @@ +- item1 +&node +- item2 diff --git a/Tests/Fixtures/yaml-test-suite/H2RW/in.json b/Tests/Fixtures/yaml-test-suite/H2RW/in.json new file mode 100644 index 0000000..6a308c5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H2RW/in.json @@ -0,0 +1,5 @@ +{ + "foo": 1, + "bar": 2, + "text": "a\n \nb\n\nc\n\nd\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/H2RW/in.yaml b/Tests/Fixtures/yaml-test-suite/H2RW/in.yaml new file mode 100644 index 0000000..4987de2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H2RW/in.yaml @@ -0,0 +1,12 @@ +foo: 1 + +bar: 2 + +text: | + a + + b + + c + + d diff --git a/Tests/Fixtures/yaml-test-suite/H3Z8/in.json b/Tests/Fixtures/yaml-test-suite/H3Z8/in.json new file mode 100644 index 0000000..52e666b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H3Z8/in.json @@ -0,0 +1,3 @@ +{ + "wanted": "love ♥ and peace ☮" +} diff --git a/Tests/Fixtures/yaml-test-suite/H3Z8/in.yaml b/Tests/Fixtures/yaml-test-suite/H3Z8/in.yaml new file mode 100644 index 0000000..3cf0d46 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H3Z8/in.yaml @@ -0,0 +1,2 @@ +--- +wanted: love ♥ and peace ☮ diff --git a/Tests/Fixtures/yaml-test-suite/H7TQ/error b/Tests/Fixtures/yaml-test-suite/H7TQ/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/H7TQ/in.yaml b/Tests/Fixtures/yaml-test-suite/H7TQ/in.yaml new file mode 100644 index 0000000..79aadcd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/H7TQ/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.2 foo +--- diff --git a/Tests/Fixtures/yaml-test-suite/HM87/00/in.json b/Tests/Fixtures/yaml-test-suite/HM87/00/in.json new file mode 100644 index 0000000..9959ccb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HM87/00/in.json @@ -0,0 +1,3 @@ +[ + ":x" +] diff --git a/Tests/Fixtures/yaml-test-suite/HM87/00/in.yaml b/Tests/Fixtures/yaml-test-suite/HM87/00/in.yaml new file mode 100644 index 0000000..7b8d05b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HM87/00/in.yaml @@ -0,0 +1 @@ +[:x] diff --git a/Tests/Fixtures/yaml-test-suite/HM87/01/in.json b/Tests/Fixtures/yaml-test-suite/HM87/01/in.json new file mode 100644 index 0000000..8150f2c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HM87/01/in.json @@ -0,0 +1,3 @@ +[ + "?x" +] diff --git a/Tests/Fixtures/yaml-test-suite/HM87/01/in.yaml b/Tests/Fixtures/yaml-test-suite/HM87/01/in.yaml new file mode 100644 index 0000000..d52c931 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HM87/01/in.yaml @@ -0,0 +1 @@ +[?x] diff --git a/Tests/Fixtures/yaml-test-suite/HMK4/in.json b/Tests/Fixtures/yaml-test-suite/HMK4/in.json new file mode 100644 index 0000000..e1887b5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HMK4/in.json @@ -0,0 +1,5 @@ +{ + "name": "Mark McGwire", + "accomplishment": "Mark set a major league home run record in 1998.\n", + "stats": "65 Home Runs\n0.278 Batting Average\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/HMK4/in.yaml b/Tests/Fixtures/yaml-test-suite/HMK4/in.yaml new file mode 100644 index 0000000..9f66d88 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HMK4/in.yaml @@ -0,0 +1,7 @@ +name: Mark McGwire +accomplishment: > + Mark set a major league + home run record in 1998. +stats: | + 65 Home Runs + 0.278 Batting Average diff --git a/Tests/Fixtures/yaml-test-suite/HMQ5/in.json b/Tests/Fixtures/yaml-test-suite/HMQ5/in.json new file mode 100644 index 0000000..510c6a7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HMQ5/in.json @@ -0,0 +1,4 @@ +{ + "foo": "bar", + "baz": "foo" +} diff --git a/Tests/Fixtures/yaml-test-suite/HMQ5/in.yaml b/Tests/Fixtures/yaml-test-suite/HMQ5/in.yaml new file mode 100644 index 0000000..66d75f3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HMQ5/in.yaml @@ -0,0 +1,3 @@ +!!str &a1 "foo": + !!str bar +&a2 baz : *a1 diff --git a/Tests/Fixtures/yaml-test-suite/HS5T/in.json b/Tests/Fixtures/yaml-test-suite/HS5T/in.json new file mode 100644 index 0000000..2dc1d4e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HS5T/in.json @@ -0,0 +1 @@ +"1st non-empty\n2nd non-empty 3rd non-empty" diff --git a/Tests/Fixtures/yaml-test-suite/HS5T/in.yaml b/Tests/Fixtures/yaml-test-suite/HS5T/in.yaml new file mode 100644 index 0000000..0499250 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HS5T/in.yaml @@ -0,0 +1,4 @@ +1st non-empty + + 2nd non-empty + 3rd non-empty diff --git a/Tests/Fixtures/yaml-test-suite/HWV9/in.json b/Tests/Fixtures/yaml-test-suite/HWV9/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/HWV9/in.yaml b/Tests/Fixtures/yaml-test-suite/HWV9/in.yaml new file mode 100644 index 0000000..eb1ae45 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/HWV9/in.yaml @@ -0,0 +1 @@ +... diff --git a/Tests/Fixtures/yaml-test-suite/J5UC/in.json b/Tests/Fixtures/yaml-test-suite/J5UC/in.json new file mode 100644 index 0000000..1d2cefe --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J5UC/in.json @@ -0,0 +1,5 @@ +{ + "foo": "blue", + "bar": "arrr", + "baz": "jazz" +} diff --git a/Tests/Fixtures/yaml-test-suite/J5UC/in.yaml b/Tests/Fixtures/yaml-test-suite/J5UC/in.yaml new file mode 100644 index 0000000..a40b18e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J5UC/in.yaml @@ -0,0 +1,3 @@ +foo: blue +bar: arrr +baz: jazz diff --git a/Tests/Fixtures/yaml-test-suite/J7PZ/in.json b/Tests/Fixtures/yaml-test-suite/J7PZ/in.json new file mode 100644 index 0000000..c5ae8a0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J7PZ/in.json @@ -0,0 +1,11 @@ +[ + { + "Mark McGwire": 65 + }, + { + "Sammy Sosa": 63 + }, + { + "Ken Griffy": 58 + } +] diff --git a/Tests/Fixtures/yaml-test-suite/J7PZ/in.yaml b/Tests/Fixtures/yaml-test-suite/J7PZ/in.yaml new file mode 100644 index 0000000..25692f4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J7PZ/in.yaml @@ -0,0 +1,11 @@ +# The !!omap tag is one of the optional types +# introduced for YAML 1.1. In 1.2, it is not +# part of the standard tags and should not be +# enabled by default. +# Ordered maps are represented as +# A sequence of mappings, with +# each mapping having one key +--- !!omap +- Mark McGwire: 65 +- Sammy Sosa: 63 +- Ken Griffy: 58 diff --git a/Tests/Fixtures/yaml-test-suite/J7VC/in.json b/Tests/Fixtures/yaml-test-suite/J7VC/in.json new file mode 100644 index 0000000..d880c33 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J7VC/in.json @@ -0,0 +1,4 @@ +{ + "one": 2, + "three": 4 +} diff --git a/Tests/Fixtures/yaml-test-suite/J7VC/in.yaml b/Tests/Fixtures/yaml-test-suite/J7VC/in.yaml new file mode 100644 index 0000000..47956a8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J7VC/in.yaml @@ -0,0 +1,4 @@ +one: 2 + + +three: 4 diff --git a/Tests/Fixtures/yaml-test-suite/J9HZ/in.json b/Tests/Fixtures/yaml-test-suite/J9HZ/in.json new file mode 100644 index 0000000..d32dc2f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J9HZ/in.json @@ -0,0 +1,10 @@ +{ + "hr": [ + "Mark McGwire", + "Sammy Sosa" + ], + "rbi": [ + "Sammy Sosa", + "Ken Griffey" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/J9HZ/in.yaml b/Tests/Fixtures/yaml-test-suite/J9HZ/in.yaml new file mode 100644 index 0000000..e264180 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/J9HZ/in.yaml @@ -0,0 +1,8 @@ +--- +hr: # 1998 hr ranking + - Mark McGwire + - Sammy Sosa +rbi: + # 1998 rbi ranking + - Sammy Sosa + - Ken Griffey diff --git a/Tests/Fixtures/yaml-test-suite/JEF9/00/in.json b/Tests/Fixtures/yaml-test-suite/JEF9/00/in.json new file mode 100644 index 0000000..c1d057c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JEF9/00/in.json @@ -0,0 +1,3 @@ +[ + "\n\n" +] diff --git a/Tests/Fixtures/yaml-test-suite/JEF9/00/in.yaml b/Tests/Fixtures/yaml-test-suite/JEF9/00/in.yaml new file mode 100644 index 0000000..be41666 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JEF9/00/in.yaml @@ -0,0 +1,3 @@ +- |+ + + diff --git a/Tests/Fixtures/yaml-test-suite/JEF9/01/in.json b/Tests/Fixtures/yaml-test-suite/JEF9/01/in.json new file mode 100644 index 0000000..a075745 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JEF9/01/in.json @@ -0,0 +1,3 @@ +[ + "\n" +] diff --git a/Tests/Fixtures/yaml-test-suite/JEF9/01/in.yaml b/Tests/Fixtures/yaml-test-suite/JEF9/01/in.yaml new file mode 100644 index 0000000..522e56c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JEF9/01/in.yaml @@ -0,0 +1,2 @@ +- |+ + diff --git a/Tests/Fixtures/yaml-test-suite/JHB9/in.json b/Tests/Fixtures/yaml-test-suite/JHB9/in.json new file mode 100644 index 0000000..4a96ef4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JHB9/in.json @@ -0,0 +1,9 @@ +[ + "Mark McGwire", + "Sammy Sosa", + "Ken Griffey" +] +[ + "Chicago Cubs", + "St Louis Cardinals" +] diff --git a/Tests/Fixtures/yaml-test-suite/JHB9/in.yaml b/Tests/Fixtures/yaml-test-suite/JHB9/in.yaml new file mode 100644 index 0000000..bc711d5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JHB9/in.yaml @@ -0,0 +1,10 @@ +# Ranking of 1998 home runs +--- +- Mark McGwire +- Sammy Sosa +- Ken Griffey + +# Team ranking +--- +- Chicago Cubs +- St Louis Cardinals diff --git a/Tests/Fixtures/yaml-test-suite/JQ4R/in.json b/Tests/Fixtures/yaml-test-suite/JQ4R/in.json new file mode 100644 index 0000000..ad5c054 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JQ4R/in.json @@ -0,0 +1,8 @@ +{ + "block sequence": [ + "one", + { + "two": "three" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/JQ4R/in.yaml b/Tests/Fixtures/yaml-test-suite/JQ4R/in.yaml new file mode 100644 index 0000000..d2f2ccf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JQ4R/in.yaml @@ -0,0 +1,3 @@ +block sequence: + - one + - two : three diff --git a/Tests/Fixtures/yaml-test-suite/JR7V/in.json b/Tests/Fixtures/yaml-test-suite/JR7V/in.json new file mode 100644 index 0000000..eba7f7f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JR7V/in.json @@ -0,0 +1,22 @@ +[ + "a?string", + "another ? string", + { + "key": "value?" + }, + [ + "a?string" + ], + [ + "another ? string" + ], + { + "key": "value?" + }, + { + "key": "value?" + }, + { + "key?": "value" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/JR7V/in.yaml b/Tests/Fixtures/yaml-test-suite/JR7V/in.yaml new file mode 100644 index 0000000..c41e47c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JR7V/in.yaml @@ -0,0 +1,8 @@ +- a?string +- another ? string +- key: value? +- [a?string] +- [another ? string] +- {key: value? } +- {key: value?} +- {key?: value } diff --git a/Tests/Fixtures/yaml-test-suite/JS2J/in.json b/Tests/Fixtures/yaml-test-suite/JS2J/in.json new file mode 100644 index 0000000..4b838cf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JS2J/in.json @@ -0,0 +1,4 @@ +{ + "First occurrence": "Value", + "Second occurrence": "Value" +} diff --git a/Tests/Fixtures/yaml-test-suite/JS2J/in.yaml b/Tests/Fixtures/yaml-test-suite/JS2J/in.yaml new file mode 100644 index 0000000..600d179 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JS2J/in.yaml @@ -0,0 +1,2 @@ +First occurrence: &anchor Value +Second occurrence: *anchor diff --git a/Tests/Fixtures/yaml-test-suite/JTV5/in.json b/Tests/Fixtures/yaml-test-suite/JTV5/in.json new file mode 100644 index 0000000..fbccf11 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JTV5/in.json @@ -0,0 +1,4 @@ +{ + "a true": "null d", + "e 42": null +} diff --git a/Tests/Fixtures/yaml-test-suite/JTV5/in.yaml b/Tests/Fixtures/yaml-test-suite/JTV5/in.yaml new file mode 100644 index 0000000..247a8cd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/JTV5/in.yaml @@ -0,0 +1,6 @@ +? a + true +: null + d +? e + 42 diff --git a/Tests/Fixtures/yaml-test-suite/K3WX/in.json b/Tests/Fixtures/yaml-test-suite/K3WX/in.json new file mode 100644 index 0000000..c8c4105 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K3WX/in.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/K3WX/in.yaml b/Tests/Fixtures/yaml-test-suite/K3WX/in.yaml new file mode 100644 index 0000000..14d2753 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K3WX/in.yaml @@ -0,0 +1,3 @@ +--- +{ "foo" # comment + :bar } diff --git a/Tests/Fixtures/yaml-test-suite/K4SU/in.json b/Tests/Fixtures/yaml-test-suite/K4SU/in.json new file mode 100644 index 0000000..1866413 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K4SU/in.json @@ -0,0 +1,5 @@ +[ + "foo", + "bar", + 42 +] diff --git a/Tests/Fixtures/yaml-test-suite/K4SU/in.yaml b/Tests/Fixtures/yaml-test-suite/K4SU/in.yaml new file mode 100644 index 0000000..5fae9f4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K4SU/in.yaml @@ -0,0 +1,3 @@ +- foo +- bar +- 42 diff --git a/Tests/Fixtures/yaml-test-suite/K527/in.json b/Tests/Fixtures/yaml-test-suite/K527/in.json new file mode 100644 index 0000000..9c6ce92 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K527/in.json @@ -0,0 +1 @@ +"trimmed\n\n\nas space" diff --git a/Tests/Fixtures/yaml-test-suite/K527/in.yaml b/Tests/Fixtures/yaml-test-suite/K527/in.yaml new file mode 100644 index 0000000..1c5090d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K527/in.yaml @@ -0,0 +1,7 @@ +>- + trimmed + + + + as + space diff --git a/Tests/Fixtures/yaml-test-suite/K54U/in.json b/Tests/Fixtures/yaml-test-suite/K54U/in.json new file mode 100644 index 0000000..6dbc311 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K54U/in.json @@ -0,0 +1 @@ +"scalar" diff --git a/Tests/Fixtures/yaml-test-suite/K54U/in.yaml b/Tests/Fixtures/yaml-test-suite/K54U/in.yaml new file mode 100644 index 0000000..8171dcc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K54U/in.yaml @@ -0,0 +1 @@ +--- scalar diff --git a/Tests/Fixtures/yaml-test-suite/K858/in.json b/Tests/Fixtures/yaml-test-suite/K858/in.json new file mode 100644 index 0000000..d63b700 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K858/in.json @@ -0,0 +1,5 @@ +{ + "strip": "", + "clip": "", + "keep": "\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/K858/in.yaml b/Tests/Fixtures/yaml-test-suite/K858/in.yaml new file mode 100644 index 0000000..de0b64b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/K858/in.yaml @@ -0,0 +1,6 @@ +strip: >- + +clip: > + +keep: |+ + diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/00/in.json b/Tests/Fixtures/yaml-test-suite/KH5V/00/in.json new file mode 100644 index 0000000..f0458e7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/00/in.json @@ -0,0 +1 @@ +"1 inline\ttab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/00/in.yaml b/Tests/Fixtures/yaml-test-suite/KH5V/00/in.yaml new file mode 100644 index 0000000..f0458e7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/00/in.yaml @@ -0,0 +1 @@ +"1 inline\ttab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/01/in.json b/Tests/Fixtures/yaml-test-suite/KH5V/01/in.json new file mode 100644 index 0000000..0bd18c3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/01/in.json @@ -0,0 +1 @@ +"2 inline\ttab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/01/in.yaml b/Tests/Fixtures/yaml-test-suite/KH5V/01/in.yaml new file mode 100644 index 0000000..e32b715 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/01/in.yaml @@ -0,0 +1 @@ +"2 inline\ tab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/02/in.json b/Tests/Fixtures/yaml-test-suite/KH5V/02/in.json new file mode 100644 index 0000000..a7a0e0f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/02/in.json @@ -0,0 +1 @@ +"3 inline\ttab" diff --git a/Tests/Fixtures/yaml-test-suite/KH5V/02/in.yaml b/Tests/Fixtures/yaml-test-suite/KH5V/02/in.yaml new file mode 100644 index 0000000..ef3075f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KH5V/02/in.yaml @@ -0,0 +1 @@ +"3 inline tab" diff --git a/Tests/Fixtures/yaml-test-suite/KK5P/in.yaml b/Tests/Fixtures/yaml-test-suite/KK5P/in.yaml new file mode 100644 index 0000000..872966f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KK5P/in.yaml @@ -0,0 +1,16 @@ +complex1: + ? - a +complex2: + ? - a + : b +complex3: + ? - a + : > + b +complex4: + ? > + a + : +complex5: + ? - a + : - b diff --git a/Tests/Fixtures/yaml-test-suite/KMK3/in.json b/Tests/Fixtures/yaml-test-suite/KMK3/in.json new file mode 100644 index 0000000..b7cf07e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KMK3/in.json @@ -0,0 +1,6 @@ +{ + "foo": { + "bar": 1 + }, + "baz": 2 +} diff --git a/Tests/Fixtures/yaml-test-suite/KMK3/in.yaml b/Tests/Fixtures/yaml-test-suite/KMK3/in.yaml new file mode 100644 index 0000000..32d2114 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KMK3/in.yaml @@ -0,0 +1,3 @@ +foo: + bar: 1 +baz: 2 diff --git a/Tests/Fixtures/yaml-test-suite/KS4U/error b/Tests/Fixtures/yaml-test-suite/KS4U/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/KS4U/in.yaml b/Tests/Fixtures/yaml-test-suite/KS4U/in.yaml new file mode 100644 index 0000000..a77ca09 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KS4U/in.yaml @@ -0,0 +1,5 @@ +--- +[ +sequence item +] +invalid item diff --git a/Tests/Fixtures/yaml-test-suite/KSS4/in.json b/Tests/Fixtures/yaml-test-suite/KSS4/in.json new file mode 100644 index 0000000..19747c7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KSS4/in.json @@ -0,0 +1,2 @@ +"quoted string" +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/KSS4/in.yaml b/Tests/Fixtures/yaml-test-suite/KSS4/in.yaml new file mode 100644 index 0000000..5cbbe23 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/KSS4/in.yaml @@ -0,0 +1,3 @@ +--- "quoted +string" +--- &node foo diff --git a/Tests/Fixtures/yaml-test-suite/L24T/00/in.json b/Tests/Fixtures/yaml-test-suite/L24T/00/in.json new file mode 100644 index 0000000..6548965 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L24T/00/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "x\n \n" +} diff --git a/Tests/Fixtures/yaml-test-suite/L24T/00/in.yaml b/Tests/Fixtures/yaml-test-suite/L24T/00/in.yaml new file mode 100644 index 0000000..6a1854b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L24T/00/in.yaml @@ -0,0 +1,3 @@ +foo: | + x + diff --git a/Tests/Fixtures/yaml-test-suite/L24T/01/in.json b/Tests/Fixtures/yaml-test-suite/L24T/01/in.json new file mode 100644 index 0000000..6548965 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L24T/01/in.json @@ -0,0 +1,3 @@ +{ + "foo" : "x\n \n" +} diff --git a/Tests/Fixtures/yaml-test-suite/L24T/01/in.yaml b/Tests/Fixtures/yaml-test-suite/L24T/01/in.yaml new file mode 100644 index 0000000..b5768af --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L24T/01/in.yaml @@ -0,0 +1,3 @@ +foo: | + x + \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/L383/in.json b/Tests/Fixtures/yaml-test-suite/L383/in.json new file mode 100644 index 0000000..d53e1d6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L383/in.json @@ -0,0 +1,2 @@ +"foo" +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/L383/in.yaml b/Tests/Fixtures/yaml-test-suite/L383/in.yaml new file mode 100644 index 0000000..235f249 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L383/in.yaml @@ -0,0 +1,2 @@ +--- foo # comment +--- foo # comment diff --git a/Tests/Fixtures/yaml-test-suite/L94M/in.json b/Tests/Fixtures/yaml-test-suite/L94M/in.json new file mode 100644 index 0000000..07ded62 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L94M/in.json @@ -0,0 +1,4 @@ +{ + "a": 47, + "c": "d" +} diff --git a/Tests/Fixtures/yaml-test-suite/L94M/in.yaml b/Tests/Fixtures/yaml-test-suite/L94M/in.yaml new file mode 100644 index 0000000..c5e6ceb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L94M/in.yaml @@ -0,0 +1,4 @@ +? !!str a +: !!int 47 +? c +: !!str d diff --git a/Tests/Fixtures/yaml-test-suite/L9U5/in.json b/Tests/Fixtures/yaml-test-suite/L9U5/in.json new file mode 100644 index 0000000..16ae65b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L9U5/in.json @@ -0,0 +1,7 @@ +{ + "implicit block key": [ + { + "implicit flow key": "value" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/L9U5/in.yaml b/Tests/Fixtures/yaml-test-suite/L9U5/in.yaml new file mode 100644 index 0000000..fd57f65 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/L9U5/in.yaml @@ -0,0 +1,3 @@ +implicit block key : [ + implicit flow key : value, + ] diff --git a/Tests/Fixtures/yaml-test-suite/LE5A/in.json b/Tests/Fixtures/yaml-test-suite/LE5A/in.json new file mode 100644 index 0000000..fc128b8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LE5A/in.json @@ -0,0 +1,7 @@ +[ + "a", + "b", + "c", + "c", + "" +] diff --git a/Tests/Fixtures/yaml-test-suite/LE5A/in.yaml b/Tests/Fixtures/yaml-test-suite/LE5A/in.yaml new file mode 100644 index 0000000..db4007f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LE5A/in.yaml @@ -0,0 +1,5 @@ +- !!str "a" +- 'b' +- &anchor "c" +- *anchor +- !!str diff --git a/Tests/Fixtures/yaml-test-suite/LHL4/error b/Tests/Fixtures/yaml-test-suite/LHL4/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/LHL4/in.yaml b/Tests/Fixtures/yaml-test-suite/LHL4/in.yaml new file mode 100644 index 0000000..3d0ecf2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LHL4/in.yaml @@ -0,0 +1,2 @@ +--- +!invalid{}tag scalar diff --git a/Tests/Fixtures/yaml-test-suite/LP6E/in.json b/Tests/Fixtures/yaml-test-suite/LP6E/in.json new file mode 100644 index 0000000..178c43c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LP6E/in.json @@ -0,0 +1,13 @@ +[ + [ + "a", + "b", + "c" + ], + { + "a": "b", + "c": "d", + "e": "f" + }, + [] +] diff --git a/Tests/Fixtures/yaml-test-suite/LP6E/in.yaml b/Tests/Fixtures/yaml-test-suite/LP6E/in.yaml new file mode 100644 index 0000000..3a60909 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LP6E/in.yaml @@ -0,0 +1,6 @@ +- [a, b , c ] +- { "a" : b + , c : 'd' , + e : "f" + } +- [ ] diff --git a/Tests/Fixtures/yaml-test-suite/LQZ7/in.json b/Tests/Fixtures/yaml-test-suite/LQZ7/in.json new file mode 100644 index 0000000..16ae65b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LQZ7/in.json @@ -0,0 +1,7 @@ +{ + "implicit block key": [ + { + "implicit flow key": "value" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/LQZ7/in.yaml b/Tests/Fixtures/yaml-test-suite/LQZ7/in.yaml new file mode 100644 index 0000000..1b7a550 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/LQZ7/in.yaml @@ -0,0 +1,3 @@ +"implicit block key" : [ + "implicit flow key" : value, + ] diff --git a/Tests/Fixtures/yaml-test-suite/M29M/in.json b/Tests/Fixtures/yaml-test-suite/M29M/in.json new file mode 100644 index 0000000..093e6e2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M29M/in.json @@ -0,0 +1,3 @@ +{ + "a": "ab\n\ncd\nef\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/M29M/in.yaml b/Tests/Fixtures/yaml-test-suite/M29M/in.yaml new file mode 100644 index 0000000..d472650 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M29M/in.yaml @@ -0,0 +1,8 @@ +a: | + ab + + cd + ef + + +... diff --git a/Tests/Fixtures/yaml-test-suite/M2N8/00/in.yaml b/Tests/Fixtures/yaml-test-suite/M2N8/00/in.yaml new file mode 100644 index 0000000..82c9ffa --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M2N8/00/in.yaml @@ -0,0 +1 @@ +- ? : x diff --git a/Tests/Fixtures/yaml-test-suite/M2N8/01/in.yaml b/Tests/Fixtures/yaml-test-suite/M2N8/01/in.yaml new file mode 100644 index 0000000..a786266 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M2N8/01/in.yaml @@ -0,0 +1 @@ +? []: x diff --git a/Tests/Fixtures/yaml-test-suite/M5DY/in.yaml b/Tests/Fixtures/yaml-test-suite/M5DY/in.yaml new file mode 100644 index 0000000..9123ce2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M5DY/in.yaml @@ -0,0 +1,9 @@ +? - Detroit Tigers + - Chicago cubs +: + - 2001-07-23 + +? [ New York Yankees, + Atlanta Braves ] +: [ 2001-07-02, 2001-08-12, + 2001-08-14 ] diff --git a/Tests/Fixtures/yaml-test-suite/M6YH/in.json b/Tests/Fixtures/yaml-test-suite/M6YH/in.json new file mode 100644 index 0000000..8e9ddf6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M6YH/in.json @@ -0,0 +1,9 @@ +[ + "x\n", + { + "foo" : "bar" + }, + [ + 42 + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/M6YH/in.yaml b/Tests/Fixtures/yaml-test-suite/M6YH/in.yaml new file mode 100644 index 0000000..d8468d7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M6YH/in.yaml @@ -0,0 +1,6 @@ +- | + x +- + foo: bar +- + - 42 diff --git a/Tests/Fixtures/yaml-test-suite/M7NX/in.json b/Tests/Fixtures/yaml-test-suite/M7NX/in.json new file mode 100644 index 0000000..a134c8f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M7NX/in.json @@ -0,0 +1,12 @@ +{ + "a": [ + "b", + "c", + { + "d": [ + "e", + "f" + ] + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/M7NX/in.yaml b/Tests/Fixtures/yaml-test-suite/M7NX/in.yaml new file mode 100644 index 0000000..d8f46c4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M7NX/in.yaml @@ -0,0 +1,8 @@ +--- +{ + a: [ + b, c, { + d: [e, f] + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/M9B4/in.json b/Tests/Fixtures/yaml-test-suite/M9B4/in.json new file mode 100644 index 0000000..2e190c6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M9B4/in.json @@ -0,0 +1 @@ +"literal\n\ttext\n" diff --git a/Tests/Fixtures/yaml-test-suite/M9B4/in.yaml b/Tests/Fixtures/yaml-test-suite/M9B4/in.yaml new file mode 100644 index 0000000..31f9966 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/M9B4/in.yaml @@ -0,0 +1,5 @@ +| + literal + text + + diff --git a/Tests/Fixtures/yaml-test-suite/MJS9/in.json b/Tests/Fixtures/yaml-test-suite/MJS9/in.json new file mode 100644 index 0000000..9dd9b03 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MJS9/in.json @@ -0,0 +1 @@ +"foo \n\n\t bar\n\nbaz\n" diff --git a/Tests/Fixtures/yaml-test-suite/MJS9/in.yaml b/Tests/Fixtures/yaml-test-suite/MJS9/in.yaml new file mode 100644 index 0000000..0896cc6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MJS9/in.yaml @@ -0,0 +1,6 @@ +> + foo + + bar + + baz diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/00/error b/Tests/Fixtures/yaml-test-suite/MUS6/00/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/00/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/00/in.yaml new file mode 100644 index 0000000..bb08497 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/00/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.1#... +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/01/error b/Tests/Fixtures/yaml-test-suite/MUS6/01/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/01/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/01/in.yaml new file mode 100644 index 0000000..a919837 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/01/in.yaml @@ -0,0 +1,4 @@ +%YAML 1.2 +--- +%YAML 1.2 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/02/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/02/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/02/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/02/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/02/in.yaml new file mode 100644 index 0000000..168723f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/02/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.1 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/03/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/03/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/03/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/03/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/03/in.yaml new file mode 100644 index 0000000..c05cfdf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/03/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.1 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/04/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/04/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/04/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/04/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/04/in.yaml new file mode 100644 index 0000000..4fb8480 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/04/in.yaml @@ -0,0 +1,2 @@ +%YAML 1.1 # comment +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/05/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/05/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/05/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/05/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/05/in.yaml new file mode 100644 index 0000000..134cd49 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/05/in.yaml @@ -0,0 +1,2 @@ +%YAM 1.1 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/06/in.json b/Tests/Fixtures/yaml-test-suite/MUS6/06/in.json new file mode 100644 index 0000000..19765bd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/06/in.json @@ -0,0 +1 @@ +null diff --git a/Tests/Fixtures/yaml-test-suite/MUS6/06/in.yaml b/Tests/Fixtures/yaml-test-suite/MUS6/06/in.yaml new file mode 100644 index 0000000..2ae8800 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MUS6/06/in.yaml @@ -0,0 +1,2 @@ +%YAMLL 1.1 +--- diff --git a/Tests/Fixtures/yaml-test-suite/MXS3/in.json b/Tests/Fixtures/yaml-test-suite/MXS3/in.json new file mode 100644 index 0000000..d107517 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MXS3/in.json @@ -0,0 +1,5 @@ +[ + { + "a": "b" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/MXS3/in.yaml b/Tests/Fixtures/yaml-test-suite/MXS3/in.yaml new file mode 100644 index 0000000..9d8ba51 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MXS3/in.yaml @@ -0,0 +1 @@ +- {a: b} diff --git a/Tests/Fixtures/yaml-test-suite/MYW6/in.json b/Tests/Fixtures/yaml-test-suite/MYW6/in.json new file mode 100644 index 0000000..cb5537d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MYW6/in.json @@ -0,0 +1 @@ +"ab" diff --git a/Tests/Fixtures/yaml-test-suite/MYW6/in.yaml b/Tests/Fixtures/yaml-test-suite/MYW6/in.yaml new file mode 100644 index 0000000..1056edd --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MYW6/in.yaml @@ -0,0 +1,5 @@ +|- + ab + + +... diff --git a/Tests/Fixtures/yaml-test-suite/MZX3/in.json b/Tests/Fixtures/yaml-test-suite/MZX3/in.json new file mode 100644 index 0000000..2f701b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MZX3/in.json @@ -0,0 +1,7 @@ +[ + "plain", + "double quoted", + "single quoted", + "block\n", + "plain again" +] diff --git a/Tests/Fixtures/yaml-test-suite/MZX3/in.yaml b/Tests/Fixtures/yaml-test-suite/MZX3/in.yaml new file mode 100644 index 0000000..81acc21 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/MZX3/in.yaml @@ -0,0 +1,6 @@ +- plain +- "double quoted" +- 'single quoted' +- > + block +- plain again diff --git a/Tests/Fixtures/yaml-test-suite/N4JP/error b/Tests/Fixtures/yaml-test-suite/N4JP/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/N4JP/in.yaml b/Tests/Fixtures/yaml-test-suite/N4JP/in.yaml new file mode 100644 index 0000000..55c3038 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/N4JP/in.yaml @@ -0,0 +1,3 @@ +map: + key1: "quoted1" + key2: "bad indentation" diff --git a/Tests/Fixtures/yaml-test-suite/N782/error b/Tests/Fixtures/yaml-test-suite/N782/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/N782/in.yaml b/Tests/Fixtures/yaml-test-suite/N782/in.yaml new file mode 100644 index 0000000..ef7d8c4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/N782/in.yaml @@ -0,0 +1,4 @@ +[ +--- , +... +] diff --git a/Tests/Fixtures/yaml-test-suite/NAT4/in.json b/Tests/Fixtures/yaml-test-suite/NAT4/in.json new file mode 100644 index 0000000..f2cc7e8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NAT4/in.json @@ -0,0 +1,10 @@ +{ + "a": " ", + "b": " ", + "c": " ", + "d": " ", + "e": "\n", + "f": "\n", + "g": "\n\n", + "h": "\n\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/NAT4/in.yaml b/Tests/Fixtures/yaml-test-suite/NAT4/in.yaml new file mode 100644 index 0000000..10d58e2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NAT4/in.yaml @@ -0,0 +1,23 @@ +--- +a: ' + ' +b: ' + ' +c: " + " +d: " + " +e: ' + + ' +f: " + + " +g: ' + + + ' +h: " + + + " diff --git a/Tests/Fixtures/yaml-test-suite/NHX8/in.yaml b/Tests/Fixtures/yaml-test-suite/NHX8/in.yaml new file mode 100644 index 0000000..2c0664b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NHX8/in.yaml @@ -0,0 +1,3 @@ +: + + diff --git a/Tests/Fixtures/yaml-test-suite/NJ66/in.json b/Tests/Fixtures/yaml-test-suite/NJ66/in.json new file mode 100644 index 0000000..d214d88 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NJ66/in.json @@ -0,0 +1,8 @@ +[ + { + "single line": "value" + }, + { + "multi line": "value" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/NJ66/in.yaml b/Tests/Fixtures/yaml-test-suite/NJ66/in.yaml new file mode 100644 index 0000000..6ded532 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NJ66/in.yaml @@ -0,0 +1,4 @@ +--- +- { single line: value} +- { multi + line: value} diff --git a/Tests/Fixtures/yaml-test-suite/NKF9/in.yaml b/Tests/Fixtures/yaml-test-suite/NKF9/in.yaml new file mode 100644 index 0000000..30c07c2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NKF9/in.yaml @@ -0,0 +1,13 @@ +--- +key: value +: empty key +--- +{ + key: value, : empty key +} +--- +# empty key and value +: +--- +# empty key and value +{ : } diff --git a/Tests/Fixtures/yaml-test-suite/NP9H/in.json b/Tests/Fixtures/yaml-test-suite/NP9H/in.json new file mode 100644 index 0000000..6ab3718 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NP9H/in.json @@ -0,0 +1 @@ +"folded to a space,\nto a line feed, or \t \tnon-content" diff --git a/Tests/Fixtures/yaml-test-suite/NP9H/in.yaml b/Tests/Fixtures/yaml-test-suite/NP9H/in.yaml new file mode 100644 index 0000000..eda4b49 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/NP9H/in.yaml @@ -0,0 +1,5 @@ +"folded +to a space, + +to a line feed, or \ + \ non-content" diff --git a/Tests/Fixtures/yaml-test-suite/P2AD/in.json b/Tests/Fixtures/yaml-test-suite/P2AD/in.json new file mode 100644 index 0000000..4e476d6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P2AD/in.json @@ -0,0 +1,6 @@ +[ + "literal\n", + " folded\n", + "keep\n\n", + " strip" +] diff --git a/Tests/Fixtures/yaml-test-suite/P2AD/in.yaml b/Tests/Fixtures/yaml-test-suite/P2AD/in.yaml new file mode 100644 index 0000000..1dbadca --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P2AD/in.yaml @@ -0,0 +1,9 @@ +- | # Empty header↓ + literal +- >1 # Indentation indicator↓ + folded +- |+ # Chomping indicator↓ + keep + +- >1- # Both indicators↓ + strip diff --git a/Tests/Fixtures/yaml-test-suite/P76L/in.json b/Tests/Fixtures/yaml-test-suite/P76L/in.json new file mode 100644 index 0000000..8394b3d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P76L/in.json @@ -0,0 +1 @@ +"1 - 3" diff --git a/Tests/Fixtures/yaml-test-suite/P76L/in.yaml b/Tests/Fixtures/yaml-test-suite/P76L/in.yaml new file mode 100644 index 0000000..7b9d9b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P76L/in.yaml @@ -0,0 +1,3 @@ +%TAG !! tag:example.com,2000:app/ +--- +!!int 1 - 3 # Interval, not integer diff --git a/Tests/Fixtures/yaml-test-suite/P94K/in.json b/Tests/Fixtures/yaml-test-suite/P94K/in.json new file mode 100644 index 0000000..7a9e864 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P94K/in.json @@ -0,0 +1,3 @@ +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/P94K/in.yaml b/Tests/Fixtures/yaml-test-suite/P94K/in.yaml new file mode 100644 index 0000000..6776e8a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/P94K/in.yaml @@ -0,0 +1,5 @@ +key: # Comment + # lines + value + + diff --git a/Tests/Fixtures/yaml-test-suite/PBJ2/in.json b/Tests/Fixtures/yaml-test-suite/PBJ2/in.json new file mode 100644 index 0000000..7d19aaf --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PBJ2/in.json @@ -0,0 +1,12 @@ +{ + "american": [ + "Boston Red Sox", + "Detroit Tigers", + "New York Yankees" + ], + "national": [ + "New York Mets", + "Chicago Cubs", + "Atlanta Braves" + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/PBJ2/in.yaml b/Tests/Fixtures/yaml-test-suite/PBJ2/in.yaml new file mode 100644 index 0000000..656d628 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PBJ2/in.yaml @@ -0,0 +1,8 @@ +american: + - Boston Red Sox + - Detroit Tigers + - New York Yankees +national: + - New York Mets + - Chicago Cubs + - Atlanta Braves diff --git a/Tests/Fixtures/yaml-test-suite/PRH3/in.json b/Tests/Fixtures/yaml-test-suite/PRH3/in.json new file mode 100644 index 0000000..2dfab84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PRH3/in.json @@ -0,0 +1 @@ +" 1st non-empty\n2nd non-empty 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/PRH3/in.yaml b/Tests/Fixtures/yaml-test-suite/PRH3/in.yaml new file mode 100644 index 0000000..6dd946e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PRH3/in.yaml @@ -0,0 +1,4 @@ +' 1st non-empty + + 2nd non-empty + 3rd non-empty ' diff --git a/Tests/Fixtures/yaml-test-suite/PUW8/in.json b/Tests/Fixtures/yaml-test-suite/PUW8/in.json new file mode 100644 index 0000000..88bf67f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PUW8/in.json @@ -0,0 +1,4 @@ +{ + "a": "b" +} +null diff --git a/Tests/Fixtures/yaml-test-suite/PUW8/in.yaml b/Tests/Fixtures/yaml-test-suite/PUW8/in.yaml new file mode 100644 index 0000000..6e88f36 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PUW8/in.yaml @@ -0,0 +1,3 @@ +--- +a: b +--- diff --git a/Tests/Fixtures/yaml-test-suite/PW8X/in.yaml b/Tests/Fixtures/yaml-test-suite/PW8X/in.yaml new file mode 100644 index 0000000..23cbbb1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/PW8X/in.yaml @@ -0,0 +1,12 @@ +- &a +- a +- + &a : a + b: &b +- + &c : &a +- + ? &d +- + ? &e + : &a diff --git a/Tests/Fixtures/yaml-test-suite/Q4CL/error b/Tests/Fixtures/yaml-test-suite/Q4CL/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Q4CL/in.yaml b/Tests/Fixtures/yaml-test-suite/Q4CL/in.yaml new file mode 100644 index 0000000..425342a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q4CL/in.yaml @@ -0,0 +1,3 @@ +key1: "quoted1" +key2: "quoted2" trailing content +key3: "quoted3" diff --git a/Tests/Fixtures/yaml-test-suite/Q5MG/in.json b/Tests/Fixtures/yaml-test-suite/Q5MG/in.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q5MG/in.json @@ -0,0 +1 @@ +{} diff --git a/Tests/Fixtures/yaml-test-suite/Q5MG/in.yaml b/Tests/Fixtures/yaml-test-suite/Q5MG/in.yaml new file mode 100644 index 0000000..db07de0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q5MG/in.yaml @@ -0,0 +1 @@ + {} diff --git a/Tests/Fixtures/yaml-test-suite/Q88A/in.json b/Tests/Fixtures/yaml-test-suite/Q88A/in.json new file mode 100644 index 0000000..d88afe7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q88A/in.json @@ -0,0 +1,12 @@ +[ + [ + "a", + "b" + ], + { + "a": "b" + }, + "a", + "b", + "c" +] diff --git a/Tests/Fixtures/yaml-test-suite/Q88A/in.yaml b/Tests/Fixtures/yaml-test-suite/Q88A/in.yaml new file mode 100644 index 0000000..f709dc8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q88A/in.yaml @@ -0,0 +1,5 @@ +- [ a, b ] +- { a: b } +- "a" +- 'b' +- c diff --git a/Tests/Fixtures/yaml-test-suite/Q8AD/in.json b/Tests/Fixtures/yaml-test-suite/Q8AD/in.json new file mode 100644 index 0000000..6ab3718 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q8AD/in.json @@ -0,0 +1 @@ +"folded to a space,\nto a line feed, or \t \tnon-content" diff --git a/Tests/Fixtures/yaml-test-suite/Q8AD/in.yaml b/Tests/Fixtures/yaml-test-suite/Q8AD/in.yaml new file mode 100644 index 0000000..bf14c53 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Q8AD/in.yaml @@ -0,0 +1,6 @@ +--- +"folded +to a space, + +to a line feed, or \ + \ non-content" diff --git a/Tests/Fixtures/yaml-test-suite/QF4Y/in.json b/Tests/Fixtures/yaml-test-suite/QF4Y/in.json new file mode 100644 index 0000000..15925a4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/QF4Y/in.json @@ -0,0 +1,5 @@ +[ + { + "foo": "bar" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/QF4Y/in.yaml b/Tests/Fixtures/yaml-test-suite/QF4Y/in.yaml new file mode 100644 index 0000000..77f3eb3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/QF4Y/in.yaml @@ -0,0 +1,3 @@ +[ +foo: bar +] diff --git a/Tests/Fixtures/yaml-test-suite/QT73/in.json b/Tests/Fixtures/yaml-test-suite/QT73/in.json new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/QT73/in.yaml b/Tests/Fixtures/yaml-test-suite/QT73/in.yaml new file mode 100644 index 0000000..84cd22e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/QT73/in.yaml @@ -0,0 +1,2 @@ +# comment +... diff --git a/Tests/Fixtures/yaml-test-suite/R4YG/in.json b/Tests/Fixtures/yaml-test-suite/R4YG/in.json new file mode 100644 index 0000000..f84df1f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/R4YG/in.json @@ -0,0 +1,6 @@ +[ + "detected\n", + "\n\n# detected\n", + " explicit\n", + "\t\ndetected\n" +] diff --git a/Tests/Fixtures/yaml-test-suite/R4YG/in.yaml b/Tests/Fixtures/yaml-test-suite/R4YG/in.yaml new file mode 100644 index 0000000..39bee04 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/R4YG/in.yaml @@ -0,0 +1,11 @@ +- | + detected +- > + + + # detected +- |1 + explicit +- > + + detected diff --git a/Tests/Fixtures/yaml-test-suite/R52L/in.json b/Tests/Fixtures/yaml-test-suite/R52L/in.json new file mode 100644 index 0000000..e028548 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/R52L/in.json @@ -0,0 +1,10 @@ +{ + "top1": [ + "item1", + { + "key2": "value2" + }, + "item3" + ], + "top2": "value2" +} diff --git a/Tests/Fixtures/yaml-test-suite/R52L/in.yaml b/Tests/Fixtures/yaml-test-suite/R52L/in.yaml new file mode 100644 index 0000000..1add8f8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/R52L/in.yaml @@ -0,0 +1,2 @@ +--- +{ top1: [item1, {key2: value2}, item3], top2: value2 } diff --git a/Tests/Fixtures/yaml-test-suite/RHX7/error b/Tests/Fixtures/yaml-test-suite/RHX7/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/RHX7/in.yaml b/Tests/Fixtures/yaml-test-suite/RHX7/in.yaml new file mode 100644 index 0000000..8ff8337 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RHX7/in.yaml @@ -0,0 +1,4 @@ +--- +key: value +%YAML 1.2 +--- diff --git a/Tests/Fixtures/yaml-test-suite/RLU9/in.json b/Tests/Fixtures/yaml-test-suite/RLU9/in.json new file mode 100644 index 0000000..ab6d5e3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RLU9/in.json @@ -0,0 +1,8 @@ +{ + "foo": [ + 42 + ], + "bar": [ + 44 + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/RLU9/in.yaml b/Tests/Fixtures/yaml-test-suite/RLU9/in.yaml new file mode 100644 index 0000000..5896eef --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RLU9/in.yaml @@ -0,0 +1,4 @@ +foo: +- 42 +bar: + - 44 diff --git a/Tests/Fixtures/yaml-test-suite/RR7F/in.json b/Tests/Fixtures/yaml-test-suite/RR7F/in.json new file mode 100644 index 0000000..ee9c8be --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RR7F/in.json @@ -0,0 +1,4 @@ +{ + "d": 23, + "a": 4.2 +} diff --git a/Tests/Fixtures/yaml-test-suite/RR7F/in.yaml b/Tests/Fixtures/yaml-test-suite/RR7F/in.yaml new file mode 100644 index 0000000..34ccc87 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RR7F/in.yaml @@ -0,0 +1,3 @@ +a: 4.2 +? d +: 23 diff --git a/Tests/Fixtures/yaml-test-suite/RTP8/in.json b/Tests/Fixtures/yaml-test-suite/RTP8/in.json new file mode 100644 index 0000000..f1131de --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RTP8/in.json @@ -0,0 +1 @@ +"Document" diff --git a/Tests/Fixtures/yaml-test-suite/RTP8/in.yaml b/Tests/Fixtures/yaml-test-suite/RTP8/in.yaml new file mode 100644 index 0000000..886e574 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RTP8/in.yaml @@ -0,0 +1,4 @@ +%YAML 1.2 +--- +Document +... # Suffix diff --git a/Tests/Fixtures/yaml-test-suite/RXY3/error b/Tests/Fixtures/yaml-test-suite/RXY3/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/RXY3/in.yaml b/Tests/Fixtures/yaml-test-suite/RXY3/in.yaml new file mode 100644 index 0000000..5c9530e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RXY3/in.yaml @@ -0,0 +1,4 @@ +--- +' +... +' diff --git a/Tests/Fixtures/yaml-test-suite/RZP5/in.yaml b/Tests/Fixtures/yaml-test-suite/RZP5/in.yaml new file mode 100644 index 0000000..a18e345 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RZP5/in.yaml @@ -0,0 +1,15 @@ +a: "double + quotes" # lala +b: plain + value # lala +c : #lala + d +? # lala + - seq1 +: # lala + - #lala + seq2 +e: &node # lala + - x: y +block: > # lala + abcde diff --git a/Tests/Fixtures/yaml-test-suite/RZT7/in.json b/Tests/Fixtures/yaml-test-suite/RZT7/in.json new file mode 100644 index 0000000..2331472 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RZT7/in.json @@ -0,0 +1,27 @@ +{ + "Time": "2001-11-23 15:01:42 -5", + "User": "ed", + "Warning": "This is an error message for the log file" +} +{ + "Time": "2001-11-23 15:02:31 -5", + "User": "ed", + "Warning": "A slightly different error message." +} +{ + "Date": "2001-11-23 15:03:17 -5", + "User": "ed", + "Fatal": "Unknown variable \"bar\"", + "Stack": [ + { + "file": "TopClass.py", + "line": 23, + "code": "x = MoreObject(\"345\\n\")\n" + }, + { + "file": "MoreClass.py", + "line": 58, + "code": "foo = bar" + } + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/RZT7/in.yaml b/Tests/Fixtures/yaml-test-suite/RZT7/in.yaml new file mode 100644 index 0000000..a5c8dc8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/RZT7/in.yaml @@ -0,0 +1,26 @@ +--- +Time: 2001-11-23 15:01:42 -5 +User: ed +Warning: + This is an error message + for the log file +--- +Time: 2001-11-23 15:02:31 -5 +User: ed +Warning: + A slightly different error + message. +--- +Date: 2001-11-23 15:03:17 -5 +User: ed +Fatal: + Unknown variable "bar" +Stack: + - file: TopClass.py + line: 23 + code: | + x = MoreObject("345\n") + - file: MoreClass.py + line: 58 + code: |- + foo = bar diff --git a/Tests/Fixtures/yaml-test-suite/S3PD/in.yaml b/Tests/Fixtures/yaml-test-suite/S3PD/in.yaml new file mode 100644 index 0000000..c819512 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S3PD/in.yaml @@ -0,0 +1,4 @@ +plain key: in-line value +: # Both empty +"quoted key": +- entry diff --git a/Tests/Fixtures/yaml-test-suite/S4GJ/error b/Tests/Fixtures/yaml-test-suite/S4GJ/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/S4GJ/in.yaml b/Tests/Fixtures/yaml-test-suite/S4GJ/in.yaml new file mode 100644 index 0000000..a555507 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S4GJ/in.yaml @@ -0,0 +1,3 @@ +--- +folded: > first line + second line diff --git a/Tests/Fixtures/yaml-test-suite/S4T7/in.json b/Tests/Fixtures/yaml-test-suite/S4T7/in.json new file mode 100644 index 0000000..049aa9e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S4T7/in.json @@ -0,0 +1,3 @@ +{ + "aaa": "bbb" +} diff --git a/Tests/Fixtures/yaml-test-suite/S4T7/in.yaml b/Tests/Fixtures/yaml-test-suite/S4T7/in.yaml new file mode 100644 index 0000000..4fc70de --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S4T7/in.yaml @@ -0,0 +1,2 @@ +aaa: bbb +... diff --git a/Tests/Fixtures/yaml-test-suite/S7BG/in.json b/Tests/Fixtures/yaml-test-suite/S7BG/in.json new file mode 100644 index 0000000..eadfbdc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S7BG/in.json @@ -0,0 +1,3 @@ +[ + ":," +] diff --git a/Tests/Fixtures/yaml-test-suite/S7BG/in.yaml b/Tests/Fixtures/yaml-test-suite/S7BG/in.yaml new file mode 100644 index 0000000..db7f229 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S7BG/in.yaml @@ -0,0 +1,2 @@ +--- +- :, diff --git a/Tests/Fixtures/yaml-test-suite/S9E8/in.json b/Tests/Fixtures/yaml-test-suite/S9E8/in.json new file mode 100644 index 0000000..cecac0c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S9E8/in.json @@ -0,0 +1,10 @@ +{ + "sequence": [ + "one", + "two" + ], + "mapping": { + "sky": "blue", + "sea": "green" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/S9E8/in.yaml b/Tests/Fixtures/yaml-test-suite/S9E8/in.yaml new file mode 100644 index 0000000..608ea19 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/S9E8/in.yaml @@ -0,0 +1,7 @@ +sequence: +- one +- two +mapping: + ? sky + : blue + sea : green diff --git a/Tests/Fixtures/yaml-test-suite/SBG9/in.yaml b/Tests/Fixtures/yaml-test-suite/SBG9/in.yaml new file mode 100644 index 0000000..e6e30e2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SBG9/in.yaml @@ -0,0 +1 @@ +{a: [b, c], [d, e]: f} diff --git a/Tests/Fixtures/yaml-test-suite/SF5V/error b/Tests/Fixtures/yaml-test-suite/SF5V/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/SF5V/in.yaml b/Tests/Fixtures/yaml-test-suite/SF5V/in.yaml new file mode 100644 index 0000000..cb5488f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SF5V/in.yaml @@ -0,0 +1,3 @@ +%YAML 1.2 +%YAML 1.2 +--- diff --git a/Tests/Fixtures/yaml-test-suite/SM9W/00/in.json b/Tests/Fixtures/yaml-test-suite/SM9W/00/in.json new file mode 100644 index 0000000..62864b3 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SM9W/00/in.json @@ -0,0 +1 @@ +[null] diff --git a/Tests/Fixtures/yaml-test-suite/SM9W/00/in.yaml b/Tests/Fixtures/yaml-test-suite/SM9W/00/in.yaml new file mode 100644 index 0000000..3cf20d5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SM9W/00/in.yaml @@ -0,0 +1 @@ +- \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/SM9W/01/in.yaml b/Tests/Fixtures/yaml-test-suite/SM9W/01/in.yaml new file mode 100644 index 0000000..22ded55 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SM9W/01/in.yaml @@ -0,0 +1 @@ +: \ No newline at end of file diff --git a/Tests/Fixtures/yaml-test-suite/SR86/error b/Tests/Fixtures/yaml-test-suite/SR86/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/SR86/in.yaml b/Tests/Fixtures/yaml-test-suite/SR86/in.yaml new file mode 100644 index 0000000..09c3705 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SR86/in.yaml @@ -0,0 +1,2 @@ +key1: &a value +key2: &b *a diff --git a/Tests/Fixtures/yaml-test-suite/SSW6/in.json b/Tests/Fixtures/yaml-test-suite/SSW6/in.json new file mode 100644 index 0000000..fdc456c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SSW6/in.json @@ -0,0 +1 @@ +"here's to \"quotes\"" diff --git a/Tests/Fixtures/yaml-test-suite/SSW6/in.yaml b/Tests/Fixtures/yaml-test-suite/SSW6/in.yaml new file mode 100644 index 0000000..15d41f0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SSW6/in.yaml @@ -0,0 +1,2 @@ +--- +'here''s to "quotes"' diff --git a/Tests/Fixtures/yaml-test-suite/SU74/error b/Tests/Fixtures/yaml-test-suite/SU74/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/SU74/in.yaml b/Tests/Fixtures/yaml-test-suite/SU74/in.yaml new file mode 100644 index 0000000..14f338e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SU74/in.yaml @@ -0,0 +1,2 @@ +key1: &alias value1 +&b *alias : value2 diff --git a/Tests/Fixtures/yaml-test-suite/SYW4/in.json b/Tests/Fixtures/yaml-test-suite/SYW4/in.json new file mode 100644 index 0000000..a32fbec --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SYW4/in.json @@ -0,0 +1,5 @@ +{ + "hr": 65, + "avg": 0.278, + "rbi": 147 +} diff --git a/Tests/Fixtures/yaml-test-suite/SYW4/in.yaml b/Tests/Fixtures/yaml-test-suite/SYW4/in.yaml new file mode 100644 index 0000000..7b7ec94 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/SYW4/in.yaml @@ -0,0 +1,3 @@ +hr: 65 # Home runs +avg: 0.278 # Batting average +rbi: 147 # Runs Batted In diff --git a/Tests/Fixtures/yaml-test-suite/T26H/in.json b/Tests/Fixtures/yaml-test-suite/T26H/in.json new file mode 100644 index 0000000..6383f8d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T26H/in.json @@ -0,0 +1 @@ +"\n\nliteral\n \n\ntext\n" diff --git a/Tests/Fixtures/yaml-test-suite/T26H/in.yaml b/Tests/Fixtures/yaml-test-suite/T26H/in.yaml new file mode 100644 index 0000000..156b6d0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T26H/in.yaml @@ -0,0 +1,9 @@ +--- | + + + literal + + + text + + # Comment diff --git a/Tests/Fixtures/yaml-test-suite/T4YY/in.json b/Tests/Fixtures/yaml-test-suite/T4YY/in.json new file mode 100644 index 0000000..2dfab84 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T4YY/in.json @@ -0,0 +1 @@ +" 1st non-empty\n2nd non-empty 3rd non-empty " diff --git a/Tests/Fixtures/yaml-test-suite/T4YY/in.yaml b/Tests/Fixtures/yaml-test-suite/T4YY/in.yaml new file mode 100644 index 0000000..6cba7f1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T4YY/in.yaml @@ -0,0 +1,5 @@ +--- +' 1st non-empty + + 2nd non-empty + 3rd non-empty ' diff --git a/Tests/Fixtures/yaml-test-suite/T5N4/in.json b/Tests/Fixtures/yaml-test-suite/T5N4/in.json new file mode 100644 index 0000000..2e190c6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T5N4/in.json @@ -0,0 +1 @@ +"literal\n\ttext\n" diff --git a/Tests/Fixtures/yaml-test-suite/T5N4/in.yaml b/Tests/Fixtures/yaml-test-suite/T5N4/in.yaml new file mode 100644 index 0000000..7ca4172 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T5N4/in.yaml @@ -0,0 +1,5 @@ +--- | + literal + text + + diff --git a/Tests/Fixtures/yaml-test-suite/T833/error b/Tests/Fixtures/yaml-test-suite/T833/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/T833/in.yaml b/Tests/Fixtures/yaml-test-suite/T833/in.yaml new file mode 100644 index 0000000..d35e395 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/T833/in.yaml @@ -0,0 +1,4 @@ +--- +{ + foo: 1 + bar: 2 } diff --git a/Tests/Fixtures/yaml-test-suite/TD5N/error b/Tests/Fixtures/yaml-test-suite/TD5N/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/TD5N/in.yaml b/Tests/Fixtures/yaml-test-suite/TD5N/in.yaml new file mode 100644 index 0000000..bc6ccbb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TD5N/in.yaml @@ -0,0 +1,3 @@ +- item1 +- item2 +invalid diff --git a/Tests/Fixtures/yaml-test-suite/TE2A/in.json b/Tests/Fixtures/yaml-test-suite/TE2A/in.json new file mode 100644 index 0000000..1f5b290 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TE2A/in.json @@ -0,0 +1,5 @@ +{ + "block mapping": { + "key": "value" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/TE2A/in.yaml b/Tests/Fixtures/yaml-test-suite/TE2A/in.yaml new file mode 100644 index 0000000..2ef9084 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TE2A/in.yaml @@ -0,0 +1,2 @@ +block mapping: + key: value diff --git a/Tests/Fixtures/yaml-test-suite/TL85/in.json b/Tests/Fixtures/yaml-test-suite/TL85/in.json new file mode 100644 index 0000000..0fcc9db --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TL85/in.json @@ -0,0 +1 @@ +" foo\nbar\nbaz " diff --git a/Tests/Fixtures/yaml-test-suite/TL85/in.yaml b/Tests/Fixtures/yaml-test-suite/TL85/in.yaml new file mode 100644 index 0000000..d6af812 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TL85/in.yaml @@ -0,0 +1,7 @@ +" + foo + + bar + + baz +" diff --git a/Tests/Fixtures/yaml-test-suite/TS54/in.json b/Tests/Fixtures/yaml-test-suite/TS54/in.json new file mode 100644 index 0000000..c63e7ba --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TS54/in.json @@ -0,0 +1 @@ +"ab cd\nef\n\ngh\n" diff --git a/Tests/Fixtures/yaml-test-suite/TS54/in.yaml b/Tests/Fixtures/yaml-test-suite/TS54/in.yaml new file mode 100644 index 0000000..f63944e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/TS54/in.yaml @@ -0,0 +1,8 @@ +> + ab + cd + + ef + + + gh diff --git a/Tests/Fixtures/yaml-test-suite/U3C3/in.json b/Tests/Fixtures/yaml-test-suite/U3C3/in.json new file mode 100644 index 0000000..810c96e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U3C3/in.json @@ -0,0 +1 @@ +"foo" diff --git a/Tests/Fixtures/yaml-test-suite/U3C3/in.yaml b/Tests/Fixtures/yaml-test-suite/U3C3/in.yaml new file mode 100644 index 0000000..50f5ab9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U3C3/in.yaml @@ -0,0 +1,3 @@ +%TAG !yaml! tag:yaml.org,2002: +--- +!yaml!str "foo" diff --git a/Tests/Fixtures/yaml-test-suite/U3XV/in.json b/Tests/Fixtures/yaml-test-suite/U3XV/in.json new file mode 100644 index 0000000..7bc2e58 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U3XV/in.json @@ -0,0 +1,19 @@ +{ + "top1": { + "key1": "one" + }, + "top2": { + "key2": "two" + }, + "top3": { + "key3": "three" + }, + "top4": { + "key4": "four" + }, + "top5": { + "key5": "five" + }, + "top6": "six", + "top7": "seven" +} diff --git a/Tests/Fixtures/yaml-test-suite/U3XV/in.yaml b/Tests/Fixtures/yaml-test-suite/U3XV/in.yaml new file mode 100644 index 0000000..76660a8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U3XV/in.yaml @@ -0,0 +1,17 @@ +--- +top1: &node1 + &k1 key1: one +top2: &node2 # comment + key2: two +top3: + &k3 key3: three +top4: + &node4 + &k4 key4: four +top5: + &node5 + key5: five +top6: &val6 + six +top7: + &val7 seven diff --git a/Tests/Fixtures/yaml-test-suite/U44R/error b/Tests/Fixtures/yaml-test-suite/U44R/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/U44R/in.yaml b/Tests/Fixtures/yaml-test-suite/U44R/in.yaml new file mode 100644 index 0000000..de68a32 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U44R/in.yaml @@ -0,0 +1,3 @@ +map: + key1: "quoted1" + key2: "bad indentation" diff --git a/Tests/Fixtures/yaml-test-suite/U99R/error b/Tests/Fixtures/yaml-test-suite/U99R/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/U99R/in.yaml b/Tests/Fixtures/yaml-test-suite/U99R/in.yaml new file mode 100644 index 0000000..ba0c537 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U99R/in.yaml @@ -0,0 +1 @@ +- !!str, xxx diff --git a/Tests/Fixtures/yaml-test-suite/U9NS/in.json b/Tests/Fixtures/yaml-test-suite/U9NS/in.json new file mode 100644 index 0000000..7bc7eac --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U9NS/in.json @@ -0,0 +1,10 @@ +{ + "time": "20:03:20", + "player": "Sammy Sosa", + "action": "strike (miss)" +} +{ + "time": "20:03:47", + "player": "Sammy Sosa", + "action": "grand slam" +} diff --git a/Tests/Fixtures/yaml-test-suite/U9NS/in.yaml b/Tests/Fixtures/yaml-test-suite/U9NS/in.yaml new file mode 100644 index 0000000..05e102d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/U9NS/in.yaml @@ -0,0 +1,10 @@ +--- +time: 20:03:20 +player: Sammy Sosa +action: strike (miss) +... +--- +time: 20:03:47 +player: Sammy Sosa +action: grand slam +... diff --git a/Tests/Fixtures/yaml-test-suite/UDM2/in.json b/Tests/Fixtures/yaml-test-suite/UDM2/in.json new file mode 100644 index 0000000..7f2c93d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UDM2/in.json @@ -0,0 +1,5 @@ +[ + { + "url": "http://example.org" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/UDM2/in.yaml b/Tests/Fixtures/yaml-test-suite/UDM2/in.yaml new file mode 100644 index 0000000..fa95c05 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UDM2/in.yaml @@ -0,0 +1 @@ +- { url: http://example.org } diff --git a/Tests/Fixtures/yaml-test-suite/UDR7/in.json b/Tests/Fixtures/yaml-test-suite/UDR7/in.json new file mode 100644 index 0000000..cecac0c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UDR7/in.json @@ -0,0 +1,10 @@ +{ + "sequence": [ + "one", + "two" + ], + "mapping": { + "sky": "blue", + "sea": "green" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/UDR7/in.yaml b/Tests/Fixtures/yaml-test-suite/UDR7/in.yaml new file mode 100644 index 0000000..df33847 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UDR7/in.yaml @@ -0,0 +1,2 @@ +sequence: [ one, two, ] +mapping: { sky: blue, sea: green } diff --git a/Tests/Fixtures/yaml-test-suite/UGM3/in.json b/Tests/Fixtures/yaml-test-suite/UGM3/in.json new file mode 100644 index 0000000..a710161 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UGM3/in.json @@ -0,0 +1,41 @@ +{ + "invoice": 34843, + "date": "2001-01-23", + "bill-to": { + "given": "Chris", + "family": "Dumars", + "address": { + "lines": "458 Walkman Dr.\nSuite #292\n", + "city": "Royal Oak", + "state": "MI", + "postal": 48046 + } + }, + "ship-to": { + "given": "Chris", + "family": "Dumars", + "address": { + "lines": "458 Walkman Dr.\nSuite #292\n", + "city": "Royal Oak", + "state": "MI", + "postal": 48046 + } + }, + "product": [ + { + "sku": "BL394D", + "quantity": 4, + "description": "Basketball", + "price": 450 + }, + { + "sku": "BL4438H", + "quantity": 1, + "description": "Super Hoop", + "price": 2392 + } + ], + "tax": 251.42, + "total": 4443.52, + "comments": "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338." +} diff --git a/Tests/Fixtures/yaml-test-suite/UGM3/in.yaml b/Tests/Fixtures/yaml-test-suite/UGM3/in.yaml new file mode 100644 index 0000000..4625739 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UGM3/in.yaml @@ -0,0 +1,29 @@ +--- ! +invoice: 34843 +date : 2001-01-23 +bill-to: &id001 + given : Chris + family : Dumars + address: + lines: | + 458 Walkman Dr. + Suite #292 + city : Royal Oak + state : MI + postal : 48046 +ship-to: *id001 +product: + - sku : BL394D + quantity : 4 + description : Basketball + price : 450.00 + - sku : BL4438H + quantity : 1 + description : Super Hoop + price : 2392.00 +tax : 251.42 +total: 4443.52 +comments: + Late afternoon is best. + Backup contact is Nancy + Billsmer @ 338-4338. diff --git a/Tests/Fixtures/yaml-test-suite/UKK6/01/in.json b/Tests/Fixtures/yaml-test-suite/UKK6/01/in.json new file mode 100644 index 0000000..f32d2e7 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UKK6/01/in.json @@ -0,0 +1,3 @@ +{ + ":": null +} diff --git a/Tests/Fixtures/yaml-test-suite/UKK6/01/in.yaml b/Tests/Fixtures/yaml-test-suite/UKK6/01/in.yaml new file mode 100644 index 0000000..bef3763 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UKK6/01/in.yaml @@ -0,0 +1 @@ +:: diff --git a/Tests/Fixtures/yaml-test-suite/UKK6/02/in.yaml b/Tests/Fixtures/yaml-test-suite/UKK6/02/in.yaml new file mode 100644 index 0000000..cdf4cb4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UKK6/02/in.yaml @@ -0,0 +1 @@ +! diff --git a/Tests/Fixtures/yaml-test-suite/UT92/in.json b/Tests/Fixtures/yaml-test-suite/UT92/in.json new file mode 100644 index 0000000..587bbf4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UT92/in.json @@ -0,0 +1,4 @@ +{ + "matches %": 20 +} +null diff --git a/Tests/Fixtures/yaml-test-suite/UT92/in.yaml b/Tests/Fixtures/yaml-test-suite/UT92/in.yaml new file mode 100644 index 0000000..bc363b1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/UT92/in.yaml @@ -0,0 +1,7 @@ +--- +{ matches +% : 20 } +... +--- +# Empty +... diff --git a/Tests/Fixtures/yaml-test-suite/V55R/in.json b/Tests/Fixtures/yaml-test-suite/V55R/in.json new file mode 100644 index 0000000..b2810bc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/V55R/in.json @@ -0,0 +1,6 @@ +[ + "a", + "b", + "a", + "b" +] diff --git a/Tests/Fixtures/yaml-test-suite/V55R/in.yaml b/Tests/Fixtures/yaml-test-suite/V55R/in.yaml new file mode 100644 index 0000000..b3c45b5 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/V55R/in.yaml @@ -0,0 +1,4 @@ +- &a a +- &b b +- *a +- *b diff --git a/Tests/Fixtures/yaml-test-suite/VJP3/01/in.json b/Tests/Fixtures/yaml-test-suite/VJP3/01/in.json new file mode 100644 index 0000000..ebcd68c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/VJP3/01/in.json @@ -0,0 +1,5 @@ +{ + "k" : { + "k" : "v" + } +} diff --git a/Tests/Fixtures/yaml-test-suite/VJP3/01/in.yaml b/Tests/Fixtures/yaml-test-suite/VJP3/01/in.yaml new file mode 100644 index 0000000..1d71c2a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/VJP3/01/in.yaml @@ -0,0 +1,5 @@ +k: { + k + : + v + } diff --git a/Tests/Fixtures/yaml-test-suite/W42U/in.json b/Tests/Fixtures/yaml-test-suite/W42U/in.json new file mode 100644 index 0000000..b277eb8 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W42U/in.json @@ -0,0 +1,11 @@ +[ + null, + "block node\n", + [ + "one", + "two" + ], + { + "one": "two" + } +] diff --git a/Tests/Fixtures/yaml-test-suite/W42U/in.yaml b/Tests/Fixtures/yaml-test-suite/W42U/in.yaml new file mode 100644 index 0000000..35ac923 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W42U/in.yaml @@ -0,0 +1,6 @@ +- # Empty +- | + block node +- - one # Compact + - two # sequence +- one: two # Compact mapping diff --git a/Tests/Fixtures/yaml-test-suite/W4TN/in.json b/Tests/Fixtures/yaml-test-suite/W4TN/in.json new file mode 100644 index 0000000..c9dfdfe --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W4TN/in.json @@ -0,0 +1,2 @@ +"%!PS-Adobe-2.0\n" +null diff --git a/Tests/Fixtures/yaml-test-suite/W4TN/in.yaml b/Tests/Fixtures/yaml-test-suite/W4TN/in.yaml new file mode 100644 index 0000000..82de01b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W4TN/in.yaml @@ -0,0 +1,8 @@ +%YAML 1.2 +--- | +%!PS-Adobe-2.0 +... +%YAML 1.2 +--- +# Empty +... diff --git a/Tests/Fixtures/yaml-test-suite/W5VH/in.json b/Tests/Fixtures/yaml-test-suite/W5VH/in.json new file mode 100644 index 0000000..d2a0de4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W5VH/in.json @@ -0,0 +1,4 @@ +{ + "a": "scalar a", + "b": "scalar a" +} diff --git a/Tests/Fixtures/yaml-test-suite/W5VH/in.yaml b/Tests/Fixtures/yaml-test-suite/W5VH/in.yaml new file mode 100644 index 0000000..43c7a15 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W5VH/in.yaml @@ -0,0 +1,2 @@ +a: &:@*!$": scalar a +b: *:@*!$": diff --git a/Tests/Fixtures/yaml-test-suite/W9L4/error b/Tests/Fixtures/yaml-test-suite/W9L4/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/W9L4/in.yaml b/Tests/Fixtures/yaml-test-suite/W9L4/in.yaml new file mode 100644 index 0000000..7b15d0c --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/W9L4/in.yaml @@ -0,0 +1,5 @@ +--- +block scalar: | + + more spaces at the beginning + are invalid diff --git a/Tests/Fixtures/yaml-test-suite/WZ62/in.json b/Tests/Fixtures/yaml-test-suite/WZ62/in.json new file mode 100644 index 0000000..e1b8322 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/WZ62/in.json @@ -0,0 +1,4 @@ +{ + "foo": "", + "": "bar" +} diff --git a/Tests/Fixtures/yaml-test-suite/WZ62/in.yaml b/Tests/Fixtures/yaml-test-suite/WZ62/in.yaml new file mode 100644 index 0000000..aa86103 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/WZ62/in.yaml @@ -0,0 +1,4 @@ +{ + foo : !!str, + !!str : bar, +} diff --git a/Tests/Fixtures/yaml-test-suite/X38W/in.yaml b/Tests/Fixtures/yaml-test-suite/X38W/in.yaml new file mode 100644 index 0000000..4772110 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/X38W/in.yaml @@ -0,0 +1 @@ +{ &a [a, &b b]: *b, *a : [c, *b, d]} diff --git a/Tests/Fixtures/yaml-test-suite/X8DW/in.json b/Tests/Fixtures/yaml-test-suite/X8DW/in.json new file mode 100644 index 0000000..7a9e864 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/X8DW/in.json @@ -0,0 +1,3 @@ +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/X8DW/in.yaml b/Tests/Fixtures/yaml-test-suite/X8DW/in.yaml new file mode 100644 index 0000000..22911fc --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/X8DW/in.yaml @@ -0,0 +1,4 @@ +--- +? key +# comment +: value diff --git a/Tests/Fixtures/yaml-test-suite/XLQ9/in.json b/Tests/Fixtures/yaml-test-suite/XLQ9/in.json new file mode 100644 index 0000000..20ec09f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XLQ9/in.json @@ -0,0 +1 @@ +"scalar %YAML 1.2" diff --git a/Tests/Fixtures/yaml-test-suite/XLQ9/in.yaml b/Tests/Fixtures/yaml-test-suite/XLQ9/in.yaml new file mode 100644 index 0000000..dbe36b9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XLQ9/in.yaml @@ -0,0 +1,3 @@ +--- +scalar +%YAML 1.2 diff --git a/Tests/Fixtures/yaml-test-suite/XV9V/in.json b/Tests/Fixtures/yaml-test-suite/XV9V/in.json new file mode 100644 index 0000000..41a96a1 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XV9V/in.json @@ -0,0 +1,4 @@ +{ + "Folding": "Empty line\nas a line feed", + "Chomping": "Clipped empty lines\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/XV9V/in.yaml b/Tests/Fixtures/yaml-test-suite/XV9V/in.yaml new file mode 100644 index 0000000..c7775c4 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XV9V/in.yaml @@ -0,0 +1,8 @@ +Folding: + "Empty line + + as a line feed" +Chomping: | + Clipped empty lines + + diff --git a/Tests/Fixtures/yaml-test-suite/XW4D/in.yaml b/Tests/Fixtures/yaml-test-suite/XW4D/in.yaml new file mode 100644 index 0000000..4fcc93e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/XW4D/in.yaml @@ -0,0 +1,16 @@ +a: "double + quotes" # lala +b: plain + value # lala +c : #lala + d +? # lala + - seq1 +: # lala + - #lala + seq2 +e: + &node # lala + - x: y +block: > # lala + abcde diff --git a/Tests/Fixtures/yaml-test-suite/Y2GN/in.json b/Tests/Fixtures/yaml-test-suite/Y2GN/in.json new file mode 100644 index 0000000..7a9e864 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y2GN/in.json @@ -0,0 +1,3 @@ +{ + "key": "value" +} diff --git a/Tests/Fixtures/yaml-test-suite/Y2GN/in.yaml b/Tests/Fixtures/yaml-test-suite/Y2GN/in.yaml new file mode 100644 index 0000000..ec2bb92 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y2GN/in.yaml @@ -0,0 +1,2 @@ +--- +key: &an:chor value diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/000/error b/Tests/Fixtures/yaml-test-suite/Y79Y/000/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/000/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/000/in.yaml new file mode 100644 index 0000000..4e55271 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/000/in.yaml @@ -0,0 +1,3 @@ +foo: | + +bar: 1 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.json b/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.json new file mode 100644 index 0000000..687c550 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.json @@ -0,0 +1,4 @@ +{ + "foo": "\t\n", + "bar": 1 +} diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.yaml new file mode 100644 index 0000000..3c2e414 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/001/in.yaml @@ -0,0 +1,3 @@ +foo: | + +bar: 1 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.json b/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.json new file mode 100644 index 0000000..4e8764e --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.json @@ -0,0 +1,5 @@ +[ + [ + "foo" + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.yaml new file mode 100644 index 0000000..6b6ad5d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/002/in.yaml @@ -0,0 +1,4 @@ +- [ + + foo + ] diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/004/error b/Tests/Fixtures/yaml-test-suite/Y79Y/004/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/004/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/004/in.yaml new file mode 100644 index 0000000..0806e5a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/004/in.yaml @@ -0,0 +1 @@ +- - diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/005/error b/Tests/Fixtures/yaml-test-suite/Y79Y/005/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/005/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/005/in.yaml new file mode 100644 index 0000000..ec67404 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/005/in.yaml @@ -0,0 +1 @@ +- - diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/006/error b/Tests/Fixtures/yaml-test-suite/Y79Y/006/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/006/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/006/in.yaml new file mode 100644 index 0000000..5c42b44 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/006/in.yaml @@ -0,0 +1 @@ +? - diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/007/error b/Tests/Fixtures/yaml-test-suite/Y79Y/007/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/007/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/007/in.yaml new file mode 100644 index 0000000..4f3691a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/007/in.yaml @@ -0,0 +1,2 @@ +? - +: - diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/008/error b/Tests/Fixtures/yaml-test-suite/Y79Y/008/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/008/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/008/in.yaml new file mode 100644 index 0000000..b9a50bb --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/008/in.yaml @@ -0,0 +1 @@ +? key: diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/009/error b/Tests/Fixtures/yaml-test-suite/Y79Y/009/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/009/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/009/in.yaml new file mode 100644 index 0000000..851a621 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/009/in.yaml @@ -0,0 +1,2 @@ +? key: +: key: diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.json b/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.json new file mode 100644 index 0000000..4c1600d --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.json @@ -0,0 +1,3 @@ +[ + -1 +] diff --git a/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.yaml b/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.yaml new file mode 100644 index 0000000..763ef1b --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Y79Y/010/in.yaml @@ -0,0 +1 @@ +- -1 diff --git a/Tests/Fixtures/yaml-test-suite/YD5X/in.json b/Tests/Fixtures/yaml-test-suite/YD5X/in.json new file mode 100644 index 0000000..45d384a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/YD5X/in.json @@ -0,0 +1,17 @@ +[ + [ + "name", + "hr", + "avg" + ], + [ + "Mark McGwire", + 65, + 0.278 + ], + [ + "Sammy Sosa", + 63, + 0.288 + ] +] diff --git a/Tests/Fixtures/yaml-test-suite/YD5X/in.yaml b/Tests/Fixtures/yaml-test-suite/YD5X/in.yaml new file mode 100644 index 0000000..cdd7770 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/YD5X/in.yaml @@ -0,0 +1,3 @@ +- [name , hr, avg ] +- [Mark McGwire, 65, 0.278] +- [Sammy Sosa , 63, 0.288] diff --git a/Tests/Fixtures/yaml-test-suite/Z67P/in.json b/Tests/Fixtures/yaml-test-suite/Z67P/in.json new file mode 100644 index 0000000..f1eedb0 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Z67P/in.json @@ -0,0 +1,4 @@ +{ + "literal": "value\n", + "folded": "value\n" +} diff --git a/Tests/Fixtures/yaml-test-suite/Z67P/in.yaml b/Tests/Fixtures/yaml-test-suite/Z67P/in.yaml new file mode 100644 index 0000000..69122ac --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Z67P/in.yaml @@ -0,0 +1,4 @@ +literal: |2 + value +folded: !foo >1 + value diff --git a/Tests/Fixtures/yaml-test-suite/Z9M4/in.json b/Tests/Fixtures/yaml-test-suite/Z9M4/in.json new file mode 100644 index 0000000..248299a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Z9M4/in.json @@ -0,0 +1,3 @@ +[ + "bar" +] diff --git a/Tests/Fixtures/yaml-test-suite/Z9M4/in.yaml b/Tests/Fixtures/yaml-test-suite/Z9M4/in.yaml new file mode 100644 index 0000000..eedfe04 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/Z9M4/in.yaml @@ -0,0 +1,3 @@ +%TAG !e! tag:example.com,2000:app/ +--- +- !e!foo "bar" diff --git a/Tests/Fixtures/yaml-test-suite/ZF4X/in.json b/Tests/Fixtures/yaml-test-suite/ZF4X/in.json new file mode 100644 index 0000000..425e548 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZF4X/in.json @@ -0,0 +1,10 @@ +{ + "Mark McGwire": { + "hr": 65, + "avg": 0.278 + }, + "Sammy Sosa": { + "hr": 63, + "avg": 0.288 + } +} diff --git a/Tests/Fixtures/yaml-test-suite/ZF4X/in.yaml b/Tests/Fixtures/yaml-test-suite/ZF4X/in.yaml new file mode 100644 index 0000000..7a957b2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZF4X/in.yaml @@ -0,0 +1,5 @@ +Mark McGwire: {hr: 65, avg: 0.278} +Sammy Sosa: { + hr: 63, + avg: 0.288 + } diff --git a/Tests/Fixtures/yaml-test-suite/ZH7C/in.json b/Tests/Fixtures/yaml-test-suite/ZH7C/in.json new file mode 100644 index 0000000..bc92764 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZH7C/in.json @@ -0,0 +1,4 @@ +{ + "a": "b", + "c": "d" +} diff --git a/Tests/Fixtures/yaml-test-suite/ZH7C/in.yaml b/Tests/Fixtures/yaml-test-suite/ZH7C/in.yaml new file mode 100644 index 0000000..64d718f --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZH7C/in.yaml @@ -0,0 +1,2 @@ +&a a: b +c: &d d diff --git a/Tests/Fixtures/yaml-test-suite/ZK9H/in.json b/Tests/Fixtures/yaml-test-suite/ZK9H/in.json new file mode 100644 index 0000000..69b8133 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZK9H/in.json @@ -0,0 +1,9 @@ +{ + "key": [ + [ + [ + "value" + ] + ] + ] +} diff --git a/Tests/Fixtures/yaml-test-suite/ZK9H/in.yaml b/Tests/Fixtures/yaml-test-suite/ZK9H/in.yaml new file mode 100644 index 0000000..eb177c6 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZK9H/in.yaml @@ -0,0 +1,4 @@ +{ key: [[[ + value + ]]] +} diff --git a/Tests/Fixtures/yaml-test-suite/ZVH3/error b/Tests/Fixtures/yaml-test-suite/ZVH3/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/ZVH3/in.yaml b/Tests/Fixtures/yaml-test-suite/ZVH3/in.yaml new file mode 100644 index 0000000..9db12c9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZVH3/in.yaml @@ -0,0 +1,2 @@ +- key: value + - item1 diff --git a/Tests/Fixtures/yaml-test-suite/ZWK4/in.json b/Tests/Fixtures/yaml-test-suite/ZWK4/in.json new file mode 100644 index 0000000..ede92b9 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZWK4/in.json @@ -0,0 +1,5 @@ +{ + "a": 1, + "b": null, + "c": 3 +} diff --git a/Tests/Fixtures/yaml-test-suite/ZWK4/in.yaml b/Tests/Fixtures/yaml-test-suite/ZWK4/in.yaml new file mode 100644 index 0000000..b6fca2a --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZWK4/in.yaml @@ -0,0 +1,4 @@ +--- +a: 1 +? b +&anchor c: 3 diff --git a/Tests/Fixtures/yaml-test-suite/ZXT5/error b/Tests/Fixtures/yaml-test-suite/ZXT5/error new file mode 100644 index 0000000..e69de29 diff --git a/Tests/Fixtures/yaml-test-suite/ZXT5/in.yaml b/Tests/Fixtures/yaml-test-suite/ZXT5/in.yaml new file mode 100644 index 0000000..be1ccf2 --- /dev/null +++ b/Tests/Fixtures/yaml-test-suite/ZXT5/in.yaml @@ -0,0 +1,2 @@ +[ "key" + :value ] diff --git a/Tests/YAMLTestSuiteGapsTests.swift b/Tests/YAMLTestSuiteGapsTests.swift index 67b5606..be4519a 100644 --- a/Tests/YAMLTestSuiteGapsTests.swift +++ b/Tests/YAMLTestSuiteGapsTests.swift @@ -2,49 +2,66 @@ import Foundation @testable import PureYAML import Testing -/// Conformance gaps measured against the official YAML test suite -/// (github.com/yaml/yaml-test-suite, `data` branch). The vendored cases under -/// `Fixtures/yaml-test-suite/` are exactly the suite entries PureYAML does not -/// yet handle correctly. The manifest records each gap's current behavior so a -/// future fix is forced to update it (the gated test below reports drift). +/// Full conformance gate against the official YAML test suite +/// (github.com/yaml/yaml-test-suite, `data` branch, commit +/// 6ad3d2c62885d82fc349026c136ef560838fdf3d). Every official case (numbered +/// sub-cases counted) is vendored under `Fixtures/yaml-test-suite//` and +/// recorded in `Fixtures/yaml-test-suite-manifest.yaml` with a `status`: +/// +/// - `passing`: PureYAML already handles the case conformantly (it parses with a +/// value matching the JSON oracle when one is present, or it rejects an error +/// case). This is the regression guard: if a later change breaks the case, the +/// gated sweep fails. +/// - `gap`: PureYAML does not yet handle the case conformantly. The sweep asserts +/// the gap still reproduces, so a fix is forced to update the manifest rather +/// than silently drift. /// /// The behavioral sweep is gated behind `PUREYAML_RUN_YAML_TEST_SUITE=1`, mirroring -/// the full real-corpus sweep, so the default suite stays green while the gaps are -/// tracked rather than silenced. +/// the full real-corpus sweep, so the default suite stays fast while the whole suite +/// is guarded on demand. The manifest-integrity test below is always on. @Suite("YAML Test Suite Gaps") struct YAMLTestSuiteGapsTests { - @Test("Gap manifest matches vendored fixture files") - func test_gapManifestMatchesVendoredFixtureFiles() throws { + @Test("Manifest is consistent with its vendored fixture files") + func test_manifestMatchesVendoredFixtureFiles() throws { let manifest = try YAMLTestSuiteManifest.load() - #expect(manifest.version == 1) - #expect(manifest.cases.count == 54) - #expect(manifest.cases.count(where: { $0.category == "false-reject" }) == 9) - #expect(manifest.cases.count(where: { $0.category == "json-mismatch" }) == 9) - #expect(manifest.cases.count(where: { $0.category == "accepted-invalid" }) == 36) + #expect(manifest.version == 2) + #expect(manifest.cases.count == manifest.total) + #expect(manifest.total == 402) #expect(Set(manifest.cases.map(\.id)).count == manifest.cases.count) + let passing = manifest.cases.count(where: { $0.status == "passing" }) + let gaps = manifest.cases.count(where: { $0.status == "gap" }) + #expect(passing == manifest.passing) + #expect(gaps == manifest.gap) + #expect(passing + gaps == manifest.total) + + let rejects = manifest.cases.count(where: { $0.expected == "reject" }) + let parseOK = manifest.cases.count(where: { $0.expected == "parse-ok" }) + #expect(rejects + parseOK == manifest.total) + for testCase in manifest.cases { + #expect(testCase.status == "passing" || testCase.status == "gap", "\(testCase.id): invalid status") + #expect(testCase.expected == "reject" || testCase.expected == "parse-ok", "\(testCase.id): invalid expected") + #expect(testCase.oracle == "json" || testCase.oracle == "none", "\(testCase.id): invalid oracle") + let yaml = try testCase.loadInput() #expect(yaml.utf8.count == testCase.byteCount, "\(testCase.id): byte count drift") #expect(yaml.count(where: { $0 == "\n" }) == testCase.lineCount, "\(testCase.id): line count drift") - switch testCase.category { - case "accepted-invalid": - #expect(testCase.expected == "reject") - #expect(testCase.loadErrorMarker() != nil, "\(testCase.id): missing error marker") - default: - #expect(testCase.expected == "parse-ok") + if testCase.expected == "reject" { + #expect(testCase.loadErrorMarker() != nil, "\(testCase.id): reject case is missing its error marker") } - if testCase.oracle == "json" { - #expect(testCase.loadExpectedJSON() != nil, "\(testCase.id): missing in.json oracle") + #expect(testCase.loadExpectedJSON() != nil, "\(testCase.id): json oracle case is missing in.json") + } else { + #expect(testCase.loadExpectedJSON() == nil, "\(testCase.id): oracle is none but an in.json is present") } } } - @Test("Recorded conformance gaps still reproduce") - func test_recordedConformanceGapsStillReproduce() throws { + @Test("Every case matches its recorded conformance status") + func test_everyCaseMatchesRecordedStatus() throws { guard ProcessInfo.processInfo.environment["PUREYAML_RUN_YAML_TEST_SUITE"] == "1" else { return } @@ -53,8 +70,12 @@ struct YAMLTestSuiteGapsTests { for testCase in manifest.cases { let observed = try testCase.observedStatus() #expect( - observed == testCase.current, - "\(testCase.id) \"\(testCase.name)\": recorded gap '\(testCase.current)' but observed '\(observed)'. If this case is now handled correctly, update the manifest.", + observed == testCase.status, + """ + \(testCase.id) "\(testCase.name)": manifest records status '\(testCase.status)' \ + but observed '\(observed)'. A 'passing' case that now fails is a regression; \ + a 'gap' case that now succeeds should be promoted to 'passing' in the manifest. + """, ) } } @@ -64,20 +85,29 @@ struct YAMLTestSuiteGapsTests { struct YAMLTestSuiteManifest { var version: Int + var total: Int + var passing: Int + var gap: Int var cases: [YAMLTestSuiteCase] static func load() throws -> Self { let url = try #require(Bundle.module.url( - forResource: "yaml-test-suite-gaps", + forResource: "yaml-test-suite-manifest", withExtension: "yaml", subdirectory: "Fixtures", )) let value = try PureYAML.parse(String(contentsOf: url, encoding: .utf8)) let root = try #require(value.mapping) let version = try #require(root["version"]?.intValue) + let total = try #require(root["total"]?.intValue) + let passing = try #require(root["passing"]?.intValue) + let gap = try #require(root["gap"]?.intValue) let caseValues = try #require(root.sequence("cases")) return try YAMLTestSuiteManifest( version: version, + total: total, + passing: passing, + gap: gap, cases: caseValues.map(YAMLTestSuiteCase.init(value:)), ) } @@ -87,10 +117,9 @@ struct YAMLTestSuiteCase { var id: String var name: String var localPath: String - var category: String var expected: String var oracle: String - var current: String + var status: String var byteCount: Int var lineCount: Int @@ -99,10 +128,9 @@ struct YAMLTestSuiteCase { id = try mapping.requiredString("id") name = try mapping.requiredString("name") localPath = try mapping.requiredString("localPath") - category = try mapping.requiredString("category") expected = try mapping.requiredString("expected") oracle = try mapping.requiredString("oracle") - current = try mapping.requiredString("current") + status = try mapping.requiredString("status") byteCount = try mapping.requiredInt("byteCount") lineCount = try mapping.requiredInt("lineCount") } @@ -128,8 +156,15 @@ struct YAMLTestSuiteCase { return try? String(contentsOf: url, encoding: .utf8) } - /// Recomputes PureYAML's present behavior for this case, in the same vocabulary - /// the manifest's `current` field uses, so drift (including fixes) is detectable. + /// Recomputes PureYAML's present behavior for this case in the manifest's + /// `status` vocabulary, so any drift (a regression in a passing case, or a fix + /// that promotes a gap) is detectable. + /// + /// Conformance is decided by parsing alone: an error case is `passing` when the + /// parser rejects it; a value case is `passing` when the parser accepts it and, + /// when an in.json oracle is present, the parsed value matches it. Strict + /// validation (e.g. duplicate-key detection) is a separate, orthogonal concern + /// and is deliberately not part of the conformance decision. func observedStatus() throws -> String { let yaml = try loadInput() var documents: [PureYAML.Stream.Document] = [] @@ -139,31 +174,31 @@ struct YAMLTestSuiteCase { } catch { parseThrew = true } - var validateThrew = false - if !parseThrew { - do { - _ = try PureYAML.validate(documents) - } catch { - validateThrew = true - } - } - if category == "accepted-invalid" { - return (parseThrew || validateThrew) ? "reject" : "accepted" + if expected == "reject" { + return parseThrew ? "passing" : "gap" } - if parseThrew { - return "parse-error" + return "gap" } - - guard oracle == "json", let jsonText = loadExpectedJSON(), let expectedDocuments = decodeJSONStream(jsonText) else { - return "parse-ok" + guard oracle == "json", let jsonText = loadExpectedJSON() else { + return "passing" + } + // An empty in.json oracle means the conformant output is an empty stream + // (no JSON value), as for a comment-only or document-end-only input. A parser + // that yields any document then differs from the oracle, so it is a gap. + let trimmed = jsonText.trimmingCharacters(in: .whitespacesAndNewlines) + if trimmed.isEmpty { + return documents.isEmpty ? "passing" : "gap" + } + guard let expectedDocuments = decodeJSONStream(jsonText) else { + return "gap" } if expectedDocuments.count != documents.count { - return "value-mismatch" + return "gap" } let matches = zip(documents, expectedDocuments).allSatisfy { equalValue($0.value, $1) } - return matches ? "value-match" : "value-mismatch" + return matches ? "passing" : "gap" } } diff --git a/docs/YAML_TEST_SUITE_CONFORMANCE.md b/docs/YAML_TEST_SUITE_CONFORMANCE.md index 6a3a753..7188a76 100644 --- a/docs/YAML_TEST_SUITE_CONFORMANCE.md +++ b/docs/YAML_TEST_SUITE_CONFORMANCE.md @@ -2,53 +2,103 @@ This document tracks PureYAML against the official [YAML test suite](https://github.com/yaml/yaml-test-suite) and lays out the -ordered plan for closing the gaps. It is a living document: bucket 1 (block -scalars), bucket 2 (quoted-scalar folding), bucket 3 (empty nodes and empty -keys), and bucket 4 (anchors, tags, and aliases as mapping keys) have landed; -buckets 5-6 remain. +ordered plan for closing the gaps. It is a living document: buckets 1-8 have +landed, and the conformance gate now guards the **entire** suite (all 402 cases), +not just the open gaps, so a fixed case can no longer silently regress. ## How conformance is measured -The suite's `data` branch (commit `6ad3d2c62885d82fc349026c136ef560838fdf3d`) was -run against `PureYAML.parseStream` + `PureYAML.validate`, with each case judged by -its own oracle: +The suite's `data` branch (commit `6ad3d2c62885d82fc349026c136ef560838fdf3d`) is +run against `PureYAML.parseStream`, with each case judged by its own oracle: - **error cases** (an `error` marker): a conformant parser must reject the input. - **data cases** (an `in.json`): the parsed value must match the expected JSON - projection (core-schema resolved), compared structurally. -- **plain valid cases** (neither): the input must at least parse without error. + projection (core-schema resolved), compared structurally. An empty `in.json` + means the conformant output is an empty stream (no document). +- **plain valid cases** (neither): the input must parse without error. + +Conformance is decided by parsing alone. Strict validation (for example +duplicate-key detection in `PureYAML.validate`) is a separate, orthogonal concern +and is deliberately not part of the conformance decision, so a parseable document +that strict mode would reject is still counted as a passing parse. + +### The full-suite gate + +Earlier revisions tracked only the *failing* cases in a gap-only manifest and +deleted a case from it once fixed. That let later work silently regress an +already-fixed case, because nothing guarded it any longer. The gate is now +**comprehensive**: `Tests/Fixtures/yaml-test-suite-manifest.yaml` records *all* +402 cases (numbered sub-cases counted), each with its `id`, `name`, `localPath`, +the conformant `expected` behavior (`parse-ok` | `reject`), its `oracle` +(`json` | `none`), the input `byteCount` and `lineCount`, and a `status`: + +- `passing`: PureYAML handles the case conformantly today. +- `gap`: PureYAML does not yet handle it conformantly. + +Every case's files (`in.yaml`, plus `in.json` and/or `error`) are vendored under +`Tests/Fixtures/yaml-test-suite//`. The gated behavioral sweep asserts, for +**every** case, that a `passing` case still passes (the regression guard) and a +`gap` case still reproduces its non-conformant behavior (so a fix is forced to +update the manifest). A regression in any passing case now fails the sweep. ### Result at the pinned commit -402 cases (including numbered sub-cases). First measurement was 196 pass / 206 -fail; after bucket 1 (block scalars, +24), bucket 2 (quoted-scalar folding, +30), -bucket 3 (empty nodes and empty keys, +20), bucket 4 (anchors, tags, and -aliases as mapping keys, +10), bucket 5 (directives and document boundaries, -+15), bucket 6 (stricter rejection of invalid input, +15), bucket 7 -(document-root multi-line plain and block scalars, +33), and bucket 8 -(flow-collection completeness, +10) it is now -**348 pass, 54 fail.** -The 54 remaining failing cases are vendored under -`Tests/Fixtures/yaml-test-suite/` and recorded in -`Tests/Fixtures/yaml-test-suite-gaps.yaml`. Run the opt-in sweep with: +402 cases (including numbered sub-cases): **329 passing, 73 gap.** Run the opt-in +sweep with: ```sh bash scripts/check-yaml-test-suite.sh ``` -The default `swift test` only checks that the manifest still matches the vendored -files; the behavioral sweep is gated behind `PUREYAML_RUN_YAML_TEST_SUITE=1`, the -same way the full real-world corpus is gated. The sweep asserts that each recorded -gap still reproduces, so fixing a case fails the sweep until the manifest is -updated, the deliberate forcing function for keeping this document honest. +The default `swift test` only checks manifest/fixture/byte/line integrity and that +the recorded counts are consistent; the behavioral sweep is gated behind +`PUREYAML_RUN_YAML_TEST_SUITE=1`, the same way the full real-world corpus is gated. + +### Regressions repaired by the full-suite gate + +Making the gate comprehensive surfaced cases that had been fixed in an earlier +bucket and then silently regressed. All were repaired and set back to `passing`: + +- **Tab over-rejection.** A tab was being rejected wherever it appeared at a block + line start, over-rejecting valid forms. Per `scanner.c` (`scan_to_next_token`, + `scan_block_scalar_breaks`, `scan_plain_scalar`), a tab is illegal *only* as + block-structure indentation. Block indentation is now spaces-only; a tab is left + for the token scanner, which allows it (a) inside block-scalar content once the + content column is established by spaces (`96NN/00`, `96NN/01`, `R4YG`, + `Y79Y/001`), (b) as separation before a scalar value (`DK95/00`) or a flow node + (`6CA3`, `Q5MG`, `J3BT`), and (c) on a whitespace-only blank line (`DK95/03`, + `DK95/07`), while still rejecting genuine tab indentation (`4EJS`, `Y79Y/000`, + `Y79Y/004`-`/008`, `DK95/06`). The batch scanner and the incremental token cursor + were unified onto a single `scanStep`, since the divergence between them is what + let the streaming parser miss a tab error the batch scanner caught. +- **`26DV`** (anchors/aliases as mapping keys). An anchor on a `key:` value line + followed by an indented `*alias :` key was throwing, because the anchor was being + pushed onto the alias key (which cannot carry properties) instead of the nested + mapping. The alias-as-key path now attaches a property scanned on a prior line to + the enclosing mapping, and only rejects an alias that carries a property on its + own line (`&b *alias`, still correctly rejected by `SU74`). +- **`WZ62`** (flow rework). `{ foo : !!str, !!str : bar, }` mis-parsed the second + entry's bare-tag key into a mapping-as-key. A flow key introduced by a spliced + `mappingKey` now uses the same key parser as the implicit form, so a bare tag or + anchor before the `:` composes an empty tagged scalar key. ## Failure categories (remaining) -| Category | Count | Meaning | -|---|---|---| -| `false-reject` | 9 | Well-formed YAML that PureYAML wrongly rejects at parse time. | -| `json-mismatch` | 9 | Parses, but produces a value that disagrees with the expected JSON. | -| `accepted-invalid` | 36 | Malformed YAML that PureYAML wrongly accepts. | +The 73 remaining gaps are tracked individually in the manifest. They cluster as: + +| Category | Meaning | +|---|---| +| false-reject | Well-formed YAML that PureYAML wrongly rejects at parse time. | +| json-mismatch | Parses, but produces a value that disagrees with the expected JSON. | +| accepted-invalid | Malformed YAML that PureYAML wrongly accepts (it should reject). | + +Notable still-open gaps include flow-context plain scalars that start with an +indicator (`[:x]` HM87/00, `[?x]` HM87/01, `{x: :x}` 58MP, `{?foo: bar}` 652Z), +non-ASCII and special-character anchor/alias names (`&😁` 8XYN, `&an:chor` Y2GN, +W5VH), multi-line flow keys (4MUZ/02, VJP3/01), and a few inputs that should be +rejected but are accepted (DK4H, ZXT5, Y79Y/003, VJP3/00). These were verified to +be genuine never-supported gaps, not regressions, and are tracked with +`status: gap`. ## Root-cause buckets and fix order @@ -333,15 +383,18 @@ nesting issue (`- - - []`), not flow, and remains `json-mismatch`. ## Updating this document -When a bucket lands: +When a fix lands: 1. Re-run `bash scripts/check-yaml-test-suite.sh`; it will fail on the now-fixed - cases. + cases (a `gap` whose behavior changed) and on any case the change regressed (a + `passing` case that now fails). 2. For each newly-passing case, assert the round-trip law (parse → dump → parse is stable) in addition to the value/JSON match, per `core/round-trip-transformation.md`; the parser fix is only proven once the emitter agrees on the same input. -3. Remove those cases from `Tests/Fixtures/yaml-test-suite-gaps.yaml` and delete - their vendored fixtures (or, for `json-mismatch` cases that now parse but are - still being verified, update `current`). -4. Update the counts in this document and in `CHANGELOG.md`. +3. Flip those cases' `status` to `passing` in + `Tests/Fixtures/yaml-test-suite-manifest.yaml`. Do **not** delete a case or its + vendored fixtures: the whole suite stays vendored and guarded so a future change + cannot silently regress a fixed case. +4. Update the `passing` / `gap` counts in the manifest header and in this document + and `CHANGELOG.md`. diff --git a/scripts/check-yaml-test-suite.sh b/scripts/check-yaml-test-suite.sh index 93d1362..7737608 100755 --- a/scripts/check-yaml-test-suite.sh +++ b/scripts/check-yaml-test-suite.sh @@ -1,9 +1,10 @@ #!/usr/bin/env bash set -euo pipefail -# Runs the opt-in conformance sweep over the vendored YAML test suite gaps. -# Each case in Tests/Fixtures/yaml-test-suite-gaps.yaml is a documented gap: -# the sweep verifies PureYAML's current behavior still matches the recorded -# `current` status, so any fix is forced to update the manifest. +# Runs the opt-in conformance sweep over the full vendored YAML test suite. +# Tests/Fixtures/yaml-test-suite-manifest.yaml records all 402 cases with a +# `status` (passing | gap); the sweep verifies every passing case still passes +# (the regression guard) and every gap still reproduces, so any fix or regression +# is forced to update the manifest. PUREYAML_RUN_YAML_TEST_SUITE=1 swift test --filter YAMLTestSuiteGapsTests