# YAML Test Matrix

--- &test-P2AD
  Title: Spec Example 8.1. Block Scalar Header
  Tags: [ comment, folded, literal, scalar, spec ]

YAML

- | # Empty header↓
 literal
- >1 # Indentation indicator↓
  folded
- |+ # Chomping indicator↓
 keep

- >1- # Both indicators↓
  strip

Expected Events

+STR
+DOC
+SEQ
=VAL |literal\n
=VAL > folded\n
=VAL |keep\n\n
=VAL > strip
-SEQ
-DOC
-STR

Expected JSON

[
"literal\n",
" folded\n",
"keep\n\n",
" strip"
]

c-libfyaml-event

 ok

c-libyaml-event

 ok

cpp-rapidyaml-event

 ok

cpp-yamlcpp-event

 ok

dotnet-yamldotnet-event

 ok

hs-hsyaml-event

 ok

js-yaml-event

 ok

nim-nimyaml-event

 ok

perl-pp-event

 ok

perl-refparser-event

 ok

py-pyyaml-event

 ok

py-ruamel-event

 ok

rust-yamlrust-event

 ok

c-libfyaml-json

 json_ok

dotnet-yamldotnet-json

 json_ok

go-yaml-json

 json_ok

hs-hsyaml-json

 json_ok

js-jsyaml-json

 json_ok

js-yaml-json

 json_ok

lua-lyaml-json

 json_ok

perl-pp-json

 json_ok

perl-pplibyaml-json

 json_ok

perl-syck-json

 json_ok

perl-xs-json

 json_ok

perl-yaml-json

 json_ok

py-pyyaml-json

 json_ok

py-ruamel-json

 json_ok

ruby-psych-json

 json_ok

perl-tiny-json

 json_diff
[
  "literal\n",
  "folded\n",
  "keep\n",
  "strip\n"
]

hs-reference-yeast

 na
Line  Col Char Byte Token|Content
   1    0    0    0 +DOC |
   1    0    0    0 +NODE|
   1    0    0    0 +SEQ |
   1    0    0    0 =SYNX|-
   1    1    1    1 +NODE|
   1    1    1    1 =WSPC|.
   1    2    2    2 +VAL |
   1    2    2    2 =SYNX||
   1    3    3    3 =WSPC|.
   1    4    4    4 +COMM|
   1    4    4    4 =SYNX|#
   1    5    5    5 =META|.Empty.header\u2193
   1   19   19   21 -COMM|
   1   19   19   21 =EOL |\x0a
   2    0   20   22 =DENT|.
   2    1   21   23 =TEXT|literal
   2    8   28   30 =NEWL|\x0a
   3    0   29   31 -VAL |
   3    0   29   31 -NODE|
   3    0   29   31 =SYNX|-
   3    1   30   32 +NODE|
   3    1   30   32 =WSPC|.
   3    2   31   33 +VAL |
   3    2   31   33 =SYNX|>
   3    3   32   34 =SYNX|1
   3    4   33   35 =WSPC|.
   3    5   34   36 +COMM|
   3    5   34   36 =SYNX|#
   3    6   35   37 =META|.Indentation.indicator\u2193
   3   29   58   62 -COMM|
   3   29   58   62 =EOL |\x0a
   4    0   59   63 =DENT|.
   4    1   60   64 =TEXT|.folded
   4    8   67   71 =NEWL|\x0a
   5    0   68   72 -VAL |
   5    0   68   72 -NODE|
   5    0   68   72 =SYNX|-
   5    1   69   73 +NODE|
   5    1   69   73 =WSPC|.
   5    2   70   74 +VAL |
   5    2   70   74 =SYNX||
   5    3   71   75 =SYNX|+
   5    4   72   76 =WSPC|.
   5    5   73   77 +COMM|
   5    5   73   77 =SYNX|#
   5    6   74   78 =META|.Chomping.indicator\u2193
   5   26   94  100 -COMM|
   5   26   94  100 =EOL |\x0a
   6    0   95  101 =DENT|.
   6    1   96  102 =TEXT|keep
   6    5  100  106 =NEWL|\x0a
   7    0  101  107 =NEWL|\x0a
   8    0  102  108 -VAL |
   8    0  102  108 -NODE|
   8    0  102  108 =SYNX|-
   8    1  103  109 +NODE|
   8    1  103  109 =WSPC|.
   8    2  104  110 +VAL |
   8    2  104  110 =SYNX|>
   8    3  105  111 =SYNX|1
   8    4  106  112 =SYNX|-
   8    5  107  113 =WSPC|.
   8    6  108  114 +COMM|
   8    6  108  114 =SYNX|#
   8    7  109  115 =META|.Both.indicators\u2193
   8   24  126  134 -COMM|
   8   24  126  134 =EOL |\x0a
   9    0  127  135 =DENT|.
   9    1  128  136 =TEXT|.strip
   9    7  134  142 -VAL |
   9    7  134  142 =EOL |\x0a
  10    0  135  143 -NODE|
  10    0  135  143 -SEQ |
  10    0  135  143 -NODE|
  10    0  135  143 -DOC |

perl-pp-perl

 na
[
  'literal
',
  ' folded
',
  'keep

',
  ' strip'
]

perl-pplibyaml-perl

 na
[
  'literal
',
  ' folded
',
  'keep

',
  ' strip'
]

perl-syck-perl

 na
[
  'literal
',
  ' folded
',
  'keep

',
  ' strip'
]

perl-tiny-perl

 na
[
  'literal
',
  'folded
',
  'keep
',
  'strip
'
]

perl-xs-perl

 na
[
  'literal
',
  ' folded
',
  'keep

',
  ' strip'
]

perl-yaml-perl

 na
[
  'literal
',
  ' folded
',
  'keep

',
  ' strip'
]

py-pyyaml-py

 na
['literal\n', ' folded\n', 'keep\n\n', ' strip']

py-ruamel-py

 na
['literal\n', ' folded\n', 'keep\n\n', ' strip']