# YAML Test Matrix

--- &test-HS5T
  Title: Spec Example 7.12. Plain Lines
  Tags: [ scalar, spec, upto-1.2 ]

YAML

1st non-empty

 2nd non-empty 
	3rd non-empty

Expected Events

+STR
+DOC
=VAL :1st non-empty\n2nd non-empty 3rd non-empty
-DOC
-STR

Expected JSON

"1st non-empty\n2nd non-empty 3rd non-empty"

cpp-event

 ok

hs-yaml-event

 ok

js-event

 ok

libyaml-event

 ok

nimyaml-event

 ok

perl5-pp-event

 ok

hs-yaml-json

 json_ok

js-json

 json_ok

js-yaml-json

 json_ok

perl5-pp-json

 json_ok

perl5-xs-json

 json_ok

ruby-json

 json_ok

perl5-pegex-event

 diff
Got Events:
+STR
+DOC
=VAL :1st non-empty
-DOC
+DOC
=VAL : 2nd non-empty
-DOC
+DOC
=VAL :	3rd non-empty
-DOC
-STR

luajit-json

 json_diff
1

perl5-syck-json

 json_diff
"1st non-empty\n2nd non-empty \t3rd non-empty"

java-event

 error
Exception in thread "main" while scanning for the next token
found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
 in 'reader', line 4, column 1:
    	3rd non-empty
    ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:419)
	at org.yaml.snakeyaml.scanner.ScannerImpl.peekToken(ScannerImpl.java:250)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentEnd.produce(ParserImpl.java:253)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
	at org.yaml.snakeyaml.Yaml$3.hasNext(Yaml.java:711)
	at org.yaml.editor.Snake2Events.yamlToEvents(Snake2Events.java:111)
	at org.yaml.editor.Snake2Events.main(Snake2Events.java:119)

java-json

 error
Exception in thread "main" while scanning for the next token
found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
 in 'reader', line 4, column 1:
    	3rd non-empty
    ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:419)
	at org.yaml.snakeyaml.scanner.ScannerImpl.peekToken(ScannerImpl.java:250)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentEnd.produce(ParserImpl.java:253)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
	at org.yaml.snakeyaml.parser.ParserImpl.getEvent(ParserImpl.java:168)
	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:87)
	at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:123)
	at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:547)
	at org.yaml.editor.Snake2Json.yamlToJson(Snake2Json.java:18)
	at org.yaml.editor.Snake2Json.main(Snake2Json.java:25)

perl5-pm-json

 error
YAML Error: Expected separator '---'
   Code: YAML_PARSE_ERR_NO_SEPARATOR
   Line: 1
   Document: 2
 at /lib/perl5/YAML/Loader.pm line 88.

perl5-pm-pl

 error
YAML Error: Expected separator '---'
   Code: YAML_PARSE_ERR_NO_SEPARATOR
   Line: 1
   Document: 2
 at /lib/perl5/YAML/Loader.pm line 88.

perl5-tiny-json

 error
YAML::Tiny failed to classify line '1st non-empty' at /bin/perl5-tiny-json line 12.

perl5-tiny-pl

 error
YAML::Tiny failed to classify line '1st non-empty' at /bin/perl5-tiny-pl line 15.

pyyaml-event

 error
+STR
+DOC
=VAL :1st non-empty\n2nd non-empty
Traceback (most recent call last):
  File "/bin/pyyaml-event", line 10, in <module>
    for event in yaml.parse(sys.stdin.read()):
  File "/lib/python2.7/site-packages/yaml/__init__.py", line 36, in parse
    while loader.check_event():
  File "/lib/python2.7/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/lib/python2.7/site-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 260, in fetch_more_tokens
    % ch.encode('utf-8'), self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<string>", line 4, column 1:
    	3rd non-empty
    ^

pyyaml-json

 error
Traceback (most recent call last):
  File "/bin/pyyaml-json", line 19, in <module>
    for doc in yaml.load_all(sys.stdin.read()):
  File "/lib/python2.7/site-packages/yaml/__init__.py", line 90, in load_all
    yield loader.get_data()
  File "/lib/python2.7/site-packages/yaml/constructor.py", line 33, in get_data
    return self.construct_document(self.get_node())
  File "/lib/python2.7/site-packages/yaml/composer.py", line 27, in get_node
    return self.compose_document()
  File "/lib/python2.7/site-packages/yaml/composer.py", line 58, in compose_document
    self.get_event()
  File "/lib/python2.7/site-packages/yaml/parser.py", line 118, in get_event
    self.current_event = self.state()
  File "/lib/python2.7/site-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 260, in fetch_more_tokens
    % ch.encode('utf-8'), self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<string>", line 4, column 1:
    	3rd non-empty
    ^

pyyaml-py

 error
Traceback (most recent call last):
  File "/bin/pyyaml-py", line 36, in <module>
    for doc in yaml.load_all(sys.stdin.read()):
  File "/lib/python2.7/site-packages/yaml/__init__.py", line 90, in load_all
    yield loader.get_data()
  File "/lib/python2.7/site-packages/yaml/constructor.py", line 33, in get_data
    return self.construct_document(self.get_node())
  File "/lib/python2.7/site-packages/yaml/composer.py", line 27, in get_node
    return self.compose_document()
  File "/lib/python2.7/site-packages/yaml/composer.py", line 58, in compose_document
    self.get_event()
  File "/lib/python2.7/site-packages/yaml/parser.py", line 118, in get_event
    self.current_event = self.state()
  File "/lib/python2.7/site-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 260, in fetch_more_tokens
    % ch.encode('utf-8'), self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<string>", line 4, column 1:
    	3rd non-empty
    ^

ruamel-event

 error
+STR
+DOC
=VAL :1st non-empty\n2nd non-empty
Traceback (most recent call last):
  File "/bin/ruamel-event", line 10, in <module>
    for event in ruamel.yaml.parse(sys.stdin.read()):
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 880, in parse
    while loader._parser.check_event():
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 141, in check_event
    self.current_event = self.state()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 239, in parse_document_end
    token = self.scanner.peek_token()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 182, in peek_token
    self.fetch_more_tokens()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 321, in fetch_more_tokens
    self.reader.get_mark(),
ruamel.yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<byte string>", line 4, column 1:
    	3rd non-empty
    ^ (line: 4)

ruamel-json

 error
Traceback (most recent call last):
  File "/bin/ruamel-json", line 19, in <module>
    for doc in ruamel.yaml.load_all(sys.stdin.read(), Loader=ruamel.yaml.Loader):
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 949, in load_all
    yield loader._constructor.get_data()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/constructor.py", line 101, in get_data
    return self.construct_document(self.composer.get_node())
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 68, in get_node
    return self.compose_document()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 104, in compose_document
    self.parser.get_event()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 163, in get_event
    self.current_event = self.state()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 239, in parse_document_end
    token = self.scanner.peek_token()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 182, in peek_token
    self.fetch_more_tokens()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 321, in fetch_more_tokens
    self.reader.get_mark(),
ruamel.yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<byte string>", line 4, column 1:
    	3rd non-empty
    ^ (line: 4)

ruamel-py

 error
Traceback (most recent call last):
  File "/bin/ruamel-py", line 36, in <module>
    for doc in ruamel.yaml.load_all(sys.stdin.read(), Loader=ruamel.yaml.Loader):
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 949, in load_all
    yield loader._constructor.get_data()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/constructor.py", line 101, in get_data
    return self.construct_document(self.composer.get_node())
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 68, in get_node
    return self.compose_document()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 104, in compose_document
    self.parser.get_event()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 163, in get_event
    self.current_event = self.state()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 239, in parse_document_end
    token = self.scanner.peek_token()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 182, in peek_token
    self.fetch_more_tokens()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 321, in fetch_more_tokens
    self.reader.get_mark(),
ruamel.yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<byte string>", line 4, column 1:
    	3rd non-empty
    ^ (line: 4)

perl5-pp-pl

 na
'1st non-empty
2nd non-empty 3rd non-empty'

perl5-syck-pl

 na
'1st non-empty
2nd non-empty 	3rd non-empty'

perl5-xs-pl

 na
'1st non-empty
2nd non-empty 3rd non-empty'