# YAML Test Matrix

--- &test-H2RW
  Title: Blank lines
  Tags: [ comment, literal, scalar, whitespace ]

YAML

foo: 1

bar: 2
    
text: |
  a
    
  b

  c
 
  d

Expected Events

+STR
+DOC
+MAP
=VAL :foo
=VAL :1
=VAL :bar
=VAL :2
=VAL :text
=VAL |a\n  \nb\n\nc\n\nd\n
-MAP
-DOC
-STR

Expected JSON

{
"bar": 2,
"foo": 1,
"text": "a\n \nb\n\nc\n\nd\n"
}

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

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-xs-json

 json_ok

perl-yaml-json

 json_ok

py-pyyaml-json

 json_ok

py-ruamel-json

 json_ok

ruby-psych-json

 json_ok

dotnet-yamldotnet-json

 json_diff
{
  "bar": "2",
  "foo": "1",
  "text": "a\n  \nb\n\nc\n\nd\n"
}

perl-syck-json

 json_diff
{
  "bar": 2,
  "foo": 1,
  "text": "a\n\nb\n\nc\n\nd\n"
}

perl-tiny-json

 json_diff
{
  "bar": "2",
  "foo": "1",
  "text": "a\nb\nc\nd\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 +MAP |
   1    0    0    0 +PAIR|
   1    0    0    0 +NODE|
   1    0    0    0 +VAL |
   1    0    0    0 =TEXT|foo
   1    3    3    3 -VAL |
   1    3    3    3 -NODE|
   1    3    3    3 =SYNX|:
   1    4    4    4 =WSPC|.
   1    5    5    5 +NODE|
   1    5    5    5 +VAL |
   1    5    5    5 =TEXT|1
   1    6    6    6 -VAL |
   1    6    6    6 -NODE|
   1    6    6    6 =EOL |\x0a
   2    0    7    7 =EOL |\x0a
   3    0    8    8 -PAIR|
   3    0    8    8 +PAIR|
   3    0    8    8 +NODE|
   3    0    8    8 +VAL |
   3    0    8    8 =TEXT|bar
   3    3   11   11 -VAL |
   3    3   11   11 -NODE|
   3    3   11   11 =SYNX|:
   3    4   12   12 =WSPC|.
   3    5   13   13 +NODE|
   3    5   13   13 +VAL |
   3    5   13   13 =TEXT|2
   3    6   14   14 -VAL |
   3    6   14   14 -NODE|
   3    6   14   14 =EOL |\x0a
   4    0   15   15 =WSPC|....
   4    4   19   19 =EOL |\x0a
   5    0   20   20 -PAIR|
   5    0   20   20 +PAIR|
   5    0   20   20 +NODE|
   5    0   20   20 +VAL |
   5    0   20   20 =TEXT|text
   5    4   24   24 -VAL |
   5    4   24   24 -NODE|
   5    4   24   24 =SYNX|:
   5    5   25   25 +NODE|
   5    5   25   25 =WSPC|.
   5    6   26   26 +VAL |
   5    6   26   26 =SYNX||
   5    7   27   27 =EOL |\x0a
   6    0   28   28 =DENT|..
   6    2   30   30 =TEXT|a
   6    3   31   31 =NEWL|\x0a
   7    0   32   32 =DENT|..
   7    2   34   34 =TEXT|..
   7    4   36   36 =NEWL|\x0a
   8    0   37   37 =DENT|..
   8    2   39   39 =TEXT|b
   8    3   40   40 =NEWL|\x0a
   9    0   41   41 =NEWL|\x0a
  10    0   42   42 =DENT|..
  10    2   44   44 =TEXT|c
  10    3   45   45 =NEWL|\x0a
  11    0   46   46 =DENT|.
  11    1   47   47 =NEWL|\x0a
  12    0   48   48 =DENT|..
  12    2   50   50 =TEXT|d
  12    3   51   51 =NEWL|\x0a
  13    0   52   52 -VAL |
  13    0   52   52 -NODE|
  13    0   52   52 -PAIR|
  13    0   52   52 -MAP |
  13    0   52   52 -NODE|
  13    0   52   52 -DOC |

perl-pp-perl

 na
{
  'bar' => 2,
  'foo' => 1,
  'text' => 'a
  
b

c

d
'
}

perl-pplibyaml-perl

 na
{
  'bar' => 2,
  'foo' => 1,
  'text' => 'a
  
b

c

d
'
}

perl-syck-perl

 na
{
  'bar' => 2,
  'foo' => 1,
  'text' => 'a

b

c

d
'
}

perl-tiny-perl

 na
{
  'bar' => '2',
  'foo' => '1',
  'text' => 'a
b
c
d
'
}

perl-xs-perl

 na
{
  'bar' => 2,
  'foo' => 1,
  'text' => 'a
  
b

c

d
'
}

perl-yaml-perl

 na
{
  'bar' => 2,
  'foo' => 1,
  'text' => 'a
  
b

c

d
'
}

py-pyyaml-py

 na
{'bar': 2, 'foo': 1, 'text': 'a\n  \nb\n\nc\n\nd\n'}

py-ruamel-py

 na
{'bar': 2, 'foo': 1, 'text': 'a\n  \nb\n\nc\n\nd\n'}