# YAML Test Matrix

--- &test-FBC9
  Title: Allowed characters in plain scalars
  Tags: [ scalar ]

YAML

safe: a!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~
     !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~
safe question mark: ?foo
safe colon: :foo
safe dash: -foo

Expected Events

+STR
+DOC
+MAP
=VAL :safe
=VAL :a!"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~
=VAL :safe question mark
=VAL :?foo
=VAL :safe colon
=VAL ::foo
=VAL :safe dash
=VAL :-foo
-MAP
-DOC
-STR

Expected JSON

{
"safe": "a!\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~",
"safe question mark": "?foo",
"safe colon": ":foo",
"safe dash": "-foo"
}

cpp-event

 ok

hs-yaml-event

 ok

java-event

 ok

libyaml-event

 ok

perl5-pp-event

 ok

pyyaml-event

 ok

ruamel-event

 ok

hs-yaml-json

 json_ok

java-json

 json_ok

js-yaml-json

 json_ok

luajit-json

 json_ok

perl5-pp-json

 json_ok

perl5-syck-json

 json_ok

perl5-xs-json

 json_ok

pyyaml-json

 json_ok

ruamel-json

 json_ok

perl5-pegex-event

 diff
Got Events:
+STR
+DOC
+MAP
=VAL :safe
=VAL :a!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~
-MAP
-DOC
+DOC
+MAP <!"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~>
=VAL :safe question mark
=VAL :?foo
-MAP
-DOC
+DOC
+MAP
=VAL :safe colon
=VAL ::foo
=VAL :safe dash
=VAL :-foo
-MAP
-DOC
-STR

ruby-json

 json_diff
{
  "safe": "a!\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~",
  "safe colon": "foo",
  "safe dash": "-foo",
  "safe question mark": "?foo"
}

nimyaml-event

 error
+STR
+DOC
+MAP
=VAL :safe
Traceback (most recent call last)
nimyaml_event.nim(8)     nimyaml_event
stream.nim(220)          finished
Error: unhandled exception: Illegal character in tag handle [YamlStreamError]

perl5-pm-json

 error
YAML Error: Inconsistent indentation level
   Code: YAML_PARSE_ERR_INCONSISTENT_INDENTATION
   Line: 2
   Document: 1
 at /lib/perl5/YAML/Loader.pm line 804.

perl5-pm-pl

 error
YAML Error: Inconsistent indentation level
   Code: YAML_PARSE_ERR_INCONSISTENT_INDENTATION
   Line: 2
   Document: 1
 at /lib/perl5/YAML/Loader.pm line 804.

perl5-tiny-json

 error
YAML::Tiny found bad indenting in line '     !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~' at /bin/perl5-tiny-json line 12.

perl5-tiny-pl

 error
YAML::Tiny found bad indenting in line '     !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~' at /bin/perl5-tiny-pl line 15.

perl5-pp-pl

 na
{
  'safe' => 'a!"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~',
  'safe colon' => ':foo',
  'safe dash' => '-foo',
  'safe question mark' => '?foo'
}

perl5-syck-pl

 na
{
  'safe' => 'a!"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~',
  'safe colon' => ':foo',
  'safe dash' => '-foo',
  'safe question mark' => '?foo'
}

perl5-xs-pl

 na
{
  'safe' => 'a!"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~',
  'safe colon' => ':foo',
  'safe dash' => '-foo',
  'safe question mark' => '?foo'
}

pyyaml-py

 na
{'safe': 'a!"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~',
 'safe colon': ':foo',
 'safe dash': '-foo',
 'safe question mark': '?foo'}

ruamel-py

 na
{'safe': 'a!"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~ !"#$%&\'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~',
 'safe colon': ':foo',
 'safe dash': '-foo',
 'safe question mark': '?foo'}