# YAML Test Matrix

--- &test-9FMG
  Title: Multi-level Mapping Indent
  Tags: [ indent, mapping ]

YAML

a:
  b:
    c: d
  e:
    f: g
h: i

Expected Events

+STR
+DOC
+MAP
=VAL :a
+MAP
=VAL :b
+MAP
=VAL :c
=VAL :d
-MAP
=VAL :e
+MAP
=VAL :f
=VAL :g
-MAP
-MAP
=VAL :h
=VAL :i
-MAP
-DOC
-STR

Expected JSON

{
"a": {
"b": {
"c": "d"
},
"e": {
"f": "g"
}
},
"h": "i"
}

c-libfyaml-event

 ok

c-libyaml-event

 ok

cpp-rapidyaml-event

 ok

cpp-yamlcpp-event

 ok

dotnet-yamldotnet-event

 ok

hs-hsyaml-event

 ok

java-snakeengine-event

 ok

java-snakeyaml-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

java-snakeengine-json

 json_ok

java-snakeyaml-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-tiny-json

 json_ok

perl-xs-json

 json_ok

perl-yaml-json

 json_ok

py-pyyaml-json

 json_ok

py-ruamel-json

 json_ok

raku-yamlish-json

 json_ok

ruby-psych-json

 json_ok

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|a
   1    1    1    1 -VAL |
   1    1    1    1 -NODE|
   1    1    1    1 =SYNX|:
   1    2    2    2 +NODE|
   1    2    2    2 =EOL |\x0a
   2    0    3    3 +MAP |
   2    0    3    3 =DENT|..
   2    2    5    5 +PAIR|
   2    2    5    5 +NODE|
   2    2    5    5 +VAL |
   2    2    5    5 =TEXT|b
   2    3    6    6 -VAL |
   2    3    6    6 -NODE|
   2    3    6    6 =SYNX|:
   2    4    7    7 +NODE|
   2    4    7    7 =EOL |\x0a
   3    0    8    8 +MAP |
   3    0    8    8 =DENT|....
   3    4   12   12 +PAIR|
   3    4   12   12 +NODE|
   3    4   12   12 +VAL |
   3    4   12   12 =TEXT|c
   3    5   13   13 -VAL |
   3    5   13   13 -NODE|
   3    5   13   13 =SYNX|:
   3    6   14   14 =WSPC|.
   3    7   15   15 +NODE|
   3    7   15   15 +VAL |
   3    7   15   15 =TEXT|d
   3    8   16   16 -VAL |
   3    8   16   16 -NODE|
   3    8   16   16 =EOL |\x0a
   4    0   17   17 -PAIR|
   4    0   17   17 -MAP |
   4    0   17   17 -NODE|
   4    0   17   17 -PAIR|
   4    0   17   17 =DENT|..
   4    2   19   19 +PAIR|
   4    2   19   19 +NODE|
   4    2   19   19 +VAL |
   4    2   19   19 =TEXT|e
   4    3   20   20 -VAL |
   4    3   20   20 -NODE|
   4    3   20   20 =SYNX|:
   4    4   21   21 +NODE|
   4    4   21   21 =EOL |\x0a
   5    0   22   22 +MAP |
   5    0   22   22 =DENT|....
   5    4   26   26 +PAIR|
   5    4   26   26 +NODE|
   5    4   26   26 +VAL |
   5    4   26   26 =TEXT|f
   5    5   27   27 -VAL |
   5    5   27   27 -NODE|
   5    5   27   27 =SYNX|:
   5    6   28   28 =WSPC|.
   5    7   29   29 +NODE|
   5    7   29   29 +VAL |
   5    7   29   29 =TEXT|g
   5    8   30   30 -VAL |
   5    8   30   30 -NODE|
   5    8   30   30 =EOL |\x0a
   6    0   31   31 -PAIR|
   6    0   31   31 -MAP |
   6    0   31   31 -NODE|
   6    0   31   31 -PAIR|
   6    0   31   31 -MAP |
   6    0   31   31 -NODE|
   6    0   31   31 -PAIR|
   6    0   31   31 +PAIR|
   6    0   31   31 +NODE|
   6    0   31   31 +VAL |
   6    0   31   31 =TEXT|h
   6    1   32   32 -VAL |
   6    1   32   32 -NODE|
   6    1   32   32 =SYNX|:
   6    2   33   33 =WSPC|.
   6    3   34   34 +NODE|
   6    3   34   34 +VAL |
   6    3   34   34 =TEXT|i
   6    4   35   35 -VAL |
   6    4   35   35 -NODE|
   6    4   35   35 =EOL |\x0a
   7    0   36   36 -PAIR|
   7    0   36   36 -MAP |
   7    0   36   36 -NODE|
   7    0   36   36 -DOC |

perl-pp-perl

 na
{
  'a' => {
           'b' => {
                    'c' => 'd'
                  },
           'e' => {
                    'f' => 'g'
                  }
         },
  'h' => 'i'
}

perl-pplibyaml-perl

 na
{
  'a' => {
           'b' => {
                    'c' => 'd'
                  },
           'e' => {
                    'f' => 'g'
                  }
         },
  'h' => 'i'
}

perl-syck-perl

 na
{
  'a' => {
           'b' => {
                    'c' => 'd'
                  },
           'e' => {
                    'f' => 'g'
                  }
         },
  'h' => 'i'
}

perl-tiny-perl

 na
{
  'a' => {
           'b' => {
                    'c' => 'd'
                  },
           'e' => {
                    'f' => 'g'
                  }
         },
  'h' => 'i'
}

perl-xs-perl

 na
{
  'a' => {
           'b' => {
                    'c' => 'd'
                  },
           'e' => {
                    'f' => 'g'
                  }
         },
  'h' => 'i'
}

perl-yaml-perl

 na
{
  'a' => {
           'b' => {
                    'c' => 'd'
                  },
           'e' => {
                    'f' => 'g'
                  }
         },
  'h' => 'i'
}

py-pyyaml-py

 na
{'a': {'b': {'c': 'd'}, 'e': {'f': 'g'}}, 'h': 'i'}

py-ruamel-py

 na
{'a': {'b': {'c': 'd'}, 'e': {'f': 'g'}}, 'h': 'i'}

raku-yamlish-raku

 na
{
  a => {
    b => {
      c => "d".Str,
    },
    e => {
      f => "g".Str,
    },
  },
  h => "i".Str,
}