diff --git a/meson.build b/meson.build index 8a09d6aa..43c00f39 100644 --- a/meson.build +++ b/meson.build @@ -31,16 +31,10 @@ dyaml_src = [ 'source/dyaml/serializer.d', 'source/dyaml/style.d', 'source/dyaml/tagdirective.d', - 'source/dyaml/test/common.d', - 'source/dyaml/test/compare.d', 'source/dyaml/test/constructor.d', - 'source/dyaml/test/emitter.d', - 'source/dyaml/test/errors.d', - 'source/dyaml/test/inputoutput.d', - 'source/dyaml/test/reader.d', 'source/dyaml/test/representer.d', - 'source/dyaml/test/resolver.d', - 'source/dyaml/test/tokens.d', + 'source/dyaml/test/suite.d', + 'source/dyaml/test/suitehelpers.d', 'source/dyaml/token.d' ] install_subdir('source/dyaml', install_dir: 'include/d/yaml/') diff --git a/source/dyaml/composer.d b/source/dyaml/composer.d index 936a779d..5467af82 100644 --- a/source/dyaml/composer.d +++ b/source/dyaml/composer.d @@ -387,85 +387,3 @@ struct Composer return node; } } - -// Provide good error message on multiple keys (which JSON supports) -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `{ - "comment": "This is a common technique", - "name": "foobar", - "comment": "To write down comments pre-JSON5" -}`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : Key 'comment' appears multiple times in mapping\n" ~ - ":4,5\ndefined here: :2,5"); -} - -// Provide good error message on duplicate anchors -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `{ - a: &anchor b, - b: &anchor c, -}`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : Found duplicate anchor: anchor\n" ~ - ":3,8\ndefined here: :2,8"); -} - -// Provide good error message on missing alias -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `{ - a: *anchor, -}`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : Found undefined alias: anchor\n" ~ - ":2,8"); -} - -// Provide good error message on recursive alias -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `a: &anchor { - b: *anchor -}`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : Found recursive alias: anchor\n" ~ - ":2,8\ndefined here: :1,4"); -} - -// Provide good error message on failed merges -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `a: &anchor 3 -b: { <<: *anchor }`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While constructing a mapping, expected a mapping or a list of mappings for merging, but found: integer\n" ~ - ":2,19\nmapping started here: :2,4"); -} diff --git a/source/dyaml/event.d b/source/dyaml/event.d index 0b68ab3d..217d3569 100644 --- a/source/dyaml/event.d +++ b/source/dyaml/event.d @@ -10,6 +10,7 @@ */ module dyaml.event; +import std.algorithm; import std.array; import std.conv; @@ -43,8 +44,6 @@ enum EventID : ubyte */ struct Event { - @disable int opCmp(ref Event); - ///Value of the event, if any. string value; ///Start position of the event in file/stream. diff --git a/source/dyaml/loader.d b/source/dyaml/loader.d index f20f0d4f..6b79ad5a 100644 --- a/source/dyaml/loader.d +++ b/source/dyaml/loader.d @@ -420,3 +420,46 @@ EOS"; assert(mark.column == 1); } } + +@safe unittest +{ + assertThrown(Loader.fromString("Invalid character: \xFF").load()); +} + +@safe unittest +{ + assertThrown(Loader.fromFile("test/data/odd-utf16.stream-error").load()); +} + +// UTF-16 and 32 test +@safe unittest +{ + import std.conv : to; + import std.range : only; + enum string yaml = `ABCDØ`; + enum bom = '\uFEFF'; + foreach (doc; only( + cast(ubyte[])(bom~yaml.to!(wchar[])), + cast(ubyte[])(bom~yaml.to!(dchar[])), + )) + { + assert(Loader.fromBuffer(doc).load().as!string == yaml); + } +} +// Invalid unicode test +@safe unittest +{ + import std.conv : to; + import std.range : only; + enum string yaml = `ABCDØ`; + enum badBOM = '\uFFFE'; + foreach (doc; only( + cast(ubyte[])yaml.to!(wchar[]), + cast(ubyte[])yaml.to!(dchar[]), + cast(ubyte[])(badBOM~yaml.to!(wchar[])), + cast(ubyte[])(badBOM~yaml.to!(dchar[])), + )) + { + assertThrown(Loader.fromBuffer(doc).load()); + } +} diff --git a/source/dyaml/parser.d b/source/dyaml/parser.d index a6edfe23..cc2ea470 100644 --- a/source/dyaml/parser.d +++ b/source/dyaml/parser.d @@ -953,89 +953,3 @@ final class Parser return scalarEvent(mark, mark, null, null, true, ""); } } - -// Provide good error message for bad block mapping -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `[`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While parsing a flow node, expected node content, but found: streamEnd\n" ~ - ":1,2\nnode started here: :1,2"); -} - -// Provide good error message for bad block mapping -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `&anchor !foo!bar value`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While parsing a node, found undefined tag handle: !foo!\n" ~ - ":1,9\nnode started here: :1,1"); -} - -// Provide good error message for bad block mapping -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `- a -,`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While parsing a block sequence, expected block end, but found: flowEntry\n" ~ - ":2,1\nsequence started here: :1,1"); -} - -// Provide good error message for bad block mapping -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `a: b -,`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While parsing a block mapping, expected block end, but found: flowEntry\n" ~ - ":2,1\nmapping started here: :1,1"); -} - -// Provide good error message for bad flow sequence -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `[a,b,c`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While parsing a flow sequence, expected ',' or ']', but got: streamEnd\n" ~ - ":1,7\nsequence started here: :1,1"); -} - -// Provide good error message for bad flow mapping -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `{a,b,c`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While parsing a flow mapping, expected ',' or '}', but got: streamEnd\n" ~ - ":1,7\nmapping started here: :1,1"); -} diff --git a/source/dyaml/reader.d b/source/dyaml/reader.d index 86ae3bf2..824c1d1c 100644 --- a/source/dyaml/reader.d +++ b/source/dyaml/reader.d @@ -473,7 +473,7 @@ private: // this first. // $(D char[] utf8) input converted to UTF-8. May be a slice of input. // $(D size_t characterCount) Number of characters (code points) in input. -auto toUTF8(ubyte[] input, const UTFEncoding encoding) @safe pure nothrow +public auto toUTF8(ubyte[] input, const UTFEncoding encoding) @safe pure nothrow { // Documented in function ddoc. struct Result diff --git a/source/dyaml/resolver.d b/source/dyaml/resolver.d index 16d84196..9ada4c2d 100644 --- a/source/dyaml/resolver.d +++ b/source/dyaml/resolver.d @@ -209,45 +209,6 @@ struct Resolver assert(false, "Cannot resolve an invalid node"); } } - @safe unittest - { - auto resolver = Resolver.withDefaultResolvers; - - bool tagMatch(string tag, string[] values) @safe - { - const string expected = tag; - foreach(value; values) - { - const string resolved = resolver.resolve(NodeID.scalar, null, value, true); - if(expected != resolved) - { - return false; - } - } - return true; - } - - assert(tagMatch("tag:yaml.org,2002:bool", - ["yes", "NO", "True", "on"])); - assert(tagMatch("tag:yaml.org,2002:float", - ["6.8523015e+5", "685.230_15e+03", "685_230.15", - "190:20:30.15", "-.inf", ".NaN"])); - assert(tagMatch("tag:yaml.org,2002:int", - ["685230", "+685_230", "02472256", "0x_0A_74_AE", - "0b1010_0111_0100_1010_1110", "190:20:30"])); - assert(tagMatch("tag:yaml.org,2002:merge", ["<<"])); - assert(tagMatch("tag:yaml.org,2002:null", ["~", "null", ""])); - assert(tagMatch("tag:yaml.org,2002:str", - ["abcd", "9a8b", "9.1adsf"])); - assert(tagMatch("tag:yaml.org,2002:timestamp", - ["2001-12-15T02:59:43.1Z", - "2001-12-14t21:59:43.10-05:00", - "2001-12-14 21:59:43.10 -5", - "2001-12-15 2:59:43.10", - "2002-12-14"])); - assert(tagMatch("tag:yaml.org,2002:value", ["="])); - assert(tagMatch("tag:yaml.org,2002:yaml", ["!", "&", "*"])); - } ///Returns: Default scalar tag. @property string defaultScalarTag() const pure @safe nothrow {return defaultScalarTag_;} diff --git a/source/dyaml/scanner.d b/source/dyaml/scanner.d index 75bb8c15..633bec11 100644 --- a/source/dyaml/scanner.d +++ b/source/dyaml/scanner.d @@ -1769,362 +1769,6 @@ struct Scanner } } -// Issue 309 - https://github.com/dlang-community/D-YAML/issues/309 -@safe unittest -{ - enum str = q"EOS -exp: | - foobar -EOS".chomp; - - auto r = Reader(cast(ubyte[])str.dup); - auto s = Scanner(r); - auto elems = s.map!"a.value".filter!"a.length > 0".array; - assert(elems[1] == "foobar"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `test: key: value`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : Mapping values are not allowed here\n" ~ - ":1,10"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `test: ? foo - : bar`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : Mapping keys are not allowed here\n" ~ - ":1,7"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `@`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning for the next token, found character '@', index 64 that cannot start any token\n" ~ - ":1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `foo: bar -meh`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a simple key, could not find expected ':'\n" ~ - ":2,4\nkey started here: :2,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `foo: &A bar -*A ]`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a simple key, could not find expected ':'\n" ~ - ":2,4\nkey started here: :2,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `foo: &[`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning an anchor or alias, expected a printable character besides '[', ']', '{', '}' and ',', but found [\n" ~ - ":1,7\nstarted here: :1,6"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `%?`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a directive, expected alphanumeric, '-' or '_', but found ?\n" ~ - ":1,2\ndirective started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `%b?`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a directive, expected alphanumeric, '-' or '_', but found ?\n" ~ - ":1,3\ndirective started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `%YAML 1?`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a directive, expected digit or '.', but found ?\n" ~ - ":1,8\ndirective started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `%YAML 1.1?`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a directive, expected digit or '.', but found ?\n" ~ - ":1,10\ndirective started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `%YAML ?`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a directive, expected a digit, but found ?\n" ~ - ":1,7\ndirective started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `%TAG !a!<`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a directive handle, expected ' ', but found <\n" ~ - ":1,9\ndirective started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `%TAG !a! !>`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a directive prefix, expected ' ', but found >\n" ~ - ":1,11\ndirective started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `%YAML 1.0 ?`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a directive, expected a comment or a line break, but found ?\n" ~ - ":1,11\ndirective started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `foo: !: While scanning a tag, expected a '>', but found #\n" ~ - ":1,9\ntag started here: :1,6"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `foo: !#`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a tag, expected a ' ', but found #\n" ~ - ":1,10\ntag started here: :1,6"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `foo: !<#`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While parsing a tag, expected a URI, but found #\n" ~ - ":1,8\ntag started here: :1,6"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `foo: |b`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a block scalar, expected a chomping or indentation indicator, but found b\n" ~ - ":1,7\nscalar started here: :1,6"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `foo: |0`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a block scalar, expected an indentation indicator in range 1-9, but found 0\n" ~ - ":1,7\nscalar started here: :1,6"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `"\x"`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a double quoted scalar, expected an escape sequence of hexadecimal numbers, but found \"\n" ~ - ":1,4\nscalar started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `"\:"`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a double quoted scalar, found unsupported escape character :\n" ~ - ":1,3\nscalar started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `"an unfinished scal`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a quoted scalar, found unexpected end of buffer\n" ~ - ":1,20\nscalar started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `"an unfinished scal ----`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a quoted scalar, found unexpected document separator\n" ~ - ":2,1\nscalar started here: :1,1"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `Error: !a:!`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a tag, expected a !, but found :\n" ~ - ":1,10\ntag started here: :1,8"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `Error: !e!tag%:)`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a tag, expected a URI escape sequence of 2 hexadecimal numbers, but found :)\n" ~ - ":1,15\ntag started here: :1,8"); -} - -@safe unittest -{ - import dyaml.loader : Loader; - - const str = `Error: !e!tag%99%99`; - - const exc = collectException!LoaderException(Loader.fromString(str).load()); - assert(exc); - assert(exc.message() == - "Unable to load : While scanning a tag, found invalid UTF-8 data encoded in URI escape sequence\n" ~ - ":1,20\ntag started here: :1,8"); -} - private void insert(ref char[] slice, const dchar c, const size_t position) @safe pure in(position <= slice.length, text("Trying to insert after the end of the slice (", position, " > ", slice.length, ")")) { diff --git a/source/dyaml/test/common.d b/source/dyaml/test/common.d deleted file mode 100644 index a751e423..00000000 --- a/source/dyaml/test/common.d +++ /dev/null @@ -1,237 +0,0 @@ - -// Copyright Ferdinand Majerech 2011. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -module dyaml.test.common; - -version(unittest) -{ - -import dyaml.node; -import dyaml.event; -import dyaml.parser; -import dyaml.reader; -import dyaml.scanner; - -import core.exception; -import std.algorithm; -import std.array; -import std.conv; -import std.file; -import std.range; -import std.path; -import std.traits; -import std.typecons; - -package: - -/** -Run a test. - -Params: - testFunction = Unittest function. - unittestExt = Extensions of data files needed for the unittest. - skipExt = Extensions that must not be used for the unittest. - */ -void run(D)(D testFunction, string[] unittestExt, string[] skipExt = []) -{ - immutable string dataDir = __FILE_FULL_PATH__.dirName ~ "/../../../test/data"; - auto testFilenames = findTestFilenames(dataDir); - - if (unittestExt.length > 0) - { - outer: foreach (base, extensions; testFilenames) - { - string[] filenames; - foreach (ext; unittestExt) - { - if (!extensions.canFind(ext)) - { - continue outer; - } - filenames ~= base ~ '.' ~ ext; - } - foreach (ext; skipExt) - { - if (extensions.canFind(ext)) - { - continue outer; - } - } - - execute(testFunction, filenames); - } - } - else - { - execute(testFunction, string[].init); - } -} - -// TODO: remove when a @safe ubyte[] file read can be done. -/** -Reads a file as an array of bytes. - -Params: - filename = Full path to file to read. - -Returns: The file's data. -*/ -ubyte[] readData(string filename) @trusted -{ - import std.file : read; - return cast(ubyte[])read(filename); -} -void assertNodesEqual(const scope Node gotNode, const scope Node expectedNode) @safe -{ - import std.format : format; - assert(gotNode == expectedNode, format!"got %s, expected %s"(gotNode.debugString, expectedNode.debugString)); -} - -/** -Determine if events in events1 are equivalent to events in events2. - -Params: - events1 = A range of events to compare with. - events2 = A second range of events to compare. - -Returns: true if the events are equivalent, false otherwise. -*/ -bool compareEvents(T, U)(T events1, U events2) -if (isInputRange!T && isInputRange!U && is(ElementType!T == Event) && is(ElementType!U == Event)) -{ - foreach (e1, e2; zip(events1, events2)) - { - //Different event types. - if (e1.id != e2.id) - { - return false; - } - //Different anchor (if applicable). - if (e1.id.among!(EventID.sequenceStart, EventID.mappingStart, EventID.alias_, EventID.scalar) - && e1.anchor != e2.anchor) - { - return false; - } - //Different collection tag (if applicable). - if (e1.id.among!(EventID.sequenceStart, EventID.mappingStart) && e1.tag != e2.tag) - { - return false; - } - if (e1.id == EventID.scalar) - { - //Different scalar tag (if applicable). - if (!(e1.implicit || e2.implicit) && e1.tag != e2.tag) - { - return false; - } - //Different scalar value. - if (e1.value != e2.value) - { - return false; - } - } - } - return true; -} -/** -Throw an Error if events in events1 aren't equivalent to events in events2. - -Params: - events1 = First event array to compare. - events2 = Second event array to compare. -*/ -void assertEventsEqual(T, U)(T events1, U events2) -if (isInputRange!T && isInputRange!U && is(ElementType!T == Event) && is(ElementType!U == Event)) -{ - auto events1Copy = events1.array; - auto events2Copy = events2.array; - assert(compareEvents(events1Copy, events2Copy), text("Got '", events1Copy, "', expected '", events2Copy, "'")); -} - -auto parseData(ubyte[] data, string name = "TEST") @safe -{ - auto reader = Reader(data, name); - auto scanner = Scanner(reader); - return new Parser(scanner); -} -auto parseFile(string path) @safe -{ - return parseData(readData(path), path); -} - -private: - -/** -Find unittest input filenames. - -Params: dir = Directory to look in. - -Returns: Test input base filenames and their extensions. -*/ - //@trusted due to dirEntries -string[][string] findTestFilenames(const string dir) @trusted -{ - //Groups of extensions indexed by base names. - string[][string] names; - foreach (string name; dirEntries(dir, SpanMode.shallow)) - { - if (isFile(name)) - { - string base = name.stripExtension(); - string ext = name.extension(); - if (ext is null) - { - ext = ""; - } - if (ext[0] == '.') - { - ext = ext[1 .. $]; - } - - //If the base name doesn't exist yet, add it; otherwise add new extension. - names[base] = ((base in names) is null) ? [ext] : names[base] ~ ext; - } - } - return names; -} - -/** -Recursively copy an array of strings to a tuple to use for unittest function input. - -Params: - index = Current index in the array/tuple. - tuple = Tuple to copy to. - strings = Strings to copy. -*/ -void stringsToTuple(uint index, F ...)(ref F tuple, const string[] strings) -in(F.length == strings.length) -do -{ - tuple[index] = strings[index]; - static if (index > 0) - { - stringsToTuple!(index - 1, F)(tuple, strings); - } -} - -/** -Execute an unittest on specified files. - -Params: - testName = Name of the unittest. - testFunction = Unittest function. - filenames = Names of input files to test with. - */ -void execute(D)(D testFunction, string[] filenames) -{ - //Convert filenames to parameters tuple and call the test function. - alias F = Parameters!D[0..$]; - F parameters; - stringsToTuple!(F.length - 1, F)(parameters, filenames); - testFunction(parameters); -} - -} // version(unittest) diff --git a/source/dyaml/test/compare.d b/source/dyaml/test/compare.d deleted file mode 100644 index 75e0e9b3..00000000 --- a/source/dyaml/test/compare.d +++ /dev/null @@ -1,51 +0,0 @@ - -// Copyright Ferdinand Majerech 2011. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -module dyaml.test.compare; - -@safe unittest -{ - import dyaml : Loader; - import dyaml.test.common : assertNodesEqual, compareEvents, parseFile, run; - - /** - Test parser by comparing output from parsing two equivalent YAML files. - - Params: - dataFilename = YAML file to parse. - canonicalFilename = Another file to parse, in canonical YAML format. - */ - static void testParser(string dataFilename, string canonicalFilename) @safe - { - auto dataEvents = parseFile(dataFilename); - auto canonicalEvents = parseFile(canonicalFilename); - - //BUG: the return value isn't checked! This test currently fails... - compareEvents(dataEvents, canonicalEvents); - } - - /** - Test loader by comparing output from loading two equivalent YAML files. - - Params: - dataFilename = YAML file to load. - canonicalFilename = Another file to load, in canonical YAML format. - */ - static void testLoader(string dataFilename, string canonicalFilename) @safe - { - import std.array : array; - auto data = Loader.fromFile(dataFilename).array; - auto canonical = Loader.fromFile(canonicalFilename).array; - - assert(data.length == canonical.length, "Unequal node count"); - foreach (n; 0 .. data.length) - { - assertNodesEqual(data[n], canonical[n]); - } - } - run(&testParser, ["data", "canonical"]); - run(&testLoader, ["data", "canonical"], ["test_loader_skip"]); -} diff --git a/source/dyaml/test/constructor.d b/source/dyaml/test/constructor.d index aeb86536..ad9fb626 100644 --- a/source/dyaml/test/constructor.d +++ b/source/dyaml/test/constructor.d @@ -6,10 +6,9 @@ module dyaml.test.constructor; +package version(unittest): -version(unittest) -{ - +import std.algorithm; import std.conv; import std.datetime; import std.exception; @@ -920,38 +919,3 @@ struct TestStruct return Node(value.to!string, "!tag2"); } } - -} // version(unittest) - - -@safe unittest -{ - import dyaml.test.common : assertNodesEqual, run; - /** - Constructor unittest. - - Params: - dataFilename = File name to read from. - codeDummy = Dummy .code filename, used to determine that - .data file with the same name should be used in this test. - */ - static void testConstructor(string dataFilename, string codeDummy) @safe - { - string base = dataFilename.baseName.stripExtension; - assert((base in expected) !is null, "Unimplemented constructor test: " ~ base); - - auto loader = Loader.fromFile(dataFilename); - - Node[] exp = expected[base]; - - //Compare with expected results document by document. - size_t i; - foreach (node; loader) - { - assertNodesEqual(node, exp[i]); - ++i; - } - assert(i == exp.length); - } - run(&testConstructor, ["data", "code"]); -} diff --git a/source/dyaml/test/emitter.d b/source/dyaml/test/emitter.d deleted file mode 100644 index dc6588d8..00000000 --- a/source/dyaml/test/emitter.d +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Ferdinand Majerech 2011-2014. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -module dyaml.test.emitter; - -@safe unittest -{ - import std.array : Appender, array; - import std.range : ElementType, isInputRange; - - import dyaml : CollectionStyle, LineBreak, Loader, Mark, ScalarStyle; - import dyaml.emitter : Emitter; - import dyaml.event : Event, EventID, mappingStartEvent, scalarEvent, sequenceStartEvent; - import dyaml.test.common : assertEventsEqual, parseData, parseFile, run; - - // Try to emit an event range. - static void emitTestCommon(T)(Appender!string* emitStream, T events, bool canonical = false) @safe - if (isInputRange!T && is(ElementType!T == Event)) - { - auto emitter = Emitter!(typeof(emitStream), char)(emitStream, canonical, 2, 80, LineBreak.unix); - foreach (event; events) - { - emitter.emit(event); - } - } - /** - Test emitter by getting events from parsing a file, emitting them, parsing - the emitted result and comparing events from parsing the emitted result with - originally parsed events. - - Params: - dataFilename = YAML file to parse. - canonicalFilename = Canonical YAML file used as dummy to determine - which data files to load. - */ - static void testEmitterOnData(string dataFilename, string canonicalFilename) @safe - { - //Must exist due to Anchor, Tags reference counts. - auto events = parseFile(dataFilename).array; - auto emitStream = new Appender!string(); - emitTestCommon(emitStream, events); - - auto newEvents = parseData(cast(ubyte[])emitStream.data.dup); - assertEventsEqual(events, newEvents); - } - /** - Test emitter by getting events from parsing a canonical YAML file, emitting - them both in canonical and normal format, parsing the emitted results and - comparing events from parsing the emitted result with originally parsed events. - - Params: canonicalFilename = Canonical YAML file to parse. - */ - static void testEmitterOnCanonical(string canonicalFilename) @safe - { - //Must exist due to Anchor, Tags reference counts. - auto events = parseFile(canonicalFilename).array; - foreach (canonical; [false, true]) - { - auto emitStream = new Appender!string(); - emitTestCommon(emitStream, events, canonical); - - auto newEvents = parseData(cast(ubyte[])emitStream.data.dup); - assertEventsEqual(events, newEvents); - } - } - /** - Test emitter by getting events from parsing a file, emitting them with all - possible scalar and collection styles, parsing the emitted results and - comparing events from parsing the emitted result with originally parsed events. - - Params: - dataFilename = YAML file to parse. - canonicalFilename = Canonical YAML file used as dummy to determine - which data files to load. - */ - static void testEmitterStyles(string dataFilename, string canonicalFilename) @safe - { - foreach (filename; [dataFilename, canonicalFilename]) - { - //must exist due to Anchor, Tags reference counts - auto events = parseFile(canonicalFilename).array; - foreach (flowStyle; [CollectionStyle.block, CollectionStyle.flow]) - { - foreach (style; [ScalarStyle.literal, ScalarStyle.folded, - ScalarStyle.doubleQuoted, ScalarStyle.singleQuoted, - ScalarStyle.plain]) - { - Event[] styledEvents; - foreach (event; events) - { - if (event.id == EventID.scalar) - { - event = scalarEvent(Mark(), Mark(), event.anchor, event.tag, - event.implicit, - event.value, style); - } - else if (event.id == EventID.sequenceStart) - { - event = sequenceStartEvent(Mark(), Mark(), event.anchor, - event.tag, event.implicit, flowStyle); - } - else if (event.id == EventID.mappingStart) - { - event = mappingStartEvent(Mark(), Mark(), event.anchor, - event.tag, event.implicit, flowStyle); - } - styledEvents ~= event; - } - auto emitStream = new Appender!string(); - emitTestCommon(emitStream, styledEvents); - auto newEvents = parseData(cast(ubyte[])emitStream.data.dup); - assertEventsEqual(events, newEvents); - } - } - } - } - run(&testEmitterOnData, ["data", "canonical"]); - run(&testEmitterOnCanonical, ["canonical"]); - run(&testEmitterStyles, ["data", "canonical"]); -} diff --git a/source/dyaml/test/errors.d b/source/dyaml/test/errors.d deleted file mode 100644 index 43b019c8..00000000 --- a/source/dyaml/test/errors.d +++ /dev/null @@ -1,64 +0,0 @@ - -// Copyright Ferdinand Majerech 2011-2014 -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -module dyaml.test.errors; - -@safe unittest -{ - import std.array : array; - import std.exception : assertThrown; - - import dyaml : Loader; - import dyaml.test.common : run; - - /** - Loader error unittest from file stream. - - Params: errorFilename = File name to read from. - */ - static void testLoaderError(string errorFilename) @safe - { - assertThrown(Loader.fromFile(errorFilename).array, - __FUNCTION__ ~ "(" ~ errorFilename ~ ") Expected an exception"); - } - - /** - Loader error unittest from string. - - Params: errorFilename = File name to read from. - */ - static void testLoaderErrorString(string errorFilename) @safe - { - assertThrown(Loader.fromFile(errorFilename).array, - __FUNCTION__ ~ "(" ~ errorFilename ~ ") Expected an exception"); - } - - /** - Loader error unittest from filename. - - Params: errorFilename = File name to read from. - */ - static void testLoaderErrorFilename(string errorFilename) @safe - { - assertThrown(Loader.fromFile(errorFilename).array, - __FUNCTION__ ~ "(" ~ errorFilename ~ ") Expected an exception"); - } - - /** - Loader error unittest loading a single document from a file. - - Params: errorFilename = File name to read from. - */ - static void testLoaderErrorSingle(string errorFilename) @safe - { - assertThrown(Loader.fromFile(errorFilename).load(), - __FUNCTION__ ~ "(" ~ errorFilename ~ ") Expected an exception"); - } - run(&testLoaderError, ["loader-error"]); - run(&testLoaderErrorString, ["loader-error"]); - run(&testLoaderErrorFilename, ["loader-error"]); - run(&testLoaderErrorSingle, ["single-loader-error"]); -} diff --git a/source/dyaml/test/inputoutput.d b/source/dyaml/test/inputoutput.d deleted file mode 100644 index 758def8d..00000000 --- a/source/dyaml/test/inputoutput.d +++ /dev/null @@ -1,92 +0,0 @@ - -// Copyright Ferdinand Majerech 2011-2014. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -module dyaml.test.inputoutput; - -@safe unittest -{ - import std.array : join, split; - import std.conv : to; - import std.exception : assertThrown; - import std.file : readText; - import std.system : endian, Endian; - - import dyaml : Loader, Node, YAMLException; - import dyaml.test.common : run; - - /** - Get an UTF-16 byte order mark. - - Params: wrong = Get the incorrect BOM for this system. - - Returns: UTF-16 byte order mark. - */ - static wchar bom16(bool wrong = false) pure @safe - { - wchar little = '\uFEFF'; - wchar big = '\uFFFE'; - if (!wrong) - { - return endian == Endian.littleEndian ? little : big; - } - return endian == Endian.littleEndian ? big : little; - } - /** - Get an UTF-32 byte order mark. - - Params: wrong = Get the incorrect BOM for this system. - - Returns: UTF-32 byte order mark. - */ - static dchar bom32(bool wrong = false) pure @safe - { - dchar little = '\uFEFF'; - dchar big = '\uFFFE'; - if (!wrong) - { - return endian == Endian.littleEndian ? little : big; - } - return endian == Endian.littleEndian ? big : little; - } - /** - Unicode input unittest. Tests various encodings. - - Params: unicodeFilename = File name to read from. - */ - static void testUnicodeInput(string unicodeFilename) @safe - { - string data = readText(unicodeFilename); - string expected = data.split().join(" "); - - Node output = Loader.fromString(data).load(); - assert(output.as!string == expected); - - foreach (buffer; [cast(ubyte[]) (bom16() ~ data.to!(wchar[])), - cast(ubyte[]) (bom32() ~ data.to!(dchar[]))]) - { - output = Loader.fromBuffer(buffer).load(); - assert(output.as!string == expected); - } - } - /** - Unicode input error unittest. Tests various encodings with incorrect BOMs. - - Params: unicodeFilename = File name to read from. - */ - static void testUnicodeInputErrors(string unicodeFilename) @safe - { - string data = readText(unicodeFilename); - foreach (buffer; [cast(ubyte[]) (data.to!(wchar[])), - cast(ubyte[]) (data.to!(dchar[])), - cast(ubyte[]) (bom16(true) ~ data.to!(wchar[])), - cast(ubyte[]) (bom32(true) ~ data.to!(dchar[]))]) - { - assertThrown(Loader.fromBuffer(buffer).load()); - } - } - run(&testUnicodeInput, ["unicode"]); - run(&testUnicodeInputErrors, ["unicode"]); -} diff --git a/source/dyaml/test/reader.d b/source/dyaml/test/reader.d deleted file mode 100644 index 711ea52d..00000000 --- a/source/dyaml/test/reader.d +++ /dev/null @@ -1,38 +0,0 @@ - -// Copyright Ferdinand Majerech 2011. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -module dyaml.test.reader; - -@safe unittest -{ - import std.exception :assertThrown; - - import dyaml.test.common : readData, run; - import dyaml.exception : ReaderException; - import dyaml.reader : Reader; - - /** - Try reading entire file through Reader, expecting an error (the file is invalid). - - Params: data = Stream to read. - */ - static void runReader(ubyte[] fileData) @safe - { - auto reader = Reader(fileData); - while(reader.peek() != '\0') { reader.forward(); } - } - - /** - Stream error unittest. Tries to read invalid input files, expecting errors. - - Params: errorFilename = File name to read from. - */ - static void testStreamError(string errorFilename) @safe - { - assertThrown!ReaderException(runReader(readData(errorFilename))); - } - run(&testStreamError, ["stream-error"]); -} diff --git a/source/dyaml/test/representer.d b/source/dyaml/test/representer.d index 4a1ae67b..eeac1571 100644 --- a/source/dyaml/test/representer.d +++ b/source/dyaml/test/representer.d @@ -9,12 +9,12 @@ module dyaml.test.representer; @safe unittest { import std.array : Appender, array; + import std.conv : text; import std.meta : AliasSeq; import std.path : baseName, stripExtension; import std.utf : toUTF8; import dyaml : dumper, Loader, Node; - import dyaml.test.common : assertNodesEqual, run; import dyaml.test.constructor : expected; /** @@ -38,13 +38,9 @@ module dyaml.test.representer; auto loader = Loader.fromString(emitStream.data.toUTF8); loader.name = "TEST"; - const readNodes = loader.array; + auto readNodes = loader.array; - assert(expectedNodes.length == readNodes.length); - foreach (n; 0 .. expectedNodes.length) - { - assertNodesEqual(expectedNodes[n], readNodes[n]); - } + assert(expectedNodes == readNodes, text("Got '", readNodes, "', expected '", expectedNodes, "'")); } } foreach (key, _; expected) diff --git a/source/dyaml/test/resolver.d b/source/dyaml/test/resolver.d deleted file mode 100644 index ea93720a..00000000 --- a/source/dyaml/test/resolver.d +++ /dev/null @@ -1,39 +0,0 @@ - -// Copyright Ferdinand Majerech 2011. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -module dyaml.test.resolver; - -@safe unittest -{ - import std.conv : text; - import std.file : readText; - import std.string : strip; - - import dyaml : Loader, Node, NodeID; - import dyaml.test.common : run; - - - /** - Implicit tag resolution unittest. - - Params: - dataFilename = File with unittest data. - detectFilename = Dummy filename used to specify which data filenames to use. - */ - static void testImplicitResolver(string dataFilename, string detectFilename) @safe - { - const correctTag = readText(detectFilename).strip(); - - auto node = Loader.fromFile(dataFilename).load(); - assert(node.nodeID == NodeID.sequence, text("Expected sequence when reading '", dataFilename, "', got ", node.nodeID)); - foreach (Node scalar; node) - { - assert(scalar.nodeID == NodeID.scalar, text("Expected sequence of scalars when reading '", dataFilename, "', got sequence of ", scalar.nodeID)); - assert(scalar.tag == correctTag, text("Expected tag '", correctTag, "' when reading '", dataFilename, "', got '", scalar.tag, "'")); - } - } - run(&testImplicitResolver, ["data", "detect"]); -} diff --git a/source/dyaml/test/suite.d b/source/dyaml/test/suite.d new file mode 100644 index 00000000..2146c375 --- /dev/null +++ b/source/dyaml/test/suite.d @@ -0,0 +1,384 @@ +module dyaml.test.suite; + +import std.algorithm; +import std.conv; +import std.datetime.stopwatch; +import std.exception; +import std.file; +import std.format; +import std.meta; +import std.path; +import std.range; +import std.stdio; +import std.string; +import std.typecons; +import dyaml; +import dyaml.event; +import dyaml.parser; +import dyaml.reader; +import dyaml.scanner; +import dyaml.test.suitehelpers; + +private version(unittest): + +debug(verbose) +{ + enum alwaysPrintTestResults = true; +} +else +{ + enum alwaysPrintTestResults = false; +} + +struct TestResult { + string name; + Nullable!bool emitter; + Nullable!bool constructor; + Nullable!bool loaderError; + Nullable!bool mark1Error; + Nullable!bool mark2Error; + Nullable!bool implicitResolver; + Nullable!bool events; + Nullable!bool specificLoaderError; + Nullable!Mark mark1; + Nullable!Mark mark2; + Event[] parsedData; + Event[][2 * 2 * 5] parsedDataResult; + Node[] loadedData; + Exception nonDYAMLException; + MarkedYAMLException exception; + string eventsExpected; + string eventsGenerated; + string generatedLoadErrorMessage; + string expectedLoadErrorMessage; + string expectedTags; + string generatedTags; +} + +/// Pretty-print the differences between two arrays +auto prettyDifferencePrinter(alias eqPred = (a,b) => a == b, T)(string title, T[] expected, T[] got, bool trimWhitespace = false) @safe +{ + struct Result + { + void foo() { + toString(nullSink); + } + void toString(W)(ref W writer) const + { + import std.format : formattedWrite; + import std.range : put; + import std.string : lineSplitter; + size_t minWidth = 10; + foreach (line; chain(expected, got)) + { + if (line.text.length + 1 > minWidth) + { + minWidth = line.text.length + 1; + } + } + void writeSideBySide(ubyte colour, string a, string b) + { + if (trimWhitespace) + { + a = strip(a); + b = strip(b); + } + writer.formattedWrite!"%s%-(%s%)%s"(colourPrinter(colour, a), " ".repeat(minWidth - a.length), colourPrinter(colour, b)); + } + writefln!"%-(%s%)%s%-(%s%)"("=".repeat(max(0, minWidth * 2 - title.length) / 2), title, "=".repeat(max(0, minWidth * 2 - title.length) / 2)); + writeSideBySide(0, "Expected", "Got"); + put(writer, "\n"); + foreach (line1, line2; zip(StoppingPolicy.longest, expected, got)) + { + static if (is(T : const char[])) + { + if (trimWhitespace) + { + line1 = strip(line1); + line2 = strip(line2); + } + } + ubyte colour = (eqPred(line1, line2)) ? 32 : 31; + writeSideBySide(colour, line1.text, line2.text); + put(writer, "\n"); + } + } + } + return Result(); +} + +/** +Run a single test from the test suite. +Params: + name = The filename of the document to load, containing the test data +*/ +TestResult runTest(string name, Node doc) @safe +{ + TestResult result; + string[string] testData; + void tryLoadTestData(string what) + { + if (what in doc) + { + testData[what] = doc[what].as!string; + doc.removeAt(what); + } + } + string yamlPath(string testName, string section) + { + return format!"%s:%s"(testName, section); + } + tryLoadTestData("name"); + result.name = name~"#"~testData.get("name", "UNNAMED"); + Nullable!Mark getMark(string key) + { + if (auto node = key in doc) + { + Mark mark; + if ("name" in *node) + { + mark.name = (*node)["name"].as!string; + } + else // default to the test name + { + // if we ever have multiple yaml blocks to parse, be sure to change this + mark.name = yamlPath(result.name, "yaml"); + } + if ("line" in *node) + { + mark.line = cast(ushort)((*node)["line"].as!ushort - 1); + } + if ("column" in *node) + { + mark.column = cast(ushort)((*node)["column"].as!ushort - 1); + } + return Nullable!Mark(mark); + } + return Nullable!Mark.init; + } + tryLoadTestData("tags"); + tryLoadTestData("from"); + tryLoadTestData("yaml"); + tryLoadTestData("fail"); + tryLoadTestData("json"); //not yet implemented + tryLoadTestData("dump"); //not yet implemented + tryLoadTestData("detect"); + tryLoadTestData("tree"); + tryLoadTestData("error"); + tryLoadTestData("code"); + assert("yaml" in testData); + { + result.expectedLoadErrorMessage = testData.get("error", ""); + result.mark1 = getMark("mark"); + result.mark2 = getMark("mark2"); + try + { + result.parsedData = parseData(testData["yaml"], yamlPath(result.name, "yaml")).array; + result.loadedData = Loader.fromString(testData["yaml"], yamlPath(result.name, "yaml")).array; + result.emitter = testEmitterStyles(yamlPath(result.name, "canonical"), result.parsedData, result.parsedDataResult); + result.mark1Error = result.mark1.isNull; + result.mark2Error = result.mark2.isNull; + } + catch (MarkedYAMLException e) + { + result.exception = e; + result.generatedLoadErrorMessage = e.msg; + result.mark1Error = !result.mark1.isNull && (result.mark1.get() == e.mark); + result.mark2Error = result.mark2 == e.mark2; + if (testData.get("fail", "false") == "false") + { + result.loaderError = false; + } + else + { + result.loaderError = true; + } + } + catch (Exception e) + { + // all non-DYAML exceptions are failures. + result.nonDYAMLException = e; + result.generatedLoadErrorMessage = e.msg; + result.loaderError = false; + } + result.specificLoaderError = strip(result.generatedLoadErrorMessage) == strip(result.expectedLoadErrorMessage); + } + if (result.loaderError.get(false)) + { + // skip other tests if loading failure was expected, because we don't + // have a way to run them yet + return result; + } + if ("tree" in testData) + { + result.eventsGenerated = result.parsedData.map!(x => strip(x.text)).join("\n"); + result.eventsExpected = testData["tree"].lineSplitter.map!(x => strip(x)).join("\n"); + result.events = result.eventsGenerated == result.eventsExpected; + } + if ("code" in testData) + { + result.constructor = testConstructor(testData["yaml"], testData["code"]); + } + if ("detect" in testData) + { + result.implicitResolver = testImplicitResolver(yamlPath(result.name, "yaml"), testData["yaml"], testData["detect"], result.generatedTags, result.expectedTags); + } + foreach (string remaining, Node _; doc) + { + writeln("Warning: Unhandled section '", remaining, "' in ", result.name); + } + return result; +} + +enum goodColour = 32; +enum badColour = 31; +/** +Print something to the console in colour. +Params: + colour = The id of the colour to print, using the 256-colour palette + data = Something to print +*/ +private auto colourPrinter(T)(ubyte colour, T data) @safe pure +{ + struct Printer + { + void toString(S)(ref S sink) + { + sink.formattedWrite!"\033[%s;1m%s\033[0m"(colour, data); + } + } + return Printer(); +} + +/** +Run all tests in the test suite and print relevant results. The test docs are +all found in the ./test/data dir. +*/ +bool runTests() +{ + auto stopWatch = StopWatch(AutoStart.yes); + bool failed; + uint testsRun, testSetsRun, testsFailed; + foreach (string name; dirEntries(buildNormalizedPath("test"), "*.yaml", SpanMode.depth)/*.chain(dirEntries(buildNormalizedPath("yaml-test-suite/src"), "*.yaml", SpanMode.depth))*/) + { + Node doc; + try + { + doc = Loader.fromFile(name).load(); + } + catch (Exception e) + { + writefln!"[%s] %s"(colourPrinter(badColour, "FAIL"), name); + writeln(colourPrinter(badColour, e)); + assert(0, "Could not load test doc '"~name~"', bailing"); + } + assert (doc.nodeID == NodeID.sequence, name~"'s root node is not a sequence!"); + foreach (Node test; doc) + { + testSetsRun++; + bool resultPrinted; + // make sure the paths are normalized on windows by replacing backslashes with slashes + TestResult result = runTest(name.replace("\\", "/"), test); + void printResult(string label, Nullable!bool value) + { + if (!value.isNull) + { + if (!value.get) + { + testsFailed++; + } + testsRun++; + } + if (alwaysPrintTestResults && value.get(false)) + { + resultPrinted = true; + writef!"[%s]"(colourPrinter(goodColour, label)); + } + else if (!value.get(true)) + { + resultPrinted = true; + failed = true; + writef!"[%s]"(colourPrinter(badColour, label)); + } + } + printResult("Emitter", result.emitter); + printResult("Constructor", result.constructor); + printResult("Mark", result.mark1Error); + printResult("Context mark", result.mark2Error); + printResult("LoaderError", result.loaderError); + printResult("Resolver", result.implicitResolver); + printResult("Events", result.events); + printResult("SpecificLoaderError", result.specificLoaderError); + if (resultPrinted) + { + writeln(" ", result.name); + } + if (!result.loaderError.get(true)) + { + if (result.exception is null && result.nonDYAMLException is null) + { + writeln("\tNo Exception thrown"); + } + else if (result.nonDYAMLException !is null) + { + writeln(result.nonDYAMLException); + } + else if (result.exception !is null) + { + writeln(result.exception); + } + } + else + { + if (!result.mark1Error.get(true)) + { + writeln(prettyDifferencePrinter("Mark mismatch", [result.mark1.text], [result.exception.mark.text])); + } + if (!result.mark2Error.get(true)) + { + writeln(prettyDifferencePrinter("Context mark mismatch", [result.mark2.text], [result.exception.mark2.text])); + } + } + if (!result.emitter.get(true)) + { + enum titles = [ "Normal", "Canonical" ]; + enum styleTitles = + [ + "Block literal", "Block folded", "Block double-quoted", "Block single-quoted", "Block plain", + "Flow literal", "Flow folded", "Flow double-quoted", "Flow single-quoted", "Flow plain", + "Block literal", "Block folded", "Block double-quoted", "Block single-quoted", "Block plain", + "Flow literal", "Flow folded", "Flow double-quoted", "Flow single-quoted", "Flow plain", + ]; + foreach (idx, parsed; result.parsedDataResult) + { + writeln(prettyDifferencePrinter!eventCompare(styleTitles[idx], result.parsedData, parsed)); + } + } + if (!result.events.get(true)) + { + writeln(prettyDifferencePrinter("Events", result.eventsExpected.splitLines, result.eventsGenerated.splitLines, true)); + } + if (!result.specificLoaderError.get(true)) + { + writeln(prettyDifferencePrinter("Expected error", result.expectedLoadErrorMessage.splitLines, result.generatedLoadErrorMessage.splitLines)); + } + if (!result.implicitResolver.get(true)) + { + writeln(prettyDifferencePrinter("Expected error", result.expectedTags.splitLines, result.generatedTags.splitLines)); + } + } + } + if (alwaysPrintTestResults || failed) + { + if (testsFailed > 0) + { + writeln(colourPrinter(badColour, "tests failed: "), testsFailed); + } + writeln(testSetsRun, " test sets (", testsRun, " tests total) completed successfully in ", stopWatch.peek()); + } + return failed; +} + +unittest { + assert(!runTests()); +} diff --git a/source/dyaml/test/suitehelpers.d b/source/dyaml/test/suitehelpers.d new file mode 100644 index 00000000..30168436 --- /dev/null +++ b/source/dyaml/test/suitehelpers.d @@ -0,0 +1,224 @@ + +// Copyright Ferdinand Majerech 2011. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +module dyaml.test.suitehelpers; + +import dyaml; +import dyaml.emitter; +import dyaml.event; +import dyaml.parser; +import dyaml.reader; +import dyaml.scanner; +import dyaml.token; +import dyaml.test.constructor; + +import std.algorithm; +import std.array; +import std.conv; +import std.exception; +import std.file; +import std.range; +import std.string; + +package version(unittest): + +// Like other types, wchar and dchar use the system's endianness, so \uFEFF +// will always be the 'correct' BOM and '\uFFFE' will always be the 'wrong' one +enum wchar[] bom16 = ['\uFEFF', '\uFFFE']; +enum dchar[] bom32 = ['\uFEFF', '\uFFFE']; + +Parser parseData(string data, string name = "TEST") @safe +{ + auto reader = Reader(cast(ubyte[])data.dup, name); + auto scanner = Scanner(reader); + return new Parser(scanner); +} + +/** +Test scanner by scanning a document, expecting no errors. + +Params: + name = Name of the document being scanned + data = Data to scan. +*/ +void testScanner(string name, string data) @safe +{ + ubyte[] yamlData = cast(ubyte[])data.dup; + string[] tokens; + foreach (token; Scanner(Reader(yamlData, name))) + { + tokens ~= token.id.text; + } +} + +/** +Implicit tag resolution unittest. + +Params: + name = Name of the document being tested + data = Document to compare + detectData = The tag that each scalar should resolve to +*/ +bool testImplicitResolver(string name, string data, string detectData, out string generatedTags, out string expectedTags) @safe +{ + const correctTag = detectData.strip(); + + const node = Loader.fromString(data, name).load(); + if (node.nodeID != NodeID.sequence) + { + return false; + } + bool success = true; + foreach (const Node scalar; node) + { + generatedTags ~= scalar.tag ~ "\n"; + expectedTags ~= correctTag ~ "\n"; + if ((scalar.nodeID != NodeID.scalar) || (scalar.tag != correctTag)) + { + success = false; + } + } + return success; +} + +// Try to emit an event range. +Event[] emitTestCommon(string name, Event[] events, bool canonical) @safe +{ + auto emitStream = new Appender!string(); + auto emitter = Emitter!(typeof(emitStream), char)(emitStream, canonical, 2, 80, LineBreak.unix); + foreach (event; events) + { + emitter.emit(event); + } + return parseData(emitStream.data, name).array; +} +/** +Test emitter by checking if events remain equal after round-tripping, with and +without canonical output enabled. + +Params: + name = Name of the document being tested + events = Events to test + results = Events that were produced by round-tripping +*/ +bool testEmitter(string name, Event[] events, out Event[][2] results) @safe +{ + bool matching = true; + foreach (idx, canonicalOutput; [false, true]) + { + results[idx] = emitTestCommon(name, events, canonicalOutput); + + if (!equal!eventCompare(events, results[idx])) + { + matching = false; + } + } + return matching; +} +/** +Test emitter by checking if events remain equal after round-tripping, with all +combinations of styles. + +Params: + name = Name of the document being tested + events = Events to test + results = Events that were produced by round-tripping +*/ +bool testEmitterStyles(string name, Event[] events, out Event[][2 * 2 * 5] results) @safe +{ + size_t idx; + foreach (styles; cartesianProduct( + [CollectionStyle.block, CollectionStyle.flow], + [ScalarStyle.literal, ScalarStyle.folded, + ScalarStyle.doubleQuoted, ScalarStyle.singleQuoted, + ScalarStyle.plain], + [false, true])) + { + const collectionStyle = styles[0]; + const scalarStyle = styles[1]; + const canonical = styles[2]; + Event[] styledEvents; + foreach (event; events) + { + if (event.id == EventID.scalar) + { + event = scalarEvent(Mark(), Mark(), event.anchor, event.tag, + event.implicit, + event.value, scalarStyle); + } + else if (event.id == EventID.sequenceStart) + { + event = sequenceStartEvent(Mark(), Mark(), event.anchor, + event.tag, event.implicit, collectionStyle); + } + else if (event.id == EventID.mappingStart) + { + event = mappingStartEvent(Mark(), Mark(), event.anchor, + event.tag, event.implicit, collectionStyle); + } + styledEvents ~= event; + } + auto newEvents = emitTestCommon(name, styledEvents, canonical); + results[idx++] = newEvents; + if (!equal!eventCompare(events, newEvents)) + { + return false; + } + } + return true; +} + +/** +Constructor unittest. + +Params: + data = The document being tested + base = A unique id corresponding to one of the premade sequences in dyaml.test.constructor +*/ +bool testConstructor(string data, string base) @safe +{ + assert((base in expected) !is null, "Unimplemented constructor test: " ~ base); + auto loader = Loader.fromString(data); + + Node[] exp = expected[base]; + + //Compare with expected results document by document. + return equal(loader, exp); +} + +bool eventCompare(const Event a, const Event b) @safe pure +{ + //Different event types. + if (a.id != b.id) + { + return false; + } + //Different anchor (if applicable). + if (a.id.among!(EventID.sequenceStart, EventID.mappingStart, EventID.alias_, EventID.scalar) + && a.anchor != b.anchor) + { + return false; + } + //Different collection tag (if applicable). + if (a.id.among!(EventID.sequenceStart, EventID.mappingStart) && a.tag != b.tag) + { + return false; + } + if (a.id == EventID.scalar) + { + //Different scalar tag (if applicable). + if (!(a.implicit || b.implicit) && a.tag != b.tag) + { + return false; + } + //Different scalar value. + if (a.value != b.value) + { + return false; + } + } + return true; +} diff --git a/source/dyaml/test/tokens.d b/source/dyaml/test/tokens.d deleted file mode 100644 index ad7e1b67..00000000 --- a/source/dyaml/test/tokens.d +++ /dev/null @@ -1,93 +0,0 @@ - -// Copyright Ferdinand Majerech 2011. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -module dyaml.test.tokens; - -@safe unittest -{ - import std.array : split; - import std.conv : text; - import std.file : readText; - - import dyaml.test.common : run; - import dyaml.reader : Reader; - import dyaml.scanner : Scanner; - import dyaml.token : TokenID; - - // Read and scan a YAML doc, returning a range of tokens. - static auto scanTestCommon(string filename) @safe - { - ubyte[] yamlData = cast(ubyte[])readText(filename).dup; - return Scanner(Reader(yamlData, filename)); - } - - /** - Test tokens output by scanner. - - Params: - dataFilename = File to scan. - tokensFilename = File containing expected tokens. - */ - static void testTokens(string dataFilename, string tokensFilename) @safe - { - //representations of YAML tokens in tokens file. - auto replace = [ - TokenID.directive: "%", - TokenID.documentStart: "---", - TokenID.documentEnd: "...", - TokenID.alias_: "*", - TokenID.anchor: "&", - TokenID.tag: "!", - TokenID.scalar: "_", - TokenID.blockSequenceStart: "[[", - TokenID.blockMappingStart: "{{", - TokenID.blockEnd: "]}", - TokenID.flowSequenceStart: "[", - TokenID.flowSequenceEnd: "]", - TokenID.flowMappingStart: "{", - TokenID.flowMappingEnd: "}", - TokenID.blockEntry: ",", - TokenID.flowEntry: ",", - TokenID.key: "?", - TokenID.value: ":" - ]; - - string[] tokens; - string[] expectedTokens = readText(tokensFilename).split(); - - foreach (token; scanTestCommon(dataFilename)) - { - if (token.id != TokenID.streamStart && token.id != TokenID.streamEnd) - { - tokens ~= replace[token.id]; - } - } - - assert(tokens == expectedTokens, - text("In token test for '", tokensFilename, "', expected '", expectedTokens, "', got '", tokens, "'")); - } - - /** - Test scanner by scanning a file, expecting no errors. - - Params: - dataFilename = File to scan. - canonicalFilename = Another file to scan, in canonical YAML format. - */ - static void testScanner(string dataFilename, string canonicalFilename) @safe - { - foreach (filename; [dataFilename, canonicalFilename]) - { - string[] tokens; - foreach (token; scanTestCommon(filename)) - { - tokens ~= token.id.text; - } - } - } - run(&testTokens, ["data", "tokens"]); - run(&testScanner, ["data", "canonical"]); -} diff --git a/test/a-nasty-libyaml-bug.yaml b/test/a-nasty-libyaml-bug.yaml new file mode 100644 index 00000000..bd19e881 --- /dev/null +++ b/test/a-nasty-libyaml-bug.yaml @@ -0,0 +1,9 @@ +%YAML 1.1 +--- +- name: a-nasty-libyaml-bug + fail: true + mark: { line: 1, column: 4 } + mark2: { line: 1, column: 4 } + error: "While parsing a flow node, expected node content, but found: streamEnd" + yaml: |- + [ [ diff --git a/test/bmpchars.yaml b/test/bmpchars.yaml new file mode 100644 index 00000000..ab0a755a --- /dev/null +++ b/test/bmpchars.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: bmpchars + yaml: "a: \U00012157" + tree: | + +STR + +DOC + +MAP + =VAL :a + =VAL :𒅗 + -MAP + -DOC + -STR +- name: bmpchars-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "a" + : !!str "\U00012157" + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "a + =VAL "𒅗 + -MAP + -DOC + -STR diff --git a/test/colon-in-flow-context.yaml b/test/colon-in-flow-context.yaml new file mode 100644 index 00000000..78318b53 --- /dev/null +++ b/test/colon-in-flow-context.yaml @@ -0,0 +1,14 @@ +%YAML 1.1 +--- +- name: colon-in-flow-context + yaml: | + { foo:bar } + tree: | + +STR + +DOC + +MAP {} + =VAL :foo:bar + =VAL : + -MAP + -DOC + -STR diff --git a/test/composer.yaml b/test/composer.yaml new file mode 100644 index 00000000..c7cd1d74 --- /dev/null +++ b/test/composer.yaml @@ -0,0 +1,171 @@ +%YAML 1.1 +--- +- name: bool + tags: dyaml composer + detect: | + tag:yaml.org,2002:bool + tree: | + +STR + +DOC + +SEQ + =VAL :yes + =VAL :NO + =VAL :True + =VAL :on + -SEQ + -DOC + -STR + yaml: | + - yes + - NO + - True + - on +- name: float + tags: dyaml composer + detect: | + tag:yaml.org,2002:float + tree: | + +STR + +DOC + +SEQ + =VAL :6.8523015e+5 + =VAL :685.230_15e+03 + =VAL :685_230.15 + =VAL :190:20:30.15 + =VAL :-.inf + =VAL :.NaN + -SEQ + -DOC + -STR + yaml: | + - 6.8523015e+5 + - 685.230_15e+03 + - 685_230.15 + - 190:20:30.15 + - -.inf + - .NaN +- name: int + tags: dyaml composer + detect: | + tag:yaml.org,2002:int + tree: | + +STR + +DOC + +SEQ + =VAL :685230 + =VAL :+685_230 + =VAL :02472256 + =VAL :0x_0A_74_AE + =VAL :0b1010_0111_0100_1010_1110 + =VAL :190:20:30 + -SEQ + -DOC + -STR + yaml: | + - 685230 + - +685_230 + - 02472256 + - 0x_0A_74_AE + - 0b1010_0111_0100_1010_1110 + - 190:20:30 +- name: merge + tags: dyaml composer + detect: | + tag:yaml.org,2002:merge + tree: | + +STR + +DOC + +SEQ + =VAL :<< + -SEQ + -DOC + -STR + yaml: | + - << +- name: "null" + tags: dyaml composer + detect: | + tag:yaml.org,2002:null + tree: | + +STR + +DOC + +SEQ + =VAL : + =VAL :~ + =VAL :null + -SEQ + -DOC + -STR + yaml: | + - + - ~ + - null +- name: str + tags: dyaml composer + detect: | + tag:yaml.org,2002:str + tree: | + +STR + +DOC + +SEQ + =VAL :abcd + =VAL :9a8b + =VAL :9.1adsf + -SEQ + -DOC + -STR + yaml: | + - abcd + - 9a8b + - 9.1adsf +- name: timestamp + tags: dyaml composer + detect: | + tag:yaml.org,2002:timestamp + tree: | + +STR + +DOC + +SEQ + =VAL :2001-12-15T02:59:43.1Z + =VAL :2001-12-14t21:59:43.10-05:00 + =VAL :2001-12-14 21:59:43.10 -5 + =VAL :2001-12-15 2:59:43.10 + =VAL :2002-12-14 + -SEQ + -DOC + -STR + yaml: | + - 2001-12-15T02:59:43.1Z + - 2001-12-14t21:59:43.10-05:00 + - 2001-12-14 21:59:43.10 -5 + - 2001-12-15 2:59:43.10 + - 2002-12-14 +- name: uri + tags: dyaml composer + detect: "tag:example.com,2000:app/tag\U0001F914\n" + tree: | + +STR + +DOC --- + +SEQ + =VAL :baz + -SEQ + -DOC + -STR + yaml: | + %TAG !e! tag:example.com,2000:app/ + --- + - !e!tag%F0%9F%A4%94 baz +- name: value + tags: dyaml composer + detect: | + tag:yaml.org,2002:value + tree: | + +STR + +DOC + +SEQ + =VAL := + -SEQ + -DOC + -STR + yaml: | + - = diff --git a/test/construct.yaml b/test/construct.yaml new file mode 100644 index 00000000..21afd421 --- /dev/null +++ b/test/construct.yaml @@ -0,0 +1,775 @@ +%YAML 1.1 +--- +- name: construct-binary + tags: dyaml construct + code: construct-binary + tree: | + +STR + +DOC + +MAP + =VAL :canonical + =VAL "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLCAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= + =VAL :generic + =VAL |R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\nOTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\n+f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\nAgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=\n + =VAL :description + =VAL :The binary value above is a tiny arrow encoded as a gif image. + -MAP + -DOC + -STR + yaml: | + canonical: !!binary "\ + R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\ + OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\ + +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\ + AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=" + generic: !!binary | + R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5 + OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+ + +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC + AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= + description: + The binary value above is a tiny arrow encoded as a gif image. +- name: construct-bool + tags: dyaml construct + code: construct-bool + tree: | + +STR + +DOC + +MAP + =VAL :canonical + =VAL :yes + =VAL :answer + =VAL :NO + =VAL :logical + =VAL :True + =VAL :option + =VAL :on + =VAL :constbool + =VAL :on + =VAL :imutbool + =VAL :on + =VAL :const_bool + =VAL :on + =VAL :imut_bool + =VAL :on + =VAL :but + +MAP + =VAL :y + =VAL :is a string + =VAL :n + =VAL :is a string + -MAP + -MAP + -DOC + -STR + yaml: | + canonical: yes + answer: NO + logical: True + option: on + constbool: on + imutbool: on + const_bool: on + imut_bool: on + + + but: + y: is a string + n: is a string +- name: construct-custom + tags: dyaml construct + code: construct-custom + tree: | + +STR + +DOC --- + +SEQ + +MAP + =VAL :x + =VAL :1 + =VAL 'y + =VAL :2 + =VAL :z + =VAL :3 + -MAP + =VAL :10 + -SEQ + -DOC + -STR + yaml: | + --- + - !tag1 + x: 1 + 'y': 2 + z: 3 + - !tag2 + 10 +- name: construct-float + tags: dyaml construct + code: construct-float + tree: | + +STR + +DOC + +MAP + =VAL :canonical + =VAL :6.8523015e+5 + =VAL :exponential + =VAL :685.230_15e+03 + =VAL :fixed + =VAL :685_230.15 + =VAL :sexagesimal + =VAL :190:20:30.15 + =VAL :negative infinity + =VAL :-.inf + =VAL :not a number + =VAL :.NaN + -MAP + -DOC + -STR + yaml: | + canonical: 6.8523015e+5 + exponential: 685.230_15e+03 + fixed: 685_230.15 + sexagesimal: 190:20:30.15 + negative infinity: -.inf + not a number: .NaN +- name: construct-int + tags: dyaml construct + code: construct-int + tree: | + +STR + +DOC + +MAP + =VAL :canonical + =VAL :685230 + =VAL :decimal + =VAL :+685_230 + =VAL :octal + =VAL :02472256 + =VAL :hexadecimal + =VAL :0x_0A_74_AE + =VAL :binary + =VAL :0b1010_0111_0100_1010_1110 + =VAL :sexagesimal + =VAL :190:20:30 + -MAP + -DOC + -STR + yaml: | + canonical: 685230 + decimal: +685_230 + octal: 02472256 + hexadecimal: 0x_0A_74_AE + binary: 0b1010_0111_0100_1010_1110 + sexagesimal: 190:20:30 +- name: construct-map + tags: dyaml construct + code: construct-map + tree: | + +STR + +DOC + +MAP + =VAL :Block style + +MAP + =VAL :Clark + =VAL :Evans + =VAL :Brian + =VAL :Ingerson + =VAL :Oren + =VAL :Ben-Kiki + -MAP + =VAL :Flow style + +MAP {} + =VAL :Clark + =VAL :Evans + =VAL :Brian + =VAL :Ingerson + =VAL :Oren + =VAL :Ben-Kiki + -MAP + -MAP + -DOC + -STR + yaml: | + # Unordered set of key: value pairs. + Block style: !!map + Clark : Evans + Brian : Ingerson + Oren : Ben-Kiki + Flow style: !!map { Clark: Evans, Brian: Ingerson, Oren: Ben-Kiki } +- name: construct-merge + tags: dyaml construct + code: construct-merge + tree: | + +STR + +DOC --- + +SEQ + +MAP {} &CENTER + =VAL :x + =VAL :1 + =VAL 'y + =VAL :2 + -MAP + +MAP {} &LEFT + =VAL :x + =VAL :0 + =VAL 'y + =VAL :2 + -MAP + +MAP {} &BIG + =VAL :r + =VAL :10 + -MAP + +MAP {} &SMALL + =VAL :r + =VAL :1 + -MAP + +MAP + =VAL :x + =VAL :1 + =VAL 'y + =VAL :2 + =VAL :r + =VAL :10 + =VAL :label + =VAL :center/big + -MAP + +MAP + =VAL :<< + =ALI *CENTER + =VAL :r + =VAL :10 + =VAL :label + =VAL :center/big + -MAP + +MAP + =VAL :<< + +SEQ [] + =ALI *CENTER + =ALI *BIG + -SEQ + =VAL :label + =VAL :center/big + -MAP + +MAP + =VAL :<< + +SEQ [] + =ALI *BIG + =ALI *LEFT + =ALI *SMALL + -SEQ + =VAL :x + =VAL :1 + =VAL :label + =VAL :center/big + -MAP + -SEQ + -DOC + -STR + yaml: | + --- + - &CENTER { x: 1, 'y': 2 } + - &LEFT { x: 0, 'y': 2 } + - &BIG { r: 10 } + - &SMALL { r: 1 } + + # All the following maps are equal: + + - # Explicit keys + x: 1 + 'y': 2 + r: 10 + label: center/big + + - # Merge one map + << : *CENTER + r: 10 + label: center/big + + - # Merge multiple maps + << : [ *CENTER, *BIG ] + label: center/big + + - # Override + << : [ *BIG, *LEFT, *SMALL ] + x: 1 + label: center/big +- name: construct-null + tags: dyaml construct + code: construct-null + tree: | + +STR + +DOC --- + =VAL : + -DOC + +DOC --- + +MAP + =VAL :empty + =VAL : + =VAL :canonical + =VAL :~ + =VAL :english + =VAL :null + =VAL :~ + =VAL :null key + -MAP + -DOC + +DOC --- + +MAP + =VAL :sparse + +SEQ + =VAL :~ + =VAL :2nd entry + =VAL : + =VAL :4th entry + =VAL :Null + -SEQ + -MAP + -DOC + -STR + yaml: | + # A document may be null. + --- + --- + # This mapping has four keys, + # one has a value. + empty: + canonical: ~ + english: null + ~: null key + --- + # This sequence has five + # entries, two have values. + sparse: + - ~ + - 2nd entry + - + - 4th entry + - Null +- name: construct-omap + tags: dyaml construct + code: construct-omap + tree: | + +STR + +DOC + +MAP + =VAL :Bestiary + +SEQ + +MAP + =VAL :aardvark + =VAL :African pig-like ant eater. Ugly. + -MAP + +MAP + =VAL :anteater + =VAL :South-American ant eater. Two species. + -MAP + +MAP + =VAL :anaconda + =VAL :South-American constrictor snake. Scaly. + -MAP + -SEQ + =VAL :Numbers + +SEQ [] + +MAP {} + =VAL :one + =VAL :1 + -MAP + +MAP {} + =VAL :two + =VAL :2 + -MAP + +MAP {} + =VAL :three + =VAL :3 + -MAP + -SEQ + -MAP + -DOC + -STR + yaml: | + # Explicitly typed ordered map (dictionary). + Bestiary: !!omap + - aardvark: African pig-like ant eater. Ugly. + - anteater: South-American ant eater. Two species. + - anaconda: South-American constrictor snake. Scaly. + # Etc. + # Flow style + Numbers: !!omap [ one: 1, two: 2, three : 3 ] +- name: construct-pairs + tags: dyaml construct + code: construct-pairs + tree: | + +STR + +DOC + +MAP + =VAL :Block tasks + +SEQ + +MAP + =VAL :meeting + =VAL :with team. + -MAP + +MAP + =VAL :meeting + =VAL :with boss. + -MAP + +MAP + =VAL :break + =VAL :lunch. + -MAP + +MAP + =VAL :meeting + =VAL :with client. + -MAP + -SEQ + =VAL :Flow tasks + +SEQ [] + +MAP {} + =VAL :meeting + =VAL :with team + -MAP + +MAP {} + =VAL :meeting + =VAL :with boss + -MAP + -SEQ + -MAP + -DOC + -STR + yaml: | + # Explicitly typed pairs. + Block tasks: !!pairs + - meeting: with team. + - meeting: with boss. + - break: lunch. + - meeting: with client. + Flow tasks: !!pairs [ meeting: with team, meeting: with boss ] +- name: construct-seq + tags: dyaml construct + code: construct-seq + tree: | + +STR + +DOC + +MAP + =VAL :Block style + +SEQ + =VAL :Mercury + =VAL :Venus + =VAL :Earth + =VAL :Mars + =VAL :Jupiter + =VAL :Saturn + =VAL :Uranus + =VAL :Neptune + =VAL :Pluto + -SEQ + =VAL :Flow style + +SEQ [] + =VAL :Mercury + =VAL :Venus + =VAL :Earth + =VAL :Mars + =VAL :Jupiter + =VAL :Saturn + =VAL :Uranus + =VAL :Neptune + =VAL :Pluto + -SEQ + -MAP + -DOC + -STR + yaml: |+ + # Ordered sequence of nodes + Block style: !!seq + - Mercury # Rotates - no light/dark sides. + - Venus # Deadliest. Aptly named. + - Earth # Mostly dirt. + - Mars # Seems empty. + - Jupiter # The king. + - Saturn # Pretty. + - Uranus # Where the sun hardly shines. + - Neptune # Boring. No rings. + - Pluto # You call this a planet? + Flow style: !!seq [ Mercury, Venus, Earth, Mars, # Rocks + Jupiter, Saturn, Uranus, Neptune, # Gas + Pluto ] # Overrated + +- name: construct-set + tags: dyaml construct + code: construct-set + tree: | + +STR + +DOC + +MAP + =VAL :baseball players + +MAP + =VAL :Mark McGwire + =VAL : + =VAL :Sammy Sosa + =VAL : + =VAL :Ken Griffey + =VAL : + -MAP + =VAL :baseball teams + +MAP {} + =VAL :Boston Red Sox + =VAL : + =VAL :Detroit Tigers + =VAL : + =VAL :New York Yankees + =VAL : + -MAP + -MAP + -DOC + -STR + yaml: | + # Explicitly typed set. + baseball players: !!set + ? Mark McGwire + ? Sammy Sosa + ? Ken Griffey + # Flow style + baseball teams: !!set { Boston Red Sox, Detroit Tigers, New York Yankees } +- name: construct-str-ascii + tags: dyaml construct + code: construct-str-ascii + tree: | + +STR + +DOC --- + =VAL "ascii string + -DOC + -STR + yaml: | + --- !!str "ascii string" +- name: construct-str-utf8 + tags: dyaml construct + code: construct-str-utf8 + tree: | + +STR + +DOC --- + =VAL "Это уникодная строка + -DOC + -STR + yaml: | + --- !!str "Это уникодная строка" +- name: construct-str + tags: dyaml construct + code: construct-str + tree: | + +STR + +DOC + +MAP + =VAL :string + =VAL :abcd + -MAP + -DOC + -STR + yaml: | + string: abcd +- name: construct-timestamp + tags: dyaml construct + code: construct-timestamp + tree: | + +STR + +DOC + +MAP + =VAL :canonical + =VAL :2001-12-15T02:59:43.1Z + =VAL :valid iso8601 + =VAL :2001-12-14t21:59:43.1-05:00 + =VAL :space separated + =VAL :2001-12-14 21:59:43.1 -5 + =VAL :no time zone (Z) + =VAL :2001-12-15 2:59:43.1 + =VAL :date (00:00:00Z) + =VAL :2002-12-14 + -MAP + -DOC + -STR + yaml: | + canonical: 2001-12-15T02:59:43.1Z + valid iso8601: 2001-12-14t21:59:43.1-05:00 + space separated: 2001-12-14 21:59:43.1 -5 + no time zone (Z): 2001-12-15 2:59:43.1 + date (00:00:00Z): 2002-12-14 +- name: construct-value + tags: dyaml construct + code: construct-value + tree: | + +STR + +DOC --- + +MAP + =VAL :link with + +SEQ + =VAL :library1.dll + =VAL :library2.dll + -SEQ + -MAP + -DOC + +DOC --- + +MAP + =VAL :link with + +SEQ + +MAP + =VAL := + =VAL :library1.dll + =VAL :version + =VAL :1.2 + -MAP + +MAP + =VAL := + =VAL :library2.dll + =VAL :version + =VAL :2.3 + -MAP + -SEQ + -MAP + -DOC + -STR + yaml: | + --- # Old schema + link with: + - library1.dll + - library2.dll + --- # New schema + link with: + - = : library1.dll + version: 1.2 + - = : library2.dll + version: 2.3 +- name: more-floats + code: more-floats + tree: | + +STR + +DOC + +SEQ [] + =VAL :0.0 + =VAL :+1.0 + =VAL :-1.0 + =VAL :+.inf + =VAL :-.inf + =VAL :.nan + =VAL :.nan + -SEQ + -DOC + -STR + yaml: | + [0.0, +1.0, -1.0, +.inf, -.inf, .nan, .nan] +- name: invalid-single-quote-bug + code: invalid-single-quote-bug + yaml: | + - "foo 'bar'" + - "foo\n'bar'" +- name: duplicate-merge-key + code: duplicate-merge-key + tree: | + +STR + +DOC --- + +MAP + =VAL :<< + +MAP {} + =VAL :x + =VAL :1 + =VAL :y + =VAL :2 + -MAP + =VAL :foo + =VAL :bar + =VAL :<< + +MAP {} + =VAL :z + =VAL :3 + =VAL :t + =VAL :4 + -MAP + -MAP + -DOC + -STR + yaml: | + --- + <<: {x: 1, y: 2} + foo: bar + <<: {z: 3, t: 4} +- name: float-representer-2.3-bug + code: float-representer-2.3-bug + tree: | + +STR + +DOC + +MAP + =VAL :1.0 + =VAL :1 + =VAL :+.inf + =VAL :10 + =VAL :-.inf + =VAL :-10 + =VAL :.nan + =VAL :100 + -MAP + -DOC + -STR + yaml: | + #0.0: # hash(0) == hash(nan) and 0 == nan in Python 2.3 + 1.0: 1 + +.inf: 10 + -.inf: -10 + .nan: 100 +- name: single-dot-is-not-float-bug + code: single-dot-is-not-float-bug + tree: | + +STR + +DOC + =VAL :. + -DOC + -STR + yaml: | + . +- name: negative-float-bug + code: negative-float-bug + tree: | + +STR + +DOC + =VAL :-1.0 + -DOC + -STR + yaml: | + -1.0 +- name: timestamp-bugs + code: timestamp-bugs + tree: | + +STR + +DOC + +SEQ + =VAL :2001-12-14 21:59:43.1 -5:30 + =VAL :2001-12-14 21:59:43.1 +5:30 + =VAL :2001-12-14 21:59:43.00101 + =VAL :2001-12-14 21:59:43+1 + =VAL :2001-12-14 21:59:43-1:30 + =VAL :2005-07-08 17:35:04.517600 + -SEQ + -DOC + -STR + yaml: | + - 2001-12-14 21:59:43.1 -5:30 + - 2001-12-14 21:59:43.1 +5:30 + - 2001-12-14 21:59:43.00101 + - 2001-12-14 21:59:43+1 + - 2001-12-14 21:59:43-1:30 + - 2005-07-08 17:35:04.517600 +- name: utf8-implicit + code: utf8-implicit + tree: | + +STR + +DOC --- + =VAL :implicit UTF-8 + -DOC + -STR + yaml: | + --- implicit UTF-8 +- name: utf8 + code: utf8 + tree: | + +STR + +DOC --- + =VAL :UTF-8 + -DOC + -STR + yaml: | + --- UTF-8 diff --git a/test/data/a-nasty-libyaml-bug.loader-error b/test/data/a-nasty-libyaml-bug.loader-error deleted file mode 100644 index f97d49f8..00000000 --- a/test/data/a-nasty-libyaml-bug.loader-error +++ /dev/null @@ -1 +0,0 @@ -[ [ \ No newline at end of file diff --git a/test/data/aliases-cdumper-bug.code b/test/data/aliases-cdumper-bug.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/aliases-cdumper-bug.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/aliases.events b/test/data/aliases.events deleted file mode 100644 index 9139b515..00000000 --- a/test/data/aliases.events +++ /dev/null @@ -1,8 +0,0 @@ -- !StreamStart -- !DocumentStart -- !SequenceStart -- !Scalar { anchor: 'myanchor', tag: '!mytag', value: 'data' } -- !Alias { anchor: 'myanchor' } -- !SequenceEnd -- !DocumentEnd -- !StreamEnd diff --git a/test/data/bmpchars.canonical b/test/data/bmpchars.canonical deleted file mode 100644 index 9b77b57f..00000000 --- a/test/data/bmpchars.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "a" - : !!str "𒅗" -} diff --git a/test/data/bmpchars.data b/test/data/bmpchars.data deleted file mode 100644 index 28e948e5..00000000 --- a/test/data/bmpchars.data +++ /dev/null @@ -1 +0,0 @@ -a: 𒅗 \ No newline at end of file diff --git a/test/data/bool.data b/test/data/bool.data deleted file mode 100644 index 0988b631..00000000 --- a/test/data/bool.data +++ /dev/null @@ -1,4 +0,0 @@ -- yes -- NO -- True -- on diff --git a/test/data/bool.detect b/test/data/bool.detect deleted file mode 100644 index 947ebbb9..00000000 --- a/test/data/bool.detect +++ /dev/null @@ -1 +0,0 @@ -tag:yaml.org,2002:bool diff --git a/test/data/colon-in-flow-context.canonical b/test/data/colon-in-flow-context.canonical deleted file mode 100644 index 6c841574..00000000 --- a/test/data/colon-in-flow-context.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -"foo:bar": diff --git a/test/data/colon-in-flow-context.data b/test/data/colon-in-flow-context.data deleted file mode 100644 index 95aa36c4..00000000 --- a/test/data/colon-in-flow-context.data +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -{ foo:bar } diff --git a/test/data/construct-binary.code b/test/data/construct-binary.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-binary.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-binary.data b/test/data/construct-binary.data deleted file mode 100644 index dcdb16f3..00000000 --- a/test/data/construct-binary.data +++ /dev/null @@ -1,12 +0,0 @@ -canonical: !!binary "\ - R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\ - OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\ - +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\ - AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=" -generic: !!binary | - R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5 - OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+ - +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC - AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= -description: - The binary value above is a tiny arrow encoded as a gif image. diff --git a/test/data/construct-bool.code b/test/data/construct-bool.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-bool.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-bool.data b/test/data/construct-bool.data deleted file mode 100644 index 4c0b7571..00000000 --- a/test/data/construct-bool.data +++ /dev/null @@ -1,13 +0,0 @@ -canonical: yes -answer: NO -logical: True -option: on -constbool: on -imutbool: on -const_bool: on -imut_bool: on - - -but: - y: is a string - n: is a string diff --git a/test/data/construct-custom.code b/test/data/construct-custom.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-custom.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-custom.data b/test/data/construct-custom.data deleted file mode 100644 index f17e4ed8..00000000 --- a/test/data/construct-custom.data +++ /dev/null @@ -1,7 +0,0 @@ ---- -- !tag1 - x: 1 - 'y': 2 - z: 3 -- !tag2 - 10 diff --git a/test/data/construct-float.code b/test/data/construct-float.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-float.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-float.data b/test/data/construct-float.data deleted file mode 100644 index b662c623..00000000 --- a/test/data/construct-float.data +++ /dev/null @@ -1,6 +0,0 @@ -canonical: 6.8523015e+5 -exponential: 685.230_15e+03 -fixed: 685_230.15 -sexagesimal: 190:20:30.15 -negative infinity: -.inf -not a number: .NaN diff --git a/test/data/construct-int.code b/test/data/construct-int.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-int.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-int.data b/test/data/construct-int.data deleted file mode 100644 index 852c3148..00000000 --- a/test/data/construct-int.data +++ /dev/null @@ -1,6 +0,0 @@ -canonical: 685230 -decimal: +685_230 -octal: 02472256 -hexadecimal: 0x_0A_74_AE -binary: 0b1010_0111_0100_1010_1110 -sexagesimal: 190:20:30 diff --git a/test/data/construct-map.code b/test/data/construct-map.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-map.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-map.data b/test/data/construct-map.data deleted file mode 100644 index 022446df..00000000 --- a/test/data/construct-map.data +++ /dev/null @@ -1,6 +0,0 @@ -# Unordered set of key: value pairs. -Block style: !!map - Clark : Evans - Brian : Ingerson - Oren : Ben-Kiki -Flow style: !!map { Clark: Evans, Brian: Ingerson, Oren: Ben-Kiki } diff --git a/test/data/construct-merge.code b/test/data/construct-merge.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-merge.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-merge.data b/test/data/construct-merge.data deleted file mode 100644 index 3fdb2e20..00000000 --- a/test/data/construct-merge.data +++ /dev/null @@ -1,27 +0,0 @@ ---- -- &CENTER { x: 1, 'y': 2 } -- &LEFT { x: 0, 'y': 2 } -- &BIG { r: 10 } -- &SMALL { r: 1 } - -# All the following maps are equal: - -- # Explicit keys - x: 1 - 'y': 2 - r: 10 - label: center/big - -- # Merge one map - << : *CENTER - r: 10 - label: center/big - -- # Merge multiple maps - << : [ *CENTER, *BIG ] - label: center/big - -- # Override - << : [ *BIG, *LEFT, *SMALL ] - x: 1 - label: center/big diff --git a/test/data/construct-null.code b/test/data/construct-null.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-null.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-null.data b/test/data/construct-null.data deleted file mode 100644 index 9ad0344c..00000000 --- a/test/data/construct-null.data +++ /dev/null @@ -1,18 +0,0 @@ -# A document may be null. ---- ---- -# This mapping has four keys, -# one has a value. -empty: -canonical: ~ -english: null -~: null key ---- -# This sequence has five -# entries, two have values. -sparse: - - ~ - - 2nd entry - - - - 4th entry - - Null diff --git a/test/data/construct-omap.code b/test/data/construct-omap.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-omap.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-omap.data b/test/data/construct-omap.data deleted file mode 100644 index 4fa0f45f..00000000 --- a/test/data/construct-omap.data +++ /dev/null @@ -1,8 +0,0 @@ -# Explicitly typed ordered map (dictionary). -Bestiary: !!omap - - aardvark: African pig-like ant eater. Ugly. - - anteater: South-American ant eater. Two species. - - anaconda: South-American constrictor snake. Scaly. - # Etc. -# Flow style -Numbers: !!omap [ one: 1, two: 2, three : 3 ] diff --git a/test/data/construct-pairs.code b/test/data/construct-pairs.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-pairs.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-pairs.data b/test/data/construct-pairs.data deleted file mode 100644 index 05f55b94..00000000 --- a/test/data/construct-pairs.data +++ /dev/null @@ -1,7 +0,0 @@ -# Explicitly typed pairs. -Block tasks: !!pairs - - meeting: with team. - - meeting: with boss. - - break: lunch. - - meeting: with client. -Flow tasks: !!pairs [ meeting: with team, meeting: with boss ] diff --git a/test/data/construct-seq.code b/test/data/construct-seq.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-seq.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-seq.data b/test/data/construct-seq.data deleted file mode 100644 index bb92fd11..00000000 --- a/test/data/construct-seq.data +++ /dev/null @@ -1,15 +0,0 @@ -# Ordered sequence of nodes -Block style: !!seq -- Mercury # Rotates - no light/dark sides. -- Venus # Deadliest. Aptly named. -- Earth # Mostly dirt. -- Mars # Seems empty. -- Jupiter # The king. -- Saturn # Pretty. -- Uranus # Where the sun hardly shines. -- Neptune # Boring. No rings. -- Pluto # You call this a planet? -Flow style: !!seq [ Mercury, Venus, Earth, Mars, # Rocks - Jupiter, Saturn, Uranus, Neptune, # Gas - Pluto ] # Overrated - diff --git a/test/data/construct-set.code b/test/data/construct-set.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-set.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-set.data b/test/data/construct-set.data deleted file mode 100644 index e05dc885..00000000 --- a/test/data/construct-set.data +++ /dev/null @@ -1,7 +0,0 @@ -# Explicitly typed set. -baseball players: !!set - ? Mark McGwire - ? Sammy Sosa - ? Ken Griffey -# Flow style -baseball teams: !!set { Boston Red Sox, Detroit Tigers, New York Yankees } diff --git a/test/data/construct-str-ascii.code b/test/data/construct-str-ascii.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-str-ascii.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-str-ascii.data b/test/data/construct-str-ascii.data deleted file mode 100644 index 0d93013b..00000000 --- a/test/data/construct-str-ascii.data +++ /dev/null @@ -1 +0,0 @@ ---- !!str "ascii string" diff --git a/test/data/construct-str-utf8.code b/test/data/construct-str-utf8.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-str-utf8.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-str-utf8.data b/test/data/construct-str-utf8.data deleted file mode 100644 index e355f184..00000000 --- a/test/data/construct-str-utf8.data +++ /dev/null @@ -1 +0,0 @@ ---- !!str "Это уникодная строка" diff --git a/test/data/construct-str.code b/test/data/construct-str.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-str.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-str.data b/test/data/construct-str.data deleted file mode 100644 index 606ac6b2..00000000 --- a/test/data/construct-str.data +++ /dev/null @@ -1 +0,0 @@ -string: abcd diff --git a/test/data/construct-timestamp.code b/test/data/construct-timestamp.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-timestamp.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-timestamp.data b/test/data/construct-timestamp.data deleted file mode 100644 index 840273b1..00000000 --- a/test/data/construct-timestamp.data +++ /dev/null @@ -1,5 +0,0 @@ -canonical: 2001-12-15T02:59:43.1Z -valid iso8601: 2001-12-14t21:59:43.1-05:00 -space separated: 2001-12-14 21:59:43.1 -5 -no time zone (Z): 2001-12-15 2:59:43.1 -date (00:00:00Z): 2002-12-14 diff --git a/test/data/construct-value.code b/test/data/construct-value.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/construct-value.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/construct-value.data b/test/data/construct-value.data deleted file mode 100644 index 3eb79198..00000000 --- a/test/data/construct-value.data +++ /dev/null @@ -1,10 +0,0 @@ ---- # Old schema -link with: - - library1.dll - - library2.dll ---- # New schema -link with: - - = : library1.dll - version: 1.2 - - = : library2.dll - version: 2.3 diff --git a/test/data/document-separator-in-quoted-scalar.loader-error b/test/data/document-separator-in-quoted-scalar.loader-error deleted file mode 100644 index 9eeb0d6f..00000000 --- a/test/data/document-separator-in-quoted-scalar.loader-error +++ /dev/null @@ -1,11 +0,0 @@ ---- -"this --- is correct" ---- -"this -...is also -correct" ---- -"a quoted scalar -cannot contain ---- -document separators" diff --git a/test/data/documents.events b/test/data/documents.events deleted file mode 100644 index 775a51a7..00000000 --- a/test/data/documents.events +++ /dev/null @@ -1,11 +0,0 @@ -- !StreamStart -- !DocumentStart { explicit: false } -- !Scalar { implicit: [true,false], value: 'data' } -- !DocumentEnd -- !DocumentStart -- !Scalar { implicit: [true,false] } -- !DocumentEnd -- !DocumentStart { version: [1,1], tags: { '!': '!foo', '!yaml!': 'tag:yaml.org,2002:', '!ugly!': '!!!!!!!' } } -- !Scalar { implicit: [true,false] } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/duplicate-anchor-1.loader-error b/test/data/duplicate-anchor-1.loader-error deleted file mode 100644 index 906cf29d..00000000 --- a/test/data/duplicate-anchor-1.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -- &foo bar -- &bar bar -- &foo bar diff --git a/test/data/duplicate-anchor-2.loader-error b/test/data/duplicate-anchor-2.loader-error deleted file mode 100644 index 62b43897..00000000 --- a/test/data/duplicate-anchor-2.loader-error +++ /dev/null @@ -1 +0,0 @@ -&foo [1, 2, 3, &foo 4] diff --git a/test/data/duplicate-mapping-key.loader-error b/test/data/duplicate-mapping-key.loader-error deleted file mode 100644 index 55bce77b..00000000 --- a/test/data/duplicate-mapping-key.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -a: 1 -a: 2 \ No newline at end of file diff --git a/test/data/duplicate-merge-key.code b/test/data/duplicate-merge-key.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/duplicate-merge-key.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/duplicate-merge-key.data b/test/data/duplicate-merge-key.data deleted file mode 100644 index cebc3a18..00000000 --- a/test/data/duplicate-merge-key.data +++ /dev/null @@ -1,4 +0,0 @@ ---- -<<: {x: 1, y: 2} -foo: bar -<<: {z: 3, t: 4} diff --git a/test/data/duplicate-tag-directive.loader-error b/test/data/duplicate-tag-directive.loader-error deleted file mode 100644 index 50c81a06..00000000 --- a/test/data/duplicate-tag-directive.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -%TAG !foo! bar -%TAG !foo! baz ---- foo diff --git a/test/data/duplicate-yaml-directive.loader-error b/test/data/duplicate-yaml-directive.loader-error deleted file mode 100644 index 9b723905..00000000 --- a/test/data/duplicate-yaml-directive.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 -%YAML 1.1 ---- foo diff --git a/test/data/emit-block-scalar-in-simple-key-context-bug.canonical b/test/data/emit-block-scalar-in-simple-key-context-bug.canonical deleted file mode 100644 index 473bed5d..00000000 --- a/test/data/emit-block-scalar-in-simple-key-context-bug.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- !!map -{ - ? !!str "foo" - : !!str "bar" -} diff --git a/test/data/emit-block-scalar-in-simple-key-context-bug.data b/test/data/emit-block-scalar-in-simple-key-context-bug.data deleted file mode 100644 index b6b42ba5..00000000 --- a/test/data/emit-block-scalar-in-simple-key-context-bug.data +++ /dev/null @@ -1,4 +0,0 @@ -? |- - foo -: |- - bar diff --git a/test/data/emojianchor.canonical b/test/data/emojianchor.canonical deleted file mode 100644 index 8a710400..00000000 --- a/test/data/emojianchor.canonical +++ /dev/null @@ -1,5 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "unicode anchor" -] diff --git a/test/data/emojianchor.data b/test/data/emojianchor.data deleted file mode 100644 index 72c1c378..00000000 --- a/test/data/emojianchor.data +++ /dev/null @@ -1,2 +0,0 @@ ---- -- &😁 unicode anchor diff --git a/test/data/empty-anchor.emitter-error b/test/data/empty-anchor.emitter-error deleted file mode 100644 index ce663b63..00000000 --- a/test/data/empty-anchor.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart -- !Scalar { anchor: '', value: 'foo' } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/empty-document-bug.canonical b/test/data/empty-document-bug.canonical deleted file mode 100644 index 28a6cf13..00000000 --- a/test/data/empty-document-bug.canonical +++ /dev/null @@ -1 +0,0 @@ -# This YAML stream contains no YAML documents. diff --git a/test/data/empty-document-bug.data b/test/data/empty-document-bug.data deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/empty-document-bug.empty b/test/data/empty-document-bug.empty deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/empty-documents.single-loader-error b/test/data/empty-documents.single-loader-error deleted file mode 100644 index f8dba8d4..00000000 --- a/test/data/empty-documents.single-loader-error +++ /dev/null @@ -1,2 +0,0 @@ ---- # first document ---- # second document diff --git a/test/data/empty-tag-handle.emitter-error b/test/data/empty-tag-handle.emitter-error deleted file mode 100644 index 235c8998..00000000 --- a/test/data/empty-tag-handle.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart { tags: { '': 'bar' } } -- !Scalar { value: 'foo' } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/empty-tag-prefix.emitter-error b/test/data/empty-tag-prefix.emitter-error deleted file mode 100644 index c6c0e955..00000000 --- a/test/data/empty-tag-prefix.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart { tags: { '!': '' } } -- !Scalar { value: 'foo' } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/empty-tag.emitter-error b/test/data/empty-tag.emitter-error deleted file mode 100644 index b7ca5931..00000000 --- a/test/data/empty-tag.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart -- !Scalar { tag: '', value: 'key', implicit: [false,false] } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/expected-document-end.emitter-error b/test/data/expected-document-end.emitter-error deleted file mode 100644 index 0cbab899..00000000 --- a/test/data/expected-document-end.emitter-error +++ /dev/null @@ -1,6 +0,0 @@ -- !StreamStart -- !DocumentStart -- !Scalar { value: 'data 1' } -- !Scalar { value: 'data 2' } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/expected-document-start.emitter-error b/test/data/expected-document-start.emitter-error deleted file mode 100644 index 8ce575ec..00000000 --- a/test/data/expected-document-start.emitter-error +++ /dev/null @@ -1,4 +0,0 @@ -- !StreamStart -- !MappingStart -- !MappingEnd -- !StreamEnd diff --git a/test/data/expected-mapping.loader-error b/test/data/expected-mapping.loader-error deleted file mode 100644 index 82aed98a..00000000 --- a/test/data/expected-mapping.loader-error +++ /dev/null @@ -1 +0,0 @@ ---- !!map [not, a, map] diff --git a/test/data/expected-node-1.emitter-error b/test/data/expected-node-1.emitter-error deleted file mode 100644 index 36ceca3e..00000000 --- a/test/data/expected-node-1.emitter-error +++ /dev/null @@ -1,4 +0,0 @@ -- !StreamStart -- !DocumentStart -- !DocumentEnd -- !StreamEnd diff --git a/test/data/expected-node-2.emitter-error b/test/data/expected-node-2.emitter-error deleted file mode 100644 index 891ee370..00000000 --- a/test/data/expected-node-2.emitter-error +++ /dev/null @@ -1,7 +0,0 @@ -- !StreamStart -- !DocumentStart -- !MappingStart -- !Scalar { value: 'key' } -- !MappingEnd -- !DocumentEnd -- !StreamEnd diff --git a/test/data/expected-nothing.emitter-error b/test/data/expected-nothing.emitter-error deleted file mode 100644 index 62c54d3e..00000000 --- a/test/data/expected-nothing.emitter-error +++ /dev/null @@ -1,4 +0,0 @@ -- !StreamStart -- !StreamEnd -- !StreamStart -- !StreamEnd diff --git a/test/data/expected-scalar.loader-error b/test/data/expected-scalar.loader-error deleted file mode 100644 index 7b3171e8..00000000 --- a/test/data/expected-scalar.loader-error +++ /dev/null @@ -1 +0,0 @@ ---- !!str [not a scalar] diff --git a/test/data/expected-sequence.loader-error b/test/data/expected-sequence.loader-error deleted file mode 100644 index 08074ea5..00000000 --- a/test/data/expected-sequence.loader-error +++ /dev/null @@ -1 +0,0 @@ ---- !!seq {foo, bar, baz} diff --git a/test/data/expected-stream-start.emitter-error b/test/data/expected-stream-start.emitter-error deleted file mode 100644 index 480dc2eb..00000000 --- a/test/data/expected-stream-start.emitter-error +++ /dev/null @@ -1,2 +0,0 @@ -- !DocumentStart -- !DocumentEnd diff --git a/test/data/explicit-document.single-loader-error b/test/data/explicit-document.single-loader-error deleted file mode 100644 index 46c6f8b7..00000000 --- a/test/data/explicit-document.single-loader-error +++ /dev/null @@ -1,4 +0,0 @@ ---- -foo: bar ---- -foo: bar diff --git a/test/data/fetch-complex-value-bug.loader-error b/test/data/fetch-complex-value-bug.loader-error deleted file mode 100644 index 25fac24e..00000000 --- a/test/data/fetch-complex-value-bug.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -? "foo" - : "bar" diff --git a/test/data/float-representer-2.3-bug.code b/test/data/float-representer-2.3-bug.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/float-representer-2.3-bug.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/float-representer-2.3-bug.data b/test/data/float-representer-2.3-bug.data deleted file mode 100644 index efd17163..00000000 --- a/test/data/float-representer-2.3-bug.data +++ /dev/null @@ -1,5 +0,0 @@ -#0.0: # hash(0) == hash(nan) and 0 == nan in Python 2.3 -1.0: 1 -+.inf: 10 --.inf: -10 -.nan: 100 diff --git a/test/data/float.data b/test/data/float.data deleted file mode 100644 index 524d5db3..00000000 --- a/test/data/float.data +++ /dev/null @@ -1,6 +0,0 @@ -- 6.8523015e+5 -- 685.230_15e+03 -- 685_230.15 -- 190:20:30.15 -- -.inf -- .NaN diff --git a/test/data/float.detect b/test/data/float.detect deleted file mode 100644 index 1e12343b..00000000 --- a/test/data/float.detect +++ /dev/null @@ -1 +0,0 @@ -tag:yaml.org,2002:float diff --git a/test/data/forbidden-entry.loader-error b/test/data/forbidden-entry.loader-error deleted file mode 100644 index f2e30796..00000000 --- a/test/data/forbidden-entry.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -test: - foo - - bar diff --git a/test/data/forbidden-key.loader-error b/test/data/forbidden-key.loader-error deleted file mode 100644 index da9b471d..00000000 --- a/test/data/forbidden-key.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -test: ? foo - : bar diff --git a/test/data/forbidden-value.loader-error b/test/data/forbidden-value.loader-error deleted file mode 100644 index efd7ce58..00000000 --- a/test/data/forbidden-value.loader-error +++ /dev/null @@ -1 +0,0 @@ -test: key: value diff --git a/test/data/implicit-document.single-loader-error b/test/data/implicit-document.single-loader-error deleted file mode 100644 index f8c9a5c6..00000000 --- a/test/data/implicit-document.single-loader-error +++ /dev/null @@ -1,3 +0,0 @@ -foo: bar ---- -foo: bar diff --git a/test/data/int.data b/test/data/int.data deleted file mode 100644 index d44d3761..00000000 --- a/test/data/int.data +++ /dev/null @@ -1,6 +0,0 @@ -- 685230 -- +685_230 -- 02472256 -- 0x_0A_74_AE -- 0b1010_0111_0100_1010_1110 -- 190:20:30 diff --git a/test/data/int.detect b/test/data/int.detect deleted file mode 100644 index 575c9eb4..00000000 --- a/test/data/int.detect +++ /dev/null @@ -1 +0,0 @@ -tag:yaml.org,2002:int diff --git a/test/data/invalid-anchor.emitter-error b/test/data/invalid-anchor.emitter-error deleted file mode 100644 index 3d2a8148..00000000 --- a/test/data/invalid-anchor.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart -- !Scalar { anchor: '5*5=25', value: 'foo' } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/invalid-anchor.loader-error b/test/data/invalid-anchor.loader-error deleted file mode 100644 index bfc4ff01..00000000 --- a/test/data/invalid-anchor.loader-error +++ /dev/null @@ -1,8 +0,0 @@ ---- -- [ - &correct foo, - *correct, - *correct] # still correct -- *correct: still correct -- &correct-or-not[foo, bar] - diff --git a/test/data/invalid-base64-data-2.loader-error b/test/data/invalid-base64-data-2.loader-error deleted file mode 100644 index 2553a4f3..00000000 --- a/test/data/invalid-base64-data-2.loader-error +++ /dev/null @@ -1,2 +0,0 @@ ---- !!binary - двоичные данные в base64 diff --git a/test/data/invalid-base64-data.loader-error b/test/data/invalid-base64-data.loader-error deleted file mode 100644 index 798abbae..00000000 --- a/test/data/invalid-base64-data.loader-error +++ /dev/null @@ -1,2 +0,0 @@ ---- !!binary - binary data encoded in base64 should be here. diff --git a/test/data/invalid-block-scalar-indicator.loader-error b/test/data/invalid-block-scalar-indicator.loader-error deleted file mode 100644 index 16a6db18..00000000 --- a/test/data/invalid-block-scalar-indicator.loader-error +++ /dev/null @@ -1,2 +0,0 @@ ---- > what is this? # a comment -data diff --git a/test/data/invalid-character.loader-error b/test/data/invalid-character.loader-error deleted file mode 100644 index 03687b02..00000000 Binary files a/test/data/invalid-character.loader-error and /dev/null differ diff --git a/test/data/invalid-character.stream-error b/test/data/invalid-character.stream-error deleted file mode 100644 index 171facec..00000000 Binary files a/test/data/invalid-character.stream-error and /dev/null differ diff --git a/test/data/invalid-directive-line.loader-error b/test/data/invalid-directive-line.loader-error deleted file mode 100644 index 0892eb66..00000000 --- a/test/data/invalid-directive-line.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%YAML 1.1 ? # extra symbol ---- diff --git a/test/data/invalid-directive-name-1.loader-error b/test/data/invalid-directive-name-1.loader-error deleted file mode 100644 index 153fd889..00000000 --- a/test/data/invalid-directive-name-1.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -% # no name at all ---- diff --git a/test/data/invalid-directive-name-2.loader-error b/test/data/invalid-directive-name-2.loader-error deleted file mode 100644 index 3732a06a..00000000 --- a/test/data/invalid-directive-name-2.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%invalid-characters:in-directive name ---- diff --git a/test/data/invalid-escape-character.loader-error b/test/data/invalid-escape-character.loader-error deleted file mode 100644 index a95ab767..00000000 --- a/test/data/invalid-escape-character.loader-error +++ /dev/null @@ -1 +0,0 @@ -"some escape characters are \ncorrect, but this one \?\nis not\n" diff --git a/test/data/invalid-escape-numbers.loader-error b/test/data/invalid-escape-numbers.loader-error deleted file mode 100644 index 614ec9f5..00000000 --- a/test/data/invalid-escape-numbers.loader-error +++ /dev/null @@ -1 +0,0 @@ -"hm.... \u123?" diff --git a/test/data/invalid-indentation-indicator-1.loader-error b/test/data/invalid-indentation-indicator-1.loader-error deleted file mode 100644 index a3cd12f5..00000000 --- a/test/data/invalid-indentation-indicator-1.loader-error +++ /dev/null @@ -1,2 +0,0 @@ ---- >0 # not valid -data diff --git a/test/data/invalid-indentation-indicator-2.loader-error b/test/data/invalid-indentation-indicator-2.loader-error deleted file mode 100644 index eefb6ecd..00000000 --- a/test/data/invalid-indentation-indicator-2.loader-error +++ /dev/null @@ -1,2 +0,0 @@ ---- >-0 -data diff --git a/test/data/invalid-item-without-trailing-break.loader-error b/test/data/invalid-item-without-trailing-break.loader-error deleted file mode 100644 index fdcf6c6b..00000000 --- a/test/data/invalid-item-without-trailing-break.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -- --0 \ No newline at end of file diff --git a/test/data/invalid-merge-1.loader-error b/test/data/invalid-merge-1.loader-error deleted file mode 100644 index fc3c2844..00000000 --- a/test/data/invalid-merge-1.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -foo: bar -<<: baz diff --git a/test/data/invalid-merge-2.loader-error b/test/data/invalid-merge-2.loader-error deleted file mode 100644 index 8e88615c..00000000 --- a/test/data/invalid-merge-2.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -foo: bar -<<: [x: 1, y: 2, z, t: 4] diff --git a/test/data/invalid-omap-1.loader-error b/test/data/invalid-omap-1.loader-error deleted file mode 100644 index 28633926..00000000 --- a/test/data/invalid-omap-1.loader-error +++ /dev/null @@ -1,3 +0,0 @@ ---- !!omap -foo: bar -baz: bat diff --git a/test/data/invalid-omap-2.loader-error b/test/data/invalid-omap-2.loader-error deleted file mode 100644 index c377dfb8..00000000 --- a/test/data/invalid-omap-2.loader-error +++ /dev/null @@ -1,3 +0,0 @@ ---- !!omap -- foo: bar -- baz diff --git a/test/data/invalid-omap-3.loader-error b/test/data/invalid-omap-3.loader-error deleted file mode 100644 index 2a4f50d9..00000000 --- a/test/data/invalid-omap-3.loader-error +++ /dev/null @@ -1,4 +0,0 @@ ---- !!omap -- foo: bar -- baz: bar - bar: bar diff --git a/test/data/invalid-pairs-1.loader-error b/test/data/invalid-pairs-1.loader-error deleted file mode 100644 index 42d19aec..00000000 --- a/test/data/invalid-pairs-1.loader-error +++ /dev/null @@ -1,3 +0,0 @@ ---- !!pairs -foo: bar -baz: bat diff --git a/test/data/invalid-pairs-2.loader-error b/test/data/invalid-pairs-2.loader-error deleted file mode 100644 index 31389eae..00000000 --- a/test/data/invalid-pairs-2.loader-error +++ /dev/null @@ -1,3 +0,0 @@ ---- !!pairs -- foo: bar -- baz diff --git a/test/data/invalid-pairs-3.loader-error b/test/data/invalid-pairs-3.loader-error deleted file mode 100644 index f8d7704e..00000000 --- a/test/data/invalid-pairs-3.loader-error +++ /dev/null @@ -1,4 +0,0 @@ ---- !!pairs -- foo: bar -- baz: bar - bar: bar diff --git a/test/data/invalid-simple-key.loader-error b/test/data/invalid-simple-key.loader-error deleted file mode 100644 index a58deecf..00000000 --- a/test/data/invalid-simple-key.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -key: value -invalid simple key -next key: next value diff --git a/test/data/invalid-single-quote-bug.code b/test/data/invalid-single-quote-bug.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/invalid-single-quote-bug.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/invalid-single-quote-bug.data b/test/data/invalid-single-quote-bug.data deleted file mode 100644 index 76ef7ae3..00000000 --- a/test/data/invalid-single-quote-bug.data +++ /dev/null @@ -1,2 +0,0 @@ -- "foo 'bar'" -- "foo\n'bar'" diff --git a/test/data/invalid-starting-character.loader-error b/test/data/invalid-starting-character.loader-error deleted file mode 100644 index bb81c60c..00000000 --- a/test/data/invalid-starting-character.loader-error +++ /dev/null @@ -1 +0,0 @@ -@@@@@@@@@@@@@@@@@@@ diff --git a/test/data/invalid-tag-1.loader-error b/test/data/invalid-tag-1.loader-error deleted file mode 100644 index a68cd384..00000000 --- a/test/data/invalid-tag-1.loader-error +++ /dev/null @@ -1 +0,0 @@ -- ! baz diff --git a/test/data/invalid-tag-2.loader-error b/test/data/invalid-tag-2.loader-error deleted file mode 100644 index 3a36700a..00000000 --- a/test/data/invalid-tag-2.loader-error +++ /dev/null @@ -1 +0,0 @@ -- !prefix!foo#bar baz diff --git a/test/data/invalid-tag-directive-handle.loader-error b/test/data/invalid-tag-directive-handle.loader-error deleted file mode 100644 index 42b5d7e9..00000000 --- a/test/data/invalid-tag-directive-handle.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%TAG !!! !!! ---- diff --git a/test/data/invalid-tag-directive-prefix.loader-error b/test/data/invalid-tag-directive-prefix.loader-error deleted file mode 100644 index 0cb482c9..00000000 --- a/test/data/invalid-tag-directive-prefix.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%TAG ! tag:zz.com/foo#bar # '#' is not allowed in URLs ---- diff --git a/test/data/invalid-tag-handle-1.emitter-error b/test/data/invalid-tag-handle-1.emitter-error deleted file mode 100644 index d5df9a26..00000000 --- a/test/data/invalid-tag-handle-1.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart { tags: { '!foo': 'bar' } } -- !Scalar { value: 'foo' } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/invalid-tag-handle-1.loader-error b/test/data/invalid-tag-handle-1.loader-error deleted file mode 100644 index ef0d1430..00000000 --- a/test/data/invalid-tag-handle-1.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%TAG foo bar ---- diff --git a/test/data/invalid-tag-handle-2.emitter-error b/test/data/invalid-tag-handle-2.emitter-error deleted file mode 100644 index d1831d55..00000000 --- a/test/data/invalid-tag-handle-2.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart { tags: { '!!!': 'bar' } } -- !Scalar { value: 'foo' } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/invalid-tag-handle-2.loader-error b/test/data/invalid-tag-handle-2.loader-error deleted file mode 100644 index 06c7f0e4..00000000 --- a/test/data/invalid-tag-handle-2.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%TAG !foo bar ---- diff --git a/test/data/invalid-uri-escapes-1.loader-error b/test/data/invalid-uri-escapes-1.loader-error deleted file mode 100644 index a6ecb36a..00000000 --- a/test/data/invalid-uri-escapes-1.loader-error +++ /dev/null @@ -1 +0,0 @@ ---- ! foo diff --git a/test/data/invalid-uri-escapes-2.loader-error b/test/data/invalid-uri-escapes-2.loader-error deleted file mode 100644 index b89e8f6a..00000000 --- a/test/data/invalid-uri-escapes-2.loader-error +++ /dev/null @@ -1 +0,0 @@ ---- !<%FF> foo diff --git a/test/data/invalid-uri-escapes-3.loader-error b/test/data/invalid-uri-escapes-3.loader-error deleted file mode 100644 index f2e4cb82..00000000 --- a/test/data/invalid-uri-escapes-3.loader-error +++ /dev/null @@ -1 +0,0 @@ ---- ! baz diff --git a/test/data/invalid-uri.loader-error b/test/data/invalid-uri.loader-error deleted file mode 100644 index 06307e06..00000000 --- a/test/data/invalid-uri.loader-error +++ /dev/null @@ -1 +0,0 @@ ---- !foo! bar diff --git a/test/data/invalid-utf8-byte.loader-error b/test/data/invalid-utf8-byte.loader-error deleted file mode 100644 index 0a58c70f..00000000 --- a/test/data/invalid-utf8-byte.loader-error +++ /dev/null @@ -1,66 +0,0 @@ -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -Invalid byte ('\xFF'): <-- -############################################################### diff --git a/test/data/invalid-utf8-byte.stream-error b/test/data/invalid-utf8-byte.stream-error deleted file mode 100644 index 0a58c70f..00000000 --- a/test/data/invalid-utf8-byte.stream-error +++ /dev/null @@ -1,66 +0,0 @@ -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -############################################################### -Invalid byte ('\xFF'): <-- -############################################################### diff --git a/test/data/invalid-yaml-directive-version-1.loader-error b/test/data/invalid-yaml-directive-version-1.loader-error deleted file mode 100644 index e9b4e3a6..00000000 --- a/test/data/invalid-yaml-directive-version-1.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -# No version at all. -%YAML ---- diff --git a/test/data/invalid-yaml-directive-version-2.loader-error b/test/data/invalid-yaml-directive-version-2.loader-error deleted file mode 100644 index 6aa7740e..00000000 --- a/test/data/invalid-yaml-directive-version-2.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%YAML 1e-5 ---- diff --git a/test/data/invalid-yaml-directive-version-3.loader-error b/test/data/invalid-yaml-directive-version-3.loader-error deleted file mode 100644 index 345e7842..00000000 --- a/test/data/invalid-yaml-directive-version-3.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%YAML 1. ---- diff --git a/test/data/invalid-yaml-directive-version-4.loader-error b/test/data/invalid-yaml-directive-version-4.loader-error deleted file mode 100644 index b35ca820..00000000 --- a/test/data/invalid-yaml-directive-version-4.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%YAML 1.132.435 ---- diff --git a/test/data/invalid-yaml-directive-version-5.loader-error b/test/data/invalid-yaml-directive-version-5.loader-error deleted file mode 100644 index 7c2b49f5..00000000 --- a/test/data/invalid-yaml-directive-version-5.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%YAML A.0 ---- diff --git a/test/data/invalid-yaml-directive-version-6.loader-error b/test/data/invalid-yaml-directive-version-6.loader-error deleted file mode 100644 index bae714fc..00000000 --- a/test/data/invalid-yaml-directive-version-6.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%YAML 123.C ---- diff --git a/test/data/invalid-yaml-version.loader-error b/test/data/invalid-yaml-version.loader-error deleted file mode 100644 index dd019488..00000000 --- a/test/data/invalid-yaml-version.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -%YAML 2.0 ---- foo diff --git a/test/data/latin.unicode b/test/data/latin.unicode deleted file mode 100644 index 4fb799c2..00000000 --- a/test/data/latin.unicode +++ /dev/null @@ -1,384 +0,0 @@ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ -ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊ -ËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎ -ďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐ -őŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒ -ƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƼƽƾƿDŽdžLJljNJnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜ -ǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ -ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ -ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΆΈ -ΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύ -ώϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБ -ВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓ -єѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝ -ҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠ -ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉ -ՊՋՌՍՎՏՐՑՒՓՔՕՖաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևႠႡႢႣႤႥႦႧႨႩႪႫႬႭ -ႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩ -ᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḀḁḂḃḄḅḆḇ -ḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉ -ṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋ -ẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐố -ỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛ -ἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧ -ὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆιῂῃῄῆῇῈΈῊ -ΉῐῑῒΐῖῗῘῙῚΊῠῡῢΰῤῥῦῧῨῩῪΎῬῲῳῴῶῷῸΌῺΏⁱⁿℂℇℊℋℌℍℎℏℐℑℒℓℕℙℚℛℜℝℤΩℨKÅℬℭℯℰℱℳℴℹ diff --git a/test/data/mappings.events b/test/data/mappings.events deleted file mode 100644 index 3cb5579f..00000000 --- a/test/data/mappings.events +++ /dev/null @@ -1,44 +0,0 @@ -- !StreamStart - -- !DocumentStart -- !MappingStart -- !Scalar { implicit: [true,true], value: 'key' } -- !Scalar { implicit: [true,true], value: 'value' } -- !Scalar { implicit: [true,true], value: 'empty mapping' } -- !MappingStart -- !MappingEnd -- !Scalar { implicit: [true,true], value: 'empty mapping with tag' } -- !MappingStart { tag: '!mytag', implicit: false } -- !MappingEnd -- !Scalar { implicit: [true,true], value: 'block mapping' } -- !MappingStart -- !MappingStart -- !Scalar { implicit: [true,true], value: 'complex' } -- !Scalar { implicit: [true,true], value: 'key' } -- !Scalar { implicit: [true,true], value: 'complex' } -- !Scalar { implicit: [true,true], value: 'key' } -- !MappingEnd -- !MappingStart -- !Scalar { implicit: [true,true], value: 'complex' } -- !Scalar { implicit: [true,true], value: 'key' } -- !MappingEnd -- !MappingEnd -- !Scalar { implicit: [true,true], value: 'flow mapping' } -- !MappingStart { flow_style: true } -- !Scalar { implicit: [true,true], value: 'key' } -- !Scalar { implicit: [true,true], value: 'value' } -- !MappingStart -- !Scalar { implicit: [true,true], value: 'complex' } -- !Scalar { implicit: [true,true], value: 'key' } -- !Scalar { implicit: [true,true], value: 'complex' } -- !Scalar { implicit: [true,true], value: 'key' } -- !MappingEnd -- !MappingStart -- !Scalar { implicit: [true,true], value: 'complex' } -- !Scalar { implicit: [true,true], value: 'key' } -- !MappingEnd -- !MappingEnd -- !MappingEnd -- !DocumentEnd - -- !StreamEnd diff --git a/test/data/merge.data b/test/data/merge.data deleted file mode 100644 index e455bbcd..00000000 --- a/test/data/merge.data +++ /dev/null @@ -1 +0,0 @@ -- << diff --git a/test/data/merge.detect b/test/data/merge.detect deleted file mode 100644 index 1672d0d9..00000000 --- a/test/data/merge.detect +++ /dev/null @@ -1 +0,0 @@ -tag:yaml.org,2002:merge diff --git a/test/data/more-floats.code b/test/data/more-floats.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/more-floats.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/more-floats.data b/test/data/more-floats.data deleted file mode 100644 index 399eb177..00000000 --- a/test/data/more-floats.data +++ /dev/null @@ -1 +0,0 @@ -[0.0, +1.0, -1.0, +.inf, -.inf, .nan, .nan] diff --git a/test/data/negative-float-bug.code b/test/data/negative-float-bug.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/negative-float-bug.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/negative-float-bug.data b/test/data/negative-float-bug.data deleted file mode 100644 index 18e16e38..00000000 --- a/test/data/negative-float-bug.data +++ /dev/null @@ -1 +0,0 @@ --1.0 diff --git a/test/data/no-alias-anchor.emitter-error b/test/data/no-alias-anchor.emitter-error deleted file mode 100644 index 5ff065c1..00000000 --- a/test/data/no-alias-anchor.emitter-error +++ /dev/null @@ -1,8 +0,0 @@ -- !StreamStart -- !DocumentStart -- !SequenceStart -- !Scalar { anchor: A, value: data } -- !Alias { } -- !SequenceEnd -- !DocumentEnd -- !StreamEnd diff --git a/test/data/no-alias-anchor.skip-ext b/test/data/no-alias-anchor.skip-ext deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/no-block-collection-end.loader-error b/test/data/no-block-collection-end.loader-error deleted file mode 100644 index 02d4d377..00000000 --- a/test/data/no-block-collection-end.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -- foo -- bar -baz: bar diff --git a/test/data/no-block-mapping-end-2.loader-error b/test/data/no-block-mapping-end-2.loader-error deleted file mode 100644 index be63571f..00000000 --- a/test/data/no-block-mapping-end-2.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -? foo -: bar -: baz diff --git a/test/data/no-block-mapping-end.loader-error b/test/data/no-block-mapping-end.loader-error deleted file mode 100644 index 1ea921cf..00000000 --- a/test/data/no-block-mapping-end.loader-error +++ /dev/null @@ -1 +0,0 @@ -foo: "bar" "baz" diff --git a/test/data/no-document-start.loader-error b/test/data/no-document-start.loader-error deleted file mode 100644 index c725ec8b..00000000 --- a/test/data/no-document-start.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 -# no --- -foo: bar diff --git a/test/data/no-flow-mapping-end.loader-error b/test/data/no-flow-mapping-end.loader-error deleted file mode 100644 index 8bd1403f..00000000 --- a/test/data/no-flow-mapping-end.loader-error +++ /dev/null @@ -1 +0,0 @@ -{ foo: bar ] diff --git a/test/data/no-flow-sequence-end.loader-error b/test/data/no-flow-sequence-end.loader-error deleted file mode 100644 index 750d973b..00000000 --- a/test/data/no-flow-sequence-end.loader-error +++ /dev/null @@ -1 +0,0 @@ -[foo, bar} diff --git a/test/data/no-node-1.loader-error b/test/data/no-node-1.loader-error deleted file mode 100644 index 07b15009..00000000 --- a/test/data/no-node-1.loader-error +++ /dev/null @@ -1 +0,0 @@ -- !foo ] diff --git a/test/data/no-node-2.loader-error b/test/data/no-node-2.loader-error deleted file mode 100644 index 563e3b34..00000000 --- a/test/data/no-node-2.loader-error +++ /dev/null @@ -1 +0,0 @@ -- [ !foo } ] diff --git a/test/data/no-tag.emitter-error b/test/data/no-tag.emitter-error deleted file mode 100644 index 384c62f0..00000000 --- a/test/data/no-tag.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart -- !Scalar { value: 'foo', implicit: [false,false] } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/null.data b/test/data/null.data deleted file mode 100644 index ad125286..00000000 --- a/test/data/null.data +++ /dev/null @@ -1,3 +0,0 @@ -- -- ~ -- null diff --git a/test/data/null.detect b/test/data/null.detect deleted file mode 100644 index 19110c7c..00000000 --- a/test/data/null.detect +++ /dev/null @@ -1 +0,0 @@ -tag:yaml.org,2002:null diff --git a/test/data/odd-utf16.stream-error b/test/data/odd-utf16.stream-error deleted file mode 100644 index b59e4344..00000000 Binary files a/test/data/odd-utf16.stream-error and /dev/null differ diff --git a/test/data/question-mark-in-flow-context.canonical b/test/data/question-mark-in-flow-context.canonical deleted file mode 100644 index f717239c..00000000 --- a/test/data/question-mark-in-flow-context.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -"foo?bar": diff --git a/test/data/question-mark-in-flow-context.data b/test/data/question-mark-in-flow-context.data deleted file mode 100644 index d434a302..00000000 --- a/test/data/question-mark-in-flow-context.data +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -{ foo?bar } diff --git a/test/data/recursive.former-dumper-error b/test/data/recursive.former-dumper-error deleted file mode 100644 index 3c7cc2f8..00000000 --- a/test/data/recursive.former-dumper-error +++ /dev/null @@ -1,3 +0,0 @@ -data = [] -data.append(data) -dump(data) diff --git a/test/data/remove-possible-simple-key-bug.loader-error b/test/data/remove-possible-simple-key-bug.loader-error deleted file mode 100644 index fe1bc6c5..00000000 --- a/test/data/remove-possible-simple-key-bug.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -foo: &A bar -*A ] # The ']' indicator triggers remove_possible_simple_key, - # which should raise an error. diff --git a/test/data/resolver.data b/test/data/resolver.data deleted file mode 100644 index a2964048..00000000 --- a/test/data/resolver.data +++ /dev/null @@ -1,30 +0,0 @@ ---- -"this scalar should be selected" ---- -key11: !foo - key12: - is: [selected] - key22: - key13: [not, selected] - key23: [not, selected] - key32: - key31: [not, selected] - key32: [not, selected] - key33: {not: selected} -key21: !bar - - not selected - - selected - - not selected -key31: !baz - key12: - key13: - key14: {selected} - key23: - key14: [not, selected] - key33: - key14: {selected} - key24: {not: selected} - key22: - - key14: {selected} - key24: {not: selected} - - key14: {selected} diff --git a/test/data/resolver.path b/test/data/resolver.path deleted file mode 100644 index ec677d2d..00000000 --- a/test/data/resolver.path +++ /dev/null @@ -1,30 +0,0 @@ ---- !root/scalar -"this scalar should be selected" ---- !root -key11: !foo - key12: !root/key11/key12/* - is: [selected] - key22: - key13: [not, selected] - key23: [not, selected] - key32: - key31: [not, selected] - key32: [not, selected] - key33: {not: selected} -key21: !bar - - not selected - - !root/key21/1/* selected - - not selected -key31: !baz - key12: - key13: - key14: !root/key31/*/*/key14/map {selected} - key23: - key14: [not, selected] - key33: - key14: !root/key31/*/*/key14/map {selected} - key24: {not: selected} - key22: - - key14: !root/key31/*/*/key14/map {selected} - key24: {not: selected} - - key14: !root/key31/*/*/key14/map {selected} diff --git a/test/data/run-parser-crash-bug.data b/test/data/run-parser-crash-bug.data deleted file mode 100644 index fe017342..00000000 --- a/test/data/run-parser-crash-bug.data +++ /dev/null @@ -1,8 +0,0 @@ ---- -- Harry Potter and the Prisoner of Azkaban -- Harry Potter and the Goblet of Fire -- Harry Potter and the Order of the Phoenix ---- -- Memoirs Found in a Bathtub -- Snow Crash -- Ghost World diff --git a/test/data/scalars.events b/test/data/scalars.events deleted file mode 100644 index 32c40f46..00000000 --- a/test/data/scalars.events +++ /dev/null @@ -1,28 +0,0 @@ -- !StreamStart - -- !DocumentStart -- !MappingStart -- !Scalar { implicit: [true,true], value: 'empty scalar' } -- !Scalar { implicit: [true,false], value: '' } -- !Scalar { implicit: [true,true], value: 'implicit scalar' } -- !Scalar { implicit: [true,true], value: 'data' } -- !Scalar { implicit: [true,true], value: 'quoted scalar' } -- !Scalar { value: 'data', style: '"' } -- !Scalar { implicit: [true,true], value: 'block scalar' } -- !Scalar { value: 'data', style: '|' } -- !Scalar { implicit: [true,true], value: 'empty scalar with tag' } -- !Scalar { implicit: [false,false], tag: '!mytag', value: '' } -- !Scalar { implicit: [true,true], value: 'implicit scalar with tag' } -- !Scalar { implicit: [false,false], tag: '!mytag', value: 'data' } -- !Scalar { implicit: [true,true], value: 'quoted scalar with tag' } -- !Scalar { value: 'data', style: '"', tag: '!mytag', implicit: [false,false] } -- !Scalar { implicit: [true,true], value: 'block scalar with tag' } -- !Scalar { value: 'data', style: '|', tag: '!mytag', implicit: [false,false] } -- !Scalar { implicit: [true,true], value: 'single character' } -- !Scalar { value: 'a', implicit: [true,true] } -- !Scalar { implicit: [true,true], value: 'single digit' } -- !Scalar { value: '1', implicit: [true,false] } -- !MappingEnd -- !DocumentEnd - -- !StreamEnd diff --git a/test/data/scan-document-end-bug.canonical b/test/data/scan-document-end-bug.canonical deleted file mode 100644 index 4a0e8a82..00000000 --- a/test/data/scan-document-end-bug.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!null "" diff --git a/test/data/scan-document-end-bug.data b/test/data/scan-document-end-bug.data deleted file mode 100644 index 3c70543b..00000000 --- a/test/data/scan-document-end-bug.data +++ /dev/null @@ -1,3 +0,0 @@ -# Ticket #4 ---- -... \ No newline at end of file diff --git a/test/data/scan-line-break-bug.canonical b/test/data/scan-line-break-bug.canonical deleted file mode 100644 index 79f08b74..00000000 --- a/test/data/scan-line-break-bug.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!map { ? !!str "foo" : !!str "bar baz" } diff --git a/test/data/scan-line-break-bug.data b/test/data/scan-line-break-bug.data deleted file mode 100644 index c974fab0..00000000 --- a/test/data/scan-line-break-bug.data +++ /dev/null @@ -1,3 +0,0 @@ -foo: - bar - baz diff --git a/test/data/sequences.events b/test/data/sequences.events deleted file mode 100644 index 692a3290..00000000 --- a/test/data/sequences.events +++ /dev/null @@ -1,81 +0,0 @@ -- !StreamStart - -- !DocumentStart -- !SequenceStart -- !SequenceEnd -- !DocumentEnd - -- !DocumentStart -- !SequenceStart { tag: '!mytag', implicit: false } -- !SequenceEnd -- !DocumentEnd - -- !DocumentStart -- !SequenceStart -- !SequenceStart -- !SequenceEnd -- !SequenceStart { tag: '!mytag', implicit: false } -- !SequenceEnd -- !SequenceStart -- !Scalar -- !Scalar { value: 'data' } -- !Scalar { tag: '!mytag', implicit: [false,false], value: 'data' } -- !SequenceEnd -- !SequenceStart -- !SequenceStart -- !SequenceStart -- !Scalar -- !SequenceEnd -- !SequenceEnd -- !SequenceEnd -- !SequenceStart -- !SequenceStart { tag: '!mytag', implicit: false } -- !SequenceStart -- !Scalar { value: 'data' } -- !SequenceEnd -- !SequenceEnd -- !SequenceEnd -- !SequenceEnd -- !DocumentEnd - -- !DocumentStart -- !SequenceStart -- !MappingStart -- !Scalar { value: 'key1' } -- !SequenceStart -- !Scalar { value: 'data1' } -- !Scalar { value: 'data2' } -- !SequenceEnd -- !Scalar { value: 'key2' } -- !SequenceStart { tag: '!mytag1', implicit: false } -- !Scalar { value: 'data3' } -- !SequenceStart -- !Scalar { value: 'data4' } -- !Scalar { value: 'data5' } -- !SequenceEnd -- !SequenceStart { tag: '!mytag2', implicit: false } -- !Scalar { value: 'data6' } -- !Scalar { value: 'data7' } -- !SequenceEnd -- !SequenceEnd -- !MappingEnd -- !SequenceEnd -- !DocumentEnd - -- !DocumentStart -- !SequenceStart -- !SequenceStart { flow_style: true } -- !SequenceStart -- !SequenceEnd -- !Scalar -- !Scalar { value: 'data' } -- !Scalar { tag: '!mytag', implicit: [false,false], value: 'data' } -- !SequenceStart { tag: '!mytag', implicit: false } -- !Scalar { value: 'data' } -- !Scalar { value: 'data' } -- !SequenceEnd -- !SequenceEnd -- !SequenceEnd -- !DocumentEnd - -- !StreamEnd diff --git a/test/data/single-dot-is-not-float-bug.code b/test/data/single-dot-is-not-float-bug.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/single-dot-is-not-float-bug.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/single-dot-is-not-float-bug.data b/test/data/single-dot-is-not-float-bug.data deleted file mode 100644 index 9c558e35..00000000 --- a/test/data/single-dot-is-not-float-bug.data +++ /dev/null @@ -1 +0,0 @@ -. diff --git a/test/data/sloppy-indentation.canonical b/test/data/sloppy-indentation.canonical deleted file mode 100644 index 438bc04a..00000000 --- a/test/data/sloppy-indentation.canonical +++ /dev/null @@ -1,18 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "in the block context" - : !!map { - ? !!str "indentation should be kept" - : !!map { - ? !!str "but in the flow context" - : !!seq [ !!str "it may be violated" ] - } - } -} ---- !!str -"the parser does not require scalars to be indented with at least one space" ---- !!str -"the parser does not require scalars to be indented with at least one space" ---- !!map -{ ? !!str "foo": { ? !!str "bar" : !!str "quoted scalars may not adhere indentation" } } diff --git a/test/data/sloppy-indentation.data b/test/data/sloppy-indentation.data deleted file mode 100644 index 2eb4f5a5..00000000 --- a/test/data/sloppy-indentation.data +++ /dev/null @@ -1,17 +0,0 @@ ---- -in the block context: - indentation should be kept: { - but in the flow context: [ -it may be violated] -} ---- -the parser does not require scalars -to be indented with at least one space -... ---- -"the parser does not require scalars -to be indented with at least one space" ---- -foo: - bar: 'quoted scalars -may not adhere indentation' diff --git a/test/data/spec-02-01.data b/test/data/spec-02-01.data deleted file mode 100644 index d12e6711..00000000 --- a/test/data/spec-02-01.data +++ /dev/null @@ -1,3 +0,0 @@ -- Mark McGwire -- Sammy Sosa -- Ken Griffey diff --git a/test/data/spec-02-01.structure b/test/data/spec-02-01.structure deleted file mode 100644 index f532f4a7..00000000 --- a/test/data/spec-02-01.structure +++ /dev/null @@ -1 +0,0 @@ -[True, True, True] diff --git a/test/data/spec-02-01.tokens b/test/data/spec-02-01.tokens deleted file mode 100644 index ce44caca..00000000 --- a/test/data/spec-02-01.tokens +++ /dev/null @@ -1 +0,0 @@ -[[ , _ , _ , _ ]} diff --git a/test/data/spec-02-02.data b/test/data/spec-02-02.data deleted file mode 100644 index 7b7ec948..00000000 --- a/test/data/spec-02-02.data +++ /dev/null @@ -1,3 +0,0 @@ -hr: 65 # Home runs -avg: 0.278 # Batting average -rbi: 147 # Runs Batted In diff --git a/test/data/spec-02-02.structure b/test/data/spec-02-02.structure deleted file mode 100644 index aba1ced6..00000000 --- a/test/data/spec-02-02.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True), (True, True)] diff --git a/test/data/spec-02-02.tokens b/test/data/spec-02-02.tokens deleted file mode 100644 index e4e381b4..00000000 --- a/test/data/spec-02-02.tokens +++ /dev/null @@ -1,5 +0,0 @@ -{{ -? _ : _ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-03.data b/test/data/spec-02-03.data deleted file mode 100644 index 656d628e..00000000 --- a/test/data/spec-02-03.data +++ /dev/null @@ -1,8 +0,0 @@ -american: - - Boston Red Sox - - Detroit Tigers - - New York Yankees -national: - - New York Mets - - Chicago Cubs - - Atlanta Braves diff --git a/test/data/spec-02-03.structure b/test/data/spec-02-03.structure deleted file mode 100644 index 25de5d27..00000000 --- a/test/data/spec-02-03.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, [True, True, True]), (True, [True, True, True])] diff --git a/test/data/spec-02-03.tokens b/test/data/spec-02-03.tokens deleted file mode 100644 index 89815f29..00000000 --- a/test/data/spec-02-03.tokens +++ /dev/null @@ -1,4 +0,0 @@ -{{ -? _ : [[ , _ , _ , _ ]} -? _ : [[ , _ , _ , _ ]} -]} diff --git a/test/data/spec-02-04.data b/test/data/spec-02-04.data deleted file mode 100644 index 430f6b3d..00000000 --- a/test/data/spec-02-04.data +++ /dev/null @@ -1,8 +0,0 @@ -- - name: Mark McGwire - hr: 65 - avg: 0.278 -- - name: Sammy Sosa - hr: 63 - avg: 0.288 diff --git a/test/data/spec-02-04.structure b/test/data/spec-02-04.structure deleted file mode 100644 index e7b526cb..00000000 --- a/test/data/spec-02-04.structure +++ /dev/null @@ -1,4 +0,0 @@ -[ - [(True, True), (True, True), (True, True)], - [(True, True), (True, True), (True, True)], -] diff --git a/test/data/spec-02-04.tokens b/test/data/spec-02-04.tokens deleted file mode 100644 index 9cb98156..00000000 --- a/test/data/spec-02-04.tokens +++ /dev/null @@ -1,4 +0,0 @@ -[[ -, {{ ? _ : _ ? _ : _ ? _ : _ ]} -, {{ ? _ : _ ? _ : _ ? _ : _ ]} -]} diff --git a/test/data/spec-02-05.data b/test/data/spec-02-05.data deleted file mode 100644 index cdd77706..00000000 --- a/test/data/spec-02-05.data +++ /dev/null @@ -1,3 +0,0 @@ -- [name , hr, avg ] -- [Mark McGwire, 65, 0.278] -- [Sammy Sosa , 63, 0.288] diff --git a/test/data/spec-02-05.structure b/test/data/spec-02-05.structure deleted file mode 100644 index e06b75ad..00000000 --- a/test/data/spec-02-05.structure +++ /dev/null @@ -1,5 +0,0 @@ -[ - [True, True, True], - [True, True, True], - [True, True, True], -] diff --git a/test/data/spec-02-05.tokens b/test/data/spec-02-05.tokens deleted file mode 100644 index 3f6f1ab5..00000000 --- a/test/data/spec-02-05.tokens +++ /dev/null @@ -1,5 +0,0 @@ -[[ -, [ _ , _ , _ ] -, [ _ , _ , _ ] -, [ _ , _ , _ ] -]} diff --git a/test/data/spec-02-06.data b/test/data/spec-02-06.data deleted file mode 100644 index 7a957b23..00000000 --- a/test/data/spec-02-06.data +++ /dev/null @@ -1,5 +0,0 @@ -Mark McGwire: {hr: 65, avg: 0.278} -Sammy Sosa: { - hr: 63, - avg: 0.288 - } diff --git a/test/data/spec-02-06.structure b/test/data/spec-02-06.structure deleted file mode 100644 index 3ef0f4bc..00000000 --- a/test/data/spec-02-06.structure +++ /dev/null @@ -1,4 +0,0 @@ -[ - (True, [(True, True), (True, True)]), - (True, [(True, True), (True, True)]), -] diff --git a/test/data/spec-02-06.tokens b/test/data/spec-02-06.tokens deleted file mode 100644 index a1a5eef2..00000000 --- a/test/data/spec-02-06.tokens +++ /dev/null @@ -1,4 +0,0 @@ -{{ -? _ : { ? _ : _ , ? _ : _ } -? _ : { ? _ : _ , ? _ : _ } -]} diff --git a/test/data/spec-02-07.data b/test/data/spec-02-07.data deleted file mode 100644 index bc711d54..00000000 --- a/test/data/spec-02-07.data +++ /dev/null @@ -1,10 +0,0 @@ -# Ranking of 1998 home runs ---- -- Mark McGwire -- Sammy Sosa -- Ken Griffey - -# Team ranking ---- -- Chicago Cubs -- St Louis Cardinals diff --git a/test/data/spec-02-07.structure b/test/data/spec-02-07.structure deleted file mode 100644 index c5d72a34..00000000 --- a/test/data/spec-02-07.structure +++ /dev/null @@ -1,4 +0,0 @@ -[ -[True, True, True], -[True, True], -] diff --git a/test/data/spec-02-07.tokens b/test/data/spec-02-07.tokens deleted file mode 100644 index ed48883c..00000000 --- a/test/data/spec-02-07.tokens +++ /dev/null @@ -1,12 +0,0 @@ ---- -[[ -, _ -, _ -, _ -]} - ---- -[[ -, _ -, _ -]} diff --git a/test/data/spec-02-08.data b/test/data/spec-02-08.data deleted file mode 100644 index 05e102d8..00000000 --- a/test/data/spec-02-08.data +++ /dev/null @@ -1,10 +0,0 @@ ---- -time: 20:03:20 -player: Sammy Sosa -action: strike (miss) -... ---- -time: 20:03:47 -player: Sammy Sosa -action: grand slam -... diff --git a/test/data/spec-02-08.structure b/test/data/spec-02-08.structure deleted file mode 100644 index 24cff73d..00000000 --- a/test/data/spec-02-08.structure +++ /dev/null @@ -1,4 +0,0 @@ -[ -[(True, True), (True, True), (True, True)], -[(True, True), (True, True), (True, True)], -] diff --git a/test/data/spec-02-08.tokens b/test/data/spec-02-08.tokens deleted file mode 100644 index 7d2c03df..00000000 --- a/test/data/spec-02-08.tokens +++ /dev/null @@ -1,15 +0,0 @@ ---- -{{ -? _ : _ -? _ : _ -? _ : _ -]} -... - ---- -{{ -? _ : _ -? _ : _ -? _ : _ -]} -... diff --git a/test/data/spec-02-09.data b/test/data/spec-02-09.data deleted file mode 100644 index e2641805..00000000 --- a/test/data/spec-02-09.data +++ /dev/null @@ -1,8 +0,0 @@ ---- -hr: # 1998 hr ranking - - Mark McGwire - - Sammy Sosa -rbi: - # 1998 rbi ranking - - Sammy Sosa - - Ken Griffey diff --git a/test/data/spec-02-09.structure b/test/data/spec-02-09.structure deleted file mode 100644 index b4c99148..00000000 --- a/test/data/spec-02-09.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, [True, True]), (True, [True, True])] diff --git a/test/data/spec-02-09.tokens b/test/data/spec-02-09.tokens deleted file mode 100644 index b2ec10ea..00000000 --- a/test/data/spec-02-09.tokens +++ /dev/null @@ -1,5 +0,0 @@ ---- -{{ -? _ : [[ , _ , _ ]} -? _ : [[ , _ , _ ]} -]} diff --git a/test/data/spec-02-10.data b/test/data/spec-02-10.data deleted file mode 100644 index 61808f67..00000000 --- a/test/data/spec-02-10.data +++ /dev/null @@ -1,8 +0,0 @@ ---- -hr: - - Mark McGwire - # Following node labeled SS - - &SS Sammy Sosa -rbi: - - *SS # Subsequent occurrence - - Ken Griffey diff --git a/test/data/spec-02-10.structure b/test/data/spec-02-10.structure deleted file mode 100644 index ff8f4c3f..00000000 --- a/test/data/spec-02-10.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, [True, True]), (True, ['*', True])] diff --git a/test/data/spec-02-10.tokens b/test/data/spec-02-10.tokens deleted file mode 100644 index 26caa2b1..00000000 --- a/test/data/spec-02-10.tokens +++ /dev/null @@ -1,5 +0,0 @@ ---- -{{ -? _ : [[ , _ , & _ ]} -? _ : [[ , * , _ ]} -]} diff --git a/test/data/spec-02-11.data b/test/data/spec-02-11.data deleted file mode 100644 index 9123ce21..00000000 --- a/test/data/spec-02-11.data +++ /dev/null @@ -1,9 +0,0 @@ -? - Detroit Tigers - - Chicago cubs -: - - 2001-07-23 - -? [ New York Yankees, - Atlanta Braves ] -: [ 2001-07-02, 2001-08-12, - 2001-08-14 ] diff --git a/test/data/spec-02-11.structure b/test/data/spec-02-11.structure deleted file mode 100644 index 3d8f1ffa..00000000 --- a/test/data/spec-02-11.structure +++ /dev/null @@ -1,4 +0,0 @@ -[ -([True, True], [True]), -([True, True], [True, True, True]), -] diff --git a/test/data/spec-02-11.tokens b/test/data/spec-02-11.tokens deleted file mode 100644 index fe242033..00000000 --- a/test/data/spec-02-11.tokens +++ /dev/null @@ -1,6 +0,0 @@ -{{ -? [[ , _ , _ ]} -: [[ , _ ]} -? [ _ , _ ] -: [ _ , _ , _ ] -]} diff --git a/test/data/spec-02-12.data b/test/data/spec-02-12.data deleted file mode 100644 index 1fc33f9d..00000000 --- a/test/data/spec-02-12.data +++ /dev/null @@ -1,8 +0,0 @@ ---- -# products purchased -- item : Super Hoop - quantity: 1 -- item : Basketball - quantity: 4 -- item : Big Shoes - quantity: 1 diff --git a/test/data/spec-02-12.structure b/test/data/spec-02-12.structure deleted file mode 100644 index e9c53594..00000000 --- a/test/data/spec-02-12.structure +++ /dev/null @@ -1,5 +0,0 @@ -[ -[(True, True), (True, True)], -[(True, True), (True, True)], -[(True, True), (True, True)], -] diff --git a/test/data/spec-02-12.tokens b/test/data/spec-02-12.tokens deleted file mode 100644 index ea21e506..00000000 --- a/test/data/spec-02-12.tokens +++ /dev/null @@ -1,6 +0,0 @@ ---- -[[ -, {{ ? _ : _ ? _ : _ ]} -, {{ ? _ : _ ? _ : _ ]} -, {{ ? _ : _ ? _ : _ ]} -]} diff --git a/test/data/spec-02-13.data b/test/data/spec-02-13.data deleted file mode 100644 index 13fb6560..00000000 --- a/test/data/spec-02-13.data +++ /dev/null @@ -1,4 +0,0 @@ -# ASCII Art ---- | - \//||\/|| - // || ||__ diff --git a/test/data/spec-02-13.structure b/test/data/spec-02-13.structure deleted file mode 100644 index 0ca95142..00000000 --- a/test/data/spec-02-13.structure +++ /dev/null @@ -1 +0,0 @@ -True diff --git a/test/data/spec-02-13.tokens b/test/data/spec-02-13.tokens deleted file mode 100644 index 7456c055..00000000 --- a/test/data/spec-02-13.tokens +++ /dev/null @@ -1 +0,0 @@ ---- _ diff --git a/test/data/spec-02-14.data b/test/data/spec-02-14.data deleted file mode 100644 index 59943def..00000000 --- a/test/data/spec-02-14.data +++ /dev/null @@ -1,4 +0,0 @@ ---- - Mark McGwire's - year was crippled - by a knee injury. diff --git a/test/data/spec-02-14.structure b/test/data/spec-02-14.structure deleted file mode 100644 index 0ca95142..00000000 --- a/test/data/spec-02-14.structure +++ /dev/null @@ -1 +0,0 @@ -True diff --git a/test/data/spec-02-14.tokens b/test/data/spec-02-14.tokens deleted file mode 100644 index 7456c055..00000000 --- a/test/data/spec-02-14.tokens +++ /dev/null @@ -1 +0,0 @@ ---- _ diff --git a/test/data/spec-02-15.data b/test/data/spec-02-15.data deleted file mode 100644 index 80b89a6d..00000000 --- a/test/data/spec-02-15.data +++ /dev/null @@ -1,8 +0,0 @@ -> - Sammy Sosa completed another - fine season with great stats. - - 63 Home Runs - 0.288 Batting Average - - What a year! diff --git a/test/data/spec-02-15.structure b/test/data/spec-02-15.structure deleted file mode 100644 index 0ca95142..00000000 --- a/test/data/spec-02-15.structure +++ /dev/null @@ -1 +0,0 @@ -True diff --git a/test/data/spec-02-15.tokens b/test/data/spec-02-15.tokens deleted file mode 100644 index 31354ec1..00000000 --- a/test/data/spec-02-15.tokens +++ /dev/null @@ -1 +0,0 @@ -_ diff --git a/test/data/spec-02-16.data b/test/data/spec-02-16.data deleted file mode 100644 index 9f66d881..00000000 --- a/test/data/spec-02-16.data +++ /dev/null @@ -1,7 +0,0 @@ -name: Mark McGwire -accomplishment: > - Mark set a major league - home run record in 1998. -stats: | - 65 Home Runs - 0.278 Batting Average diff --git a/test/data/spec-02-16.structure b/test/data/spec-02-16.structure deleted file mode 100644 index aba1ced6..00000000 --- a/test/data/spec-02-16.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True), (True, True)] diff --git a/test/data/spec-02-16.tokens b/test/data/spec-02-16.tokens deleted file mode 100644 index e4e381b4..00000000 --- a/test/data/spec-02-16.tokens +++ /dev/null @@ -1,5 +0,0 @@ -{{ -? _ : _ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-17.data b/test/data/spec-02-17.data deleted file mode 100644 index b2870c53..00000000 --- a/test/data/spec-02-17.data +++ /dev/null @@ -1,7 +0,0 @@ -unicode: "Sosa did fine.\u263A" -control: "\b1998\t1999\t2000\n" -hexesc: "\x13\x10 is \r\n" - -single: '"Howdy!" he cried.' -quoted: ' # not a ''comment''.' -tie-fighter: '|\-*-/|' diff --git a/test/data/spec-02-17.structure b/test/data/spec-02-17.structure deleted file mode 100644 index 933646d6..00000000 --- a/test/data/spec-02-17.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True), (True, True), (True, True), (True, True), (True, True)] diff --git a/test/data/spec-02-17.tokens b/test/data/spec-02-17.tokens deleted file mode 100644 index db655402..00000000 --- a/test/data/spec-02-17.tokens +++ /dev/null @@ -1,8 +0,0 @@ -{{ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-18.data b/test/data/spec-02-18.data deleted file mode 100644 index e0a8bfa9..00000000 --- a/test/data/spec-02-18.data +++ /dev/null @@ -1,6 +0,0 @@ -plain: - This unquoted scalar - spans many lines. - -quoted: "So does this - quoted scalar.\n" diff --git a/test/data/spec-02-18.structure b/test/data/spec-02-18.structure deleted file mode 100644 index 0ca49912..00000000 --- a/test/data/spec-02-18.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True)] diff --git a/test/data/spec-02-18.tokens b/test/data/spec-02-18.tokens deleted file mode 100644 index 83b31dc0..00000000 --- a/test/data/spec-02-18.tokens +++ /dev/null @@ -1,4 +0,0 @@ -{{ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-19.data b/test/data/spec-02-19.data deleted file mode 100644 index bf69de69..00000000 --- a/test/data/spec-02-19.data +++ /dev/null @@ -1,5 +0,0 @@ -canonical: 12345 -decimal: +12,345 -sexagesimal: 3:25:45 -octal: 014 -hexadecimal: 0xC diff --git a/test/data/spec-02-19.structure b/test/data/spec-02-19.structure deleted file mode 100644 index 48ca99de..00000000 --- a/test/data/spec-02-19.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True), (True, True), (True, True), (True, True)] diff --git a/test/data/spec-02-19.tokens b/test/data/spec-02-19.tokens deleted file mode 100644 index 5bda68f4..00000000 --- a/test/data/spec-02-19.tokens +++ /dev/null @@ -1,7 +0,0 @@ -{{ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-20.data b/test/data/spec-02-20.data deleted file mode 100644 index 1d4897ff..00000000 --- a/test/data/spec-02-20.data +++ /dev/null @@ -1,6 +0,0 @@ -canonical: 1.23015e+3 -exponential: 12.3015e+02 -sexagesimal: 20:30.15 -fixed: 1,230.15 -negative infinity: -.inf -not a number: .NaN diff --git a/test/data/spec-02-20.structure b/test/data/spec-02-20.structure deleted file mode 100644 index 933646d6..00000000 --- a/test/data/spec-02-20.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True), (True, True), (True, True), (True, True), (True, True)] diff --git a/test/data/spec-02-20.tokens b/test/data/spec-02-20.tokens deleted file mode 100644 index db655402..00000000 --- a/test/data/spec-02-20.tokens +++ /dev/null @@ -1,8 +0,0 @@ -{{ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-21.data b/test/data/spec-02-21.data deleted file mode 100644 index dec6a56b..00000000 --- a/test/data/spec-02-21.data +++ /dev/null @@ -1,4 +0,0 @@ -null: ~ -true: y -false: n -string: '12345' diff --git a/test/data/spec-02-21.structure b/test/data/spec-02-21.structure deleted file mode 100644 index 021635f3..00000000 --- a/test/data/spec-02-21.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True), (True, True), (True, True)] diff --git a/test/data/spec-02-21.tokens b/test/data/spec-02-21.tokens deleted file mode 100644 index aeccbaf6..00000000 --- a/test/data/spec-02-21.tokens +++ /dev/null @@ -1,6 +0,0 @@ -{{ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-22.data b/test/data/spec-02-22.data deleted file mode 100644 index aaac185a..00000000 --- a/test/data/spec-02-22.data +++ /dev/null @@ -1,4 +0,0 @@ -canonical: 2001-12-15T02:59:43.1Z -iso8601: 2001-12-14t21:59:43.10-05:00 -spaced: 2001-12-14 21:59:43.10 -5 -date: 2002-12-14 diff --git a/test/data/spec-02-22.structure b/test/data/spec-02-22.structure deleted file mode 100644 index 021635f3..00000000 --- a/test/data/spec-02-22.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True), (True, True), (True, True)] diff --git a/test/data/spec-02-22.tokens b/test/data/spec-02-22.tokens deleted file mode 100644 index aeccbaf6..00000000 --- a/test/data/spec-02-22.tokens +++ /dev/null @@ -1,6 +0,0 @@ -{{ -? _ : _ -? _ : _ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-23.data b/test/data/spec-02-23.data deleted file mode 100644 index 5dbd992d..00000000 --- a/test/data/spec-02-23.data +++ /dev/null @@ -1,13 +0,0 @@ ---- -not-date: !!str 2002-04-28 - -picture: !!binary | - R0lGODlhDAAMAIQAAP//9/X - 17unp5WZmZgAAAOfn515eXv - Pz7Y6OjuDg4J+fn5OTk6enp - 56enmleECcgggoBADs= - -application specific tag: !something | - The semantics of the tag - above may be different for - different documents. diff --git a/test/data/spec-02-23.structure b/test/data/spec-02-23.structure deleted file mode 100644 index aba1ced6..00000000 --- a/test/data/spec-02-23.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, True), (True, True), (True, True)] diff --git a/test/data/spec-02-23.tokens b/test/data/spec-02-23.tokens deleted file mode 100644 index 9ac54aad..00000000 --- a/test/data/spec-02-23.tokens +++ /dev/null @@ -1,6 +0,0 @@ ---- -{{ -? _ : ! _ -? _ : ! _ -? _ : ! _ -]} diff --git a/test/data/spec-02-24.data b/test/data/spec-02-24.data deleted file mode 100644 index 1180757d..00000000 --- a/test/data/spec-02-24.data +++ /dev/null @@ -1,14 +0,0 @@ -%TAG ! tag:clarkevans.com,2002: ---- !shape - # Use the ! handle for presenting - # tag:clarkevans.com,2002:circle -- !circle - center: &ORIGIN {x: 73, y: 129} - radius: 7 -- !line - start: *ORIGIN - finish: { x: 89, y: 102 } -- !label - start: *ORIGIN - color: 0xFFEEBB - text: Pretty vector drawing. diff --git a/test/data/spec-02-24.structure b/test/data/spec-02-24.structure deleted file mode 100644 index a800729f..00000000 --- a/test/data/spec-02-24.structure +++ /dev/null @@ -1,5 +0,0 @@ -[ -[(True, [(True, True), (True, True)]), (True, True)], -[(True, '*'), (True, [(True, True), (True, True)])], -[(True, '*'), (True, True), (True, True)], -] diff --git a/test/data/spec-02-24.tokens b/test/data/spec-02-24.tokens deleted file mode 100644 index 039c3857..00000000 --- a/test/data/spec-02-24.tokens +++ /dev/null @@ -1,20 +0,0 @@ -% ---- ! -[[ -, ! - {{ - ? _ : & { ? _ : _ , ? _ : _ } - ? _ : _ - ]} -, ! - {{ - ? _ : * - ? _ : { ? _ : _ , ? _ : _ } - ]} -, ! - {{ - ? _ : * - ? _ : _ - ? _ : _ - ]} -]} diff --git a/test/data/spec-02-25.data b/test/data/spec-02-25.data deleted file mode 100644 index 769ac319..00000000 --- a/test/data/spec-02-25.data +++ /dev/null @@ -1,7 +0,0 @@ -# sets are represented as a -# mapping where each key is -# associated with the empty string ---- !!set -? Mark McGwire -? Sammy Sosa -? Ken Griff diff --git a/test/data/spec-02-25.structure b/test/data/spec-02-25.structure deleted file mode 100644 index 0b40e61b..00000000 --- a/test/data/spec-02-25.structure +++ /dev/null @@ -1 +0,0 @@ -[(True, None), (True, None), (True, None)] diff --git a/test/data/spec-02-25.tokens b/test/data/spec-02-25.tokens deleted file mode 100644 index b7002368..00000000 --- a/test/data/spec-02-25.tokens +++ /dev/null @@ -1,6 +0,0 @@ ---- ! -{{ -? _ -? _ -? _ -]} diff --git a/test/data/spec-02-26.data b/test/data/spec-02-26.data deleted file mode 100644 index 3143763d..00000000 --- a/test/data/spec-02-26.data +++ /dev/null @@ -1,7 +0,0 @@ -# ordered maps are represented as -# a sequence of mappings, with -# each mapping having one key ---- !!omap -- Mark McGwire: 65 -- Sammy Sosa: 63 -- Ken Griffy: 58 diff --git a/test/data/spec-02-26.structure b/test/data/spec-02-26.structure deleted file mode 100644 index cf429b93..00000000 --- a/test/data/spec-02-26.structure +++ /dev/null @@ -1,5 +0,0 @@ -[ -[(True, True)], -[(True, True)], -[(True, True)], -] diff --git a/test/data/spec-02-26.tokens b/test/data/spec-02-26.tokens deleted file mode 100644 index 7bee4920..00000000 --- a/test/data/spec-02-26.tokens +++ /dev/null @@ -1,6 +0,0 @@ ---- ! -[[ -, {{ ? _ : _ ]} -, {{ ? _ : _ ]} -, {{ ? _ : _ ]} -]} diff --git a/test/data/spec-02-27.data b/test/data/spec-02-27.data deleted file mode 100644 index 4625739d..00000000 --- a/test/data/spec-02-27.data +++ /dev/null @@ -1,29 +0,0 @@ ---- ! -invoice: 34843 -date : 2001-01-23 -bill-to: &id001 - given : Chris - family : Dumars - address: - lines: | - 458 Walkman Dr. - Suite #292 - city : Royal Oak - state : MI - postal : 48046 -ship-to: *id001 -product: - - sku : BL394D - quantity : 4 - description : Basketball - price : 450.00 - - sku : BL4438H - quantity : 1 - description : Super Hoop - price : 2392.00 -tax : 251.42 -total: 4443.52 -comments: - Late afternoon is best. - Backup contact is Nancy - Billsmer @ 338-4338. diff --git a/test/data/spec-02-27.structure b/test/data/spec-02-27.structure deleted file mode 100644 index a2113b9f..00000000 --- a/test/data/spec-02-27.structure +++ /dev/null @@ -1,17 +0,0 @@ -[ -(True, True), -(True, True), -(True, [ - (True, True), - (True, True), - (True, [(True, True), (True, True), (True, True), (True, True)]), - ]), -(True, '*'), -(True, [ - [(True, True), (True, True), (True, True), (True, True)], - [(True, True), (True, True), (True, True), (True, True)], - ]), -(True, True), -(True, True), -(True, True), -] diff --git a/test/data/spec-02-27.tokens b/test/data/spec-02-27.tokens deleted file mode 100644 index 2dc1c25d..00000000 --- a/test/data/spec-02-27.tokens +++ /dev/null @@ -1,20 +0,0 @@ ---- ! -{{ -? _ : _ -? _ : _ -? _ : & - {{ - ? _ : _ - ? _ : _ - ? _ : {{ ? _ : _ ? _ : _ ? _ : _ ? _ : _ ]} - ]} -? _ : * -? _ : - [[ - , {{ ? _ : _ ? _ : _ ? _ : _ ? _ : _ ]} - , {{ ? _ : _ ? _ : _ ? _ : _ ? _ : _ ]} - ]} -? _ : _ -? _ : _ -? _ : _ -]} diff --git a/test/data/spec-02-28.data b/test/data/spec-02-28.data deleted file mode 100644 index a5c8dc85..00000000 --- a/test/data/spec-02-28.data +++ /dev/null @@ -1,26 +0,0 @@ ---- -Time: 2001-11-23 15:01:42 -5 -User: ed -Warning: - This is an error message - for the log file ---- -Time: 2001-11-23 15:02:31 -5 -User: ed -Warning: - A slightly different error - message. ---- -Date: 2001-11-23 15:03:17 -5 -User: ed -Fatal: - Unknown variable "bar" -Stack: - - file: TopClass.py - line: 23 - code: | - x = MoreObject("345\n") - - file: MoreClass.py - line: 58 - code: |- - foo = bar diff --git a/test/data/spec-02-28.structure b/test/data/spec-02-28.structure deleted file mode 100644 index 8ec0b569..00000000 --- a/test/data/spec-02-28.structure +++ /dev/null @@ -1,10 +0,0 @@ -[ -[(True, True), (True, True), (True, True)], -[(True, True), (True, True), (True, True)], -[(True, True), (True, True), (True, True), -(True, [ - [(True, True), (True, True), (True, True)], - [(True, True), (True, True), (True, True)], - ]), -] -] diff --git a/test/data/spec-02-28.tokens b/test/data/spec-02-28.tokens deleted file mode 100644 index 8d5e1bc5..00000000 --- a/test/data/spec-02-28.tokens +++ /dev/null @@ -1,23 +0,0 @@ ---- -{{ -? _ : _ -? _ : _ -? _ : _ -]} ---- -{{ -? _ : _ -? _ : _ -? _ : _ -]} ---- -{{ -? _ : _ -? _ : _ -? _ : _ -? _ : - [[ - , {{ ? _ : _ ? _ : _ ? _ : _ ]} - , {{ ? _ : _ ? _ : _ ? _ : _ ]} - ]} -]} diff --git a/test/data/spec-05-01-utf16be.data b/test/data/spec-05-01-utf16be.data deleted file mode 100644 index 35250629..00000000 Binary files a/test/data/spec-05-01-utf16be.data and /dev/null differ diff --git a/test/data/spec-05-01-utf16be.empty b/test/data/spec-05-01-utf16be.empty deleted file mode 100644 index bfffa8b6..00000000 --- a/test/data/spec-05-01-utf16be.empty +++ /dev/null @@ -1,2 +0,0 @@ -# This stream contains no -# documents, only comments. diff --git a/test/data/spec-05-01-utf16le.data b/test/data/spec-05-01-utf16le.data deleted file mode 100644 index 0823f749..00000000 Binary files a/test/data/spec-05-01-utf16le.data and /dev/null differ diff --git a/test/data/spec-05-01-utf16le.empty b/test/data/spec-05-01-utf16le.empty deleted file mode 100644 index bfffa8b6..00000000 --- a/test/data/spec-05-01-utf16le.empty +++ /dev/null @@ -1,2 +0,0 @@ -# This stream contains no -# documents, only comments. diff --git a/test/data/spec-05-01-utf8.data b/test/data/spec-05-01-utf8.data deleted file mode 100644 index 780d25bf..00000000 --- a/test/data/spec-05-01-utf8.data +++ /dev/null @@ -1 +0,0 @@ -# Comment only. diff --git a/test/data/spec-05-01-utf8.empty b/test/data/spec-05-01-utf8.empty deleted file mode 100644 index bfffa8b6..00000000 --- a/test/data/spec-05-01-utf8.empty +++ /dev/null @@ -1,2 +0,0 @@ -# This stream contains no -# documents, only comments. diff --git a/test/data/spec-05-02-utf16be.data b/test/data/spec-05-02-utf16be.data deleted file mode 100644 index 5ebbb04e..00000000 Binary files a/test/data/spec-05-02-utf16be.data and /dev/null differ diff --git a/test/data/spec-05-02-utf16be.error b/test/data/spec-05-02-utf16be.error deleted file mode 100644 index 1df36161..00000000 --- a/test/data/spec-05-02-utf16be.error +++ /dev/null @@ -1,3 +0,0 @@ -ERROR: - A BOM must not appear - inside a document. diff --git a/test/data/spec-05-02-utf16le.data b/test/data/spec-05-02-utf16le.data deleted file mode 100644 index 0cd90a2b..00000000 Binary files a/test/data/spec-05-02-utf16le.data and /dev/null differ diff --git a/test/data/spec-05-02-utf16le.error b/test/data/spec-05-02-utf16le.error deleted file mode 100644 index 1df36161..00000000 --- a/test/data/spec-05-02-utf16le.error +++ /dev/null @@ -1,3 +0,0 @@ -ERROR: - A BOM must not appear - inside a document. diff --git a/test/data/spec-05-02-utf8.data b/test/data/spec-05-02-utf8.data deleted file mode 100644 index fb74866f..00000000 --- a/test/data/spec-05-02-utf8.data +++ /dev/null @@ -1,3 +0,0 @@ -# Invalid use of BOM -# inside a -# document. diff --git a/test/data/spec-05-02-utf8.error b/test/data/spec-05-02-utf8.error deleted file mode 100644 index 1df36161..00000000 --- a/test/data/spec-05-02-utf8.error +++ /dev/null @@ -1,3 +0,0 @@ -ERROR: - A BOM must not appear - inside a document. diff --git a/test/data/spec-05-03.canonical b/test/data/spec-05-03.canonical deleted file mode 100644 index a143a73f..00000000 --- a/test/data/spec-05-03.canonical +++ /dev/null @@ -1,14 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "sequence" - : !!seq [ - !!str "one", !!str "two" - ], - ? !!str "mapping" - : !!map { - ? !!str "sky" : !!str "blue", -# ? !!str "sea" : !!str "green", - ? !!map { ? !!str "sea" : !!str "green" } : !!null "", - } -} diff --git a/test/data/spec-05-03.data b/test/data/spec-05-03.data deleted file mode 100644 index 4661f333..00000000 --- a/test/data/spec-05-03.data +++ /dev/null @@ -1,7 +0,0 @@ -sequence: -- one -- two -mapping: - ? sky - : blue - ? sea : green diff --git a/test/data/spec-05-04.canonical b/test/data/spec-05-04.canonical deleted file mode 100644 index 00c97236..00000000 --- a/test/data/spec-05-04.canonical +++ /dev/null @@ -1,13 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "sequence" - : !!seq [ - !!str "one", !!str "two" - ], - ? !!str "mapping" - : !!map { - ? !!str "sky" : !!str "blue", - ? !!str "sea" : !!str "green", - } -} diff --git a/test/data/spec-05-04.data b/test/data/spec-05-04.data deleted file mode 100644 index df338477..00000000 --- a/test/data/spec-05-04.data +++ /dev/null @@ -1,2 +0,0 @@ -sequence: [ one, two, ] -mapping: { sky: blue, sea: green } diff --git a/test/data/spec-05-05.data b/test/data/spec-05-05.data deleted file mode 100644 index 62524c0d..00000000 --- a/test/data/spec-05-05.data +++ /dev/null @@ -1 +0,0 @@ -# Comment only. diff --git a/test/data/spec-05-05.empty b/test/data/spec-05-05.empty deleted file mode 100644 index bfffa8b6..00000000 --- a/test/data/spec-05-05.empty +++ /dev/null @@ -1,2 +0,0 @@ -# This stream contains no -# documents, only comments. diff --git a/test/data/spec-05-06.canonical b/test/data/spec-05-06.canonical deleted file mode 100644 index 4f30c111..00000000 --- a/test/data/spec-05-06.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "anchored" - : &A1 !local "value", - ? !!str "alias" - : *A1, -} diff --git a/test/data/spec-05-06.data b/test/data/spec-05-06.data deleted file mode 100644 index 7a1f9b30..00000000 --- a/test/data/spec-05-06.data +++ /dev/null @@ -1,2 +0,0 @@ -anchored: !local &anchor value -alias: *anchor diff --git a/test/data/spec-05-06.test_loader_skip b/test/data/spec-05-06.test_loader_skip deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-05-07.canonical b/test/data/spec-05-07.canonical deleted file mode 100644 index dc3732a5..00000000 --- a/test/data/spec-05-07.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "literal" - : !!str "text\n", - ? !!str "folded" - : !!str "text\n", -} diff --git a/test/data/spec-05-07.data b/test/data/spec-05-07.data deleted file mode 100644 index 97eb3a34..00000000 --- a/test/data/spec-05-07.data +++ /dev/null @@ -1,4 +0,0 @@ -literal: | - text -folded: > - text diff --git a/test/data/spec-05-08.canonical b/test/data/spec-05-08.canonical deleted file mode 100644 index 610bd687..00000000 --- a/test/data/spec-05-08.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "single" - : !!str "text", - ? !!str "double" - : !!str "text", -} diff --git a/test/data/spec-05-08.data b/test/data/spec-05-08.data deleted file mode 100644 index 04ebf691..00000000 --- a/test/data/spec-05-08.data +++ /dev/null @@ -1,2 +0,0 @@ -single: 'text' -double: "text" diff --git a/test/data/spec-05-09.canonical b/test/data/spec-05-09.canonical deleted file mode 100644 index 597e3dea..00000000 --- a/test/data/spec-05-09.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!str "text" diff --git a/test/data/spec-05-09.data b/test/data/spec-05-09.data deleted file mode 100644 index a43431bd..00000000 --- a/test/data/spec-05-09.data +++ /dev/null @@ -1,2 +0,0 @@ -%YAML 1.1 ---- text diff --git a/test/data/spec-05-10.data b/test/data/spec-05-10.data deleted file mode 100644 index a4caf911..00000000 --- a/test/data/spec-05-10.data +++ /dev/null @@ -1,2 +0,0 @@ -commercial-at: @text -grave-accent: `text diff --git a/test/data/spec-05-10.error b/test/data/spec-05-10.error deleted file mode 100644 index 46f776e5..00000000 --- a/test/data/spec-05-10.error +++ /dev/null @@ -1,3 +0,0 @@ -ERROR: - Reserved indicators can't - start a plain scalar. diff --git a/test/data/spec-05-11.canonical b/test/data/spec-05-11.canonical deleted file mode 100644 index fc25bef4..00000000 --- a/test/data/spec-05-11.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- !!str -"Generic line break (no glyph)\n\ - Generic line break (glyphed)\n\ - Line separator\u2028\ - Paragraph separator\u2029" diff --git a/test/data/spec-05-11.data b/test/data/spec-05-11.data deleted file mode 100644 index b448b759..00000000 --- a/test/data/spec-05-11.data +++ /dev/null @@ -1,3 +0,0 @@ -| - Generic line break (no glyph) - Generic line break (glyphed)… Line separator
 Paragraph separator
 \ No newline at end of file diff --git a/test/data/spec-05-12.data b/test/data/spec-05-12.data deleted file mode 100644 index 7c3ad7f3..00000000 --- a/test/data/spec-05-12.data +++ /dev/null @@ -1,9 +0,0 @@ -# Tabs do's and don'ts: -# comment: -quoted: "Quoted " -block: | - void main() { - printf("Hello, world!\n"); - } -elsewhere: # separation - indentation, in plain scalar diff --git a/test/data/spec-05-12.error b/test/data/spec-05-12.error deleted file mode 100644 index 8aad4c8a..00000000 --- a/test/data/spec-05-12.error +++ /dev/null @@ -1,8 +0,0 @@ -ERROR: - Tabs may appear inside - comments and quoted or - block scalar content. - Tabs must not appear - elsewhere, such as - in indentation and - separation spaces. diff --git a/test/data/spec-05-13.canonical b/test/data/spec-05-13.canonical deleted file mode 100644 index 90c1c5c3..00000000 --- a/test/data/spec-05-13.canonical +++ /dev/null @@ -1,5 +0,0 @@ -%YAML 1.1 ---- !!str -"Text containing \ - both space and \ - tab characters" diff --git a/test/data/spec-05-13.data b/test/data/spec-05-13.data deleted file mode 100644 index fce7951c..00000000 --- a/test/data/spec-05-13.data +++ /dev/null @@ -1,3 +0,0 @@ - "Text containing - both space and - tab characters" diff --git a/test/data/spec-05-14.canonical b/test/data/spec-05-14.canonical deleted file mode 100644 index 4bff01cb..00000000 --- a/test/data/spec-05-14.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -"Fun with \x5C - \x22 \x07 \x08 \x1B \x0C - \x0A \x0D \x09 \x0B \x00 - \x20 \xA0 \x85 \u2028 \u2029 - A A A" diff --git a/test/data/spec-05-14.data b/test/data/spec-05-14.data deleted file mode 100644 index d6e8ce49..00000000 --- a/test/data/spec-05-14.data +++ /dev/null @@ -1,2 +0,0 @@ -"Fun with \\ - \" \a \b \e \f \… \n \r \t \v \0 \
 \ \_ \N \L \P \
 \x41 \u0041 \U00000041" diff --git a/test/data/spec-05-15.data b/test/data/spec-05-15.data deleted file mode 100644 index 7bf12b6c..00000000 --- a/test/data/spec-05-15.data +++ /dev/null @@ -1,3 +0,0 @@ -Bad escapes: - "\c - \xq-" diff --git a/test/data/spec-05-15.error b/test/data/spec-05-15.error deleted file mode 100644 index 71ffbd96..00000000 --- a/test/data/spec-05-15.error +++ /dev/null @@ -1,3 +0,0 @@ -ERROR: -- c is an invalid escaped character. -- q and - are invalid hex digits. diff --git a/test/data/spec-06-01.canonical b/test/data/spec-06-01.canonical deleted file mode 100644 index f17ec922..00000000 --- a/test/data/spec-06-01.canonical +++ /dev/null @@ -1,15 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "Not indented" - : !!map { - ? !!str "By one space" - : !!str "By four\n spaces\n", - ? !!str "Flow style" - : !!seq [ - !!str "By two", - !!str "Also by two", - !!str "Still by two", - ] - } -} diff --git a/test/data/spec-06-01.data b/test/data/spec-06-01.data deleted file mode 100644 index 6134ba12..00000000 --- a/test/data/spec-06-01.data +++ /dev/null @@ -1,14 +0,0 @@ - # Leading comment line spaces are - # neither content nor indentation. - -Not indented: - By one space: | - By four - spaces - Flow style: [ # Leading spaces - By two, # in flow style - Also by two, # are neither -# Tabs are not allowed: -# Still by two # content nor - Still by two # content nor - ] # indentation. diff --git a/test/data/spec-06-02.data b/test/data/spec-06-02.data deleted file mode 100644 index ff741e5f..00000000 --- a/test/data/spec-06-02.data +++ /dev/null @@ -1,3 +0,0 @@ - # Comment - - diff --git a/test/data/spec-06-02.empty b/test/data/spec-06-02.empty deleted file mode 100644 index bfffa8b6..00000000 --- a/test/data/spec-06-02.empty +++ /dev/null @@ -1,2 +0,0 @@ -# This stream contains no -# documents, only comments. diff --git a/test/data/spec-06-03.canonical b/test/data/spec-06-03.canonical deleted file mode 100644 index ec269022..00000000 --- a/test/data/spec-06-03.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "key" - : !!str "value" -} diff --git a/test/data/spec-06-03.data b/test/data/spec-06-03.data deleted file mode 100644 index 9db09129..00000000 --- a/test/data/spec-06-03.data +++ /dev/null @@ -1,2 +0,0 @@ -key: # Comment - value diff --git a/test/data/spec-06-04.canonical b/test/data/spec-06-04.canonical deleted file mode 100644 index ec269022..00000000 --- a/test/data/spec-06-04.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "key" - : !!str "value" -} diff --git a/test/data/spec-06-04.data b/test/data/spec-06-04.data deleted file mode 100644 index 86308dd3..00000000 --- a/test/data/spec-06-04.data +++ /dev/null @@ -1,4 +0,0 @@ -key: # Comment - # lines - value - diff --git a/test/data/spec-06-05.canonical b/test/data/spec-06-05.canonical deleted file mode 100644 index 8da431d0..00000000 --- a/test/data/spec-06-05.canonical +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!map { - ? !!str "first" - : !!str "Sammy", - ? !!str "last" - : !!str "Sosa" - } - : !!map { - ? !!str "hr" - : !!int "65", - ? !!str "avg" - : !!float "0.278" - } -} diff --git a/test/data/spec-06-05.data b/test/data/spec-06-05.data deleted file mode 100644 index 37613f5b..00000000 --- a/test/data/spec-06-05.data +++ /dev/null @@ -1,6 +0,0 @@ -{ first: Sammy, last: Sosa }: -# Statistics: - hr: # Home runs - 65 - avg: # Average - 0.278 diff --git a/test/data/spec-06-06.canonical b/test/data/spec-06-06.canonical deleted file mode 100644 index 513d07a1..00000000 --- a/test/data/spec-06-06.canonical +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "plain" - : !!str "text lines", - ? !!str "quoted" - : !!str "text lines", - ? !!str "block" - : !!str "text\n lines\n" -} diff --git a/test/data/spec-06-06.data b/test/data/spec-06-06.data deleted file mode 100644 index 2f62d082..00000000 --- a/test/data/spec-06-06.data +++ /dev/null @@ -1,7 +0,0 @@ -plain: text - lines -quoted: "text - lines" -block: | - text - lines diff --git a/test/data/spec-06-07.canonical b/test/data/spec-06-07.canonical deleted file mode 100644 index 11357e45..00000000 --- a/test/data/spec-06-07.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "foo\nbar", - !!str "foo\n\nbar" -] diff --git a/test/data/spec-06-07.data b/test/data/spec-06-07.data deleted file mode 100644 index 130cfa74..00000000 --- a/test/data/spec-06-07.data +++ /dev/null @@ -1,8 +0,0 @@ -- foo - - bar -- |- - foo - - bar - diff --git a/test/data/spec-06-08.canonical b/test/data/spec-06-08.canonical deleted file mode 100644 index cc72bc84..00000000 --- a/test/data/spec-06-08.canonical +++ /dev/null @@ -1,5 +0,0 @@ -%YAML 1.1 ---- !!str -"specific\L\ - trimmed\n\n\n\ - as space" diff --git a/test/data/spec-06-08.data b/test/data/spec-06-08.data deleted file mode 100644 index f2896edb..00000000 --- a/test/data/spec-06-08.data +++ /dev/null @@ -1,2 +0,0 @@ ->- - specific
 trimmed… … …… as… space diff --git a/test/data/spec-07-01.canonical b/test/data/spec-07-01.canonical deleted file mode 100644 index 8c8c48db..00000000 --- a/test/data/spec-07-01.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- !!str -"foo" diff --git a/test/data/spec-07-01.data b/test/data/spec-07-01.data deleted file mode 100644 index 2113eb61..00000000 --- a/test/data/spec-07-01.data +++ /dev/null @@ -1,3 +0,0 @@ -%FOO bar baz # Should be ignored - # with a warning. ---- "foo" diff --git a/test/data/spec-07-01.skip-ext b/test/data/spec-07-01.skip-ext deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-07-02.canonical b/test/data/spec-07-02.canonical deleted file mode 100644 index cb7dd1c3..00000000 --- a/test/data/spec-07-02.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!str "foo" diff --git a/test/data/spec-07-02.data b/test/data/spec-07-02.data deleted file mode 100644 index c8b73229..00000000 --- a/test/data/spec-07-02.data +++ /dev/null @@ -1,4 +0,0 @@ -%YAML 1.2 # Attempt parsing - # with a warning ---- -"foo" diff --git a/test/data/spec-07-02.skip-ext b/test/data/spec-07-02.skip-ext deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-07-03.data b/test/data/spec-07-03.data deleted file mode 100644 index 4bfa07ac..00000000 --- a/test/data/spec-07-03.data +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 -%YAML 1.1 -foo diff --git a/test/data/spec-07-03.error b/test/data/spec-07-03.error deleted file mode 100644 index b0ac446b..00000000 --- a/test/data/spec-07-03.error +++ /dev/null @@ -1,3 +0,0 @@ -ERROR: -The YAML directive must only be -given at most once per document. diff --git a/test/data/spec-07-04.canonical b/test/data/spec-07-04.canonical deleted file mode 100644 index cb7dd1c3..00000000 --- a/test/data/spec-07-04.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!str "foo" diff --git a/test/data/spec-07-04.data b/test/data/spec-07-04.data deleted file mode 100644 index 50f5ab93..00000000 --- a/test/data/spec-07-04.data +++ /dev/null @@ -1,3 +0,0 @@ -%TAG !yaml! tag:yaml.org,2002: ---- -!yaml!str "foo" diff --git a/test/data/spec-07-05.data b/test/data/spec-07-05.data deleted file mode 100644 index 7276eae9..00000000 --- a/test/data/spec-07-05.data +++ /dev/null @@ -1,3 +0,0 @@ -%TAG ! !foo -%TAG ! !foo -bar diff --git a/test/data/spec-07-05.error b/test/data/spec-07-05.error deleted file mode 100644 index 5601b194..00000000 --- a/test/data/spec-07-05.error +++ /dev/null @@ -1,4 +0,0 @@ -ERROR: -The TAG directive must only -be given at most once per -handle in the same document. diff --git a/test/data/spec-07-06.canonical b/test/data/spec-07-06.canonical deleted file mode 100644 index bddf6168..00000000 --- a/test/data/spec-07-06.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - ! "baz", - ! "string" -] diff --git a/test/data/spec-07-06.data b/test/data/spec-07-06.data deleted file mode 100644 index d9854cbd..00000000 --- a/test/data/spec-07-06.data +++ /dev/null @@ -1,5 +0,0 @@ -%TAG ! !foo -%TAG !yaml! tag:yaml.org,2002: ---- -- !bar "baz" -- !yaml!str "string" diff --git a/test/data/spec-07-06.test_loader_skip b/test/data/spec-07-06.test_loader_skip deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-07-07a.canonical b/test/data/spec-07-07a.canonical deleted file mode 100644 index fa086df9..00000000 --- a/test/data/spec-07-07a.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -! "bar" diff --git a/test/data/spec-07-07a.data b/test/data/spec-07-07a.data deleted file mode 100644 index 9d42ec3d..00000000 --- a/test/data/spec-07-07a.data +++ /dev/null @@ -1,2 +0,0 @@ -# Private application: -!foo "bar" diff --git a/test/data/spec-07-07a.test_loader_skip b/test/data/spec-07-07a.test_loader_skip deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-07-07b.canonical b/test/data/spec-07-07b.canonical deleted file mode 100644 index fe917d84..00000000 --- a/test/data/spec-07-07b.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -! "bar" diff --git a/test/data/spec-07-07b.data b/test/data/spec-07-07b.data deleted file mode 100644 index 2d36d0e0..00000000 --- a/test/data/spec-07-07b.data +++ /dev/null @@ -1,4 +0,0 @@ -# Migrated to global: -%TAG ! tag:ben-kiki.org,2000:app/ ---- -!foo "bar" diff --git a/test/data/spec-07-07b.test_loader_skip b/test/data/spec-07-07b.test_loader_skip deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-07-08.canonical b/test/data/spec-07-08.canonical deleted file mode 100644 index 703aa7b4..00000000 --- a/test/data/spec-07-08.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - ! "bar", - ! "string", - ! "baz" -] diff --git a/test/data/spec-07-08.data b/test/data/spec-07-08.data deleted file mode 100644 index e2c6d9e1..00000000 --- a/test/data/spec-07-08.data +++ /dev/null @@ -1,9 +0,0 @@ -# Explicitly specify default settings: -%TAG ! ! -%TAG !! tag:yaml.org,2002: -# Named handles have no default: -%TAG !o! tag:ben-kiki.org,2000: ---- -- !foo "bar" -- !!str "string" -- !o!type "baz" diff --git a/test/data/spec-07-08.test_loader_skip b/test/data/spec-07-08.test_loader_skip deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-07-09.canonical b/test/data/spec-07-09.canonical deleted file mode 100644 index 32d9e943..00000000 --- a/test/data/spec-07-09.canonical +++ /dev/null @@ -1,9 +0,0 @@ -%YAML 1.1 ---- -!!str "foo" -%YAML 1.1 ---- -!!str "bar" -%YAML 1.1 ---- -!!str "baz" diff --git a/test/data/spec-07-09.data b/test/data/spec-07-09.data deleted file mode 100644 index 1209d47b..00000000 --- a/test/data/spec-07-09.data +++ /dev/null @@ -1,11 +0,0 @@ ---- -foo -... -# Repeated end marker. -... ---- -bar -# No end marker. ---- -baz -... diff --git a/test/data/spec-07-10.canonical b/test/data/spec-07-10.canonical deleted file mode 100644 index 1db650a8..00000000 --- a/test/data/spec-07-10.canonical +++ /dev/null @@ -1,15 +0,0 @@ -%YAML 1.1 ---- -!!str "Root flow scalar" -%YAML 1.1 ---- -!!str "Root block scalar\n" -%YAML 1.1 ---- -!!map { - ? !!str "foo" - : !!str "bar" -} ---- -#!!str "" -!!null "" diff --git a/test/data/spec-07-10.data b/test/data/spec-07-10.data deleted file mode 100644 index 6939b392..00000000 --- a/test/data/spec-07-10.data +++ /dev/null @@ -1,11 +0,0 @@ -"Root flow - scalar" ---- !!str > - Root block - scalar ---- -# Root collection: -foo : bar -... # Is optional. ---- -# Explicit document may be empty. diff --git a/test/data/spec-07-11.data b/test/data/spec-07-11.data deleted file mode 100644 index d11302da..00000000 --- a/test/data/spec-07-11.data +++ /dev/null @@ -1,2 +0,0 @@ -# A stream may contain -# no documents. diff --git a/test/data/spec-07-11.empty b/test/data/spec-07-11.empty deleted file mode 100644 index bfffa8b6..00000000 --- a/test/data/spec-07-11.empty +++ /dev/null @@ -1,2 +0,0 @@ -# This stream contains no -# documents, only comments. diff --git a/test/data/spec-07-12a.canonical b/test/data/spec-07-12a.canonical deleted file mode 100644 index efc116f1..00000000 --- a/test/data/spec-07-12a.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "foo" - : !!str "bar" -} diff --git a/test/data/spec-07-12a.data b/test/data/spec-07-12a.data deleted file mode 100644 index 3807d57d..00000000 --- a/test/data/spec-07-12a.data +++ /dev/null @@ -1,3 +0,0 @@ -# Implicit document. Root -# collection (mapping) node. -foo : bar diff --git a/test/data/spec-07-12b.canonical b/test/data/spec-07-12b.canonical deleted file mode 100644 index 04bcffc8..00000000 --- a/test/data/spec-07-12b.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!str "Text content\n" diff --git a/test/data/spec-07-12b.data b/test/data/spec-07-12b.data deleted file mode 100644 index 43250db3..00000000 --- a/test/data/spec-07-12b.data +++ /dev/null @@ -1,4 +0,0 @@ -# Explicit document. Root -# scalar (literal) node. ---- | - Text content diff --git a/test/data/spec-07-13.canonical b/test/data/spec-07-13.canonical deleted file mode 100644 index 5af71e91..00000000 --- a/test/data/spec-07-13.canonical +++ /dev/null @@ -1,9 +0,0 @@ -%YAML 1.1 ---- -!!str "First document" ---- -! "No directives" ---- -! "With directives" ---- -! "Reset settings" diff --git a/test/data/spec-07-13.data b/test/data/spec-07-13.data deleted file mode 100644 index ba7ec63e..00000000 --- a/test/data/spec-07-13.data +++ /dev/null @@ -1,9 +0,0 @@ -! "First document" ---- -!foo "No directives" -%TAG ! !foo ---- -!bar "With directives" -%YAML 1.1 ---- -!baz "Reset settings" diff --git a/test/data/spec-07-13.test_loader_skip b/test/data/spec-07-13.test_loader_skip deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-08-01.canonical b/test/data/spec-08-01.canonical deleted file mode 100644 index 69e4161b..00000000 --- a/test/data/spec-08-01.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? &A1 !!str "foo" - : !!str "bar", - ? &A2 !!str "baz" - : *A1 -} diff --git a/test/data/spec-08-01.data b/test/data/spec-08-01.data deleted file mode 100644 index 48986ecb..00000000 --- a/test/data/spec-08-01.data +++ /dev/null @@ -1,2 +0,0 @@ -!!str &a1 "foo" : !!str bar -&a2 baz : *a1 diff --git a/test/data/spec-08-02.canonical b/test/data/spec-08-02.canonical deleted file mode 100644 index dd6f76ec..00000000 --- a/test/data/spec-08-02.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "First occurrence" - : &A !!str "Value", - ? !!str "Second occurrence" - : *A -} diff --git a/test/data/spec-08-02.data b/test/data/spec-08-02.data deleted file mode 100644 index 600d1792..00000000 --- a/test/data/spec-08-02.data +++ /dev/null @@ -1,2 +0,0 @@ -First occurrence: &anchor Value -Second occurrence: *anchor diff --git a/test/data/spec-08-03.canonical b/test/data/spec-08-03.canonical deleted file mode 100644 index be7ea8f3..00000000 --- a/test/data/spec-08-03.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? ! "foo" - : ! "baz" -} diff --git a/test/data/spec-08-03.data b/test/data/spec-08-03.data deleted file mode 100644 index 8e51f52a..00000000 --- a/test/data/spec-08-03.data +++ /dev/null @@ -1,2 +0,0 @@ -! foo : - ! baz diff --git a/test/data/spec-08-03.test_loader_skip b/test/data/spec-08-03.test_loader_skip deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-08-04.data b/test/data/spec-08-04.data deleted file mode 100644 index f7d1b01e..00000000 --- a/test/data/spec-08-04.data +++ /dev/null @@ -1,2 +0,0 @@ -- ! foo -- !<$:?> bar diff --git a/test/data/spec-08-04.error b/test/data/spec-08-04.error deleted file mode 100644 index 60663755..00000000 --- a/test/data/spec-08-04.error +++ /dev/null @@ -1,6 +0,0 @@ -ERROR: -- Verbatim tags aren't resolved, - so ! is invalid. -- The $:? tag is neither a global - URI tag nor a local tag starting - with “!”. diff --git a/test/data/spec-08-05.canonical b/test/data/spec-08-05.canonical deleted file mode 100644 index a5c710ae..00000000 --- a/test/data/spec-08-05.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - ! "foo", - ! "bar", - ! "baz", -] diff --git a/test/data/spec-08-05.data b/test/data/spec-08-05.data deleted file mode 100644 index 93576ed7..00000000 --- a/test/data/spec-08-05.data +++ /dev/null @@ -1,5 +0,0 @@ -%TAG !o! tag:ben-kiki.org,2000: ---- -- !local foo -- !!str bar -- !o!type baz diff --git a/test/data/spec-08-05.test_loader_skip b/test/data/spec-08-05.test_loader_skip deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-08-06.data b/test/data/spec-08-06.data deleted file mode 100644 index 85800105..00000000 --- a/test/data/spec-08-06.data +++ /dev/null @@ -1,5 +0,0 @@ -%TAG !o! tag:ben-kiki.org,2000: ---- -- !$a!b foo -- !o! bar -- !h!type baz diff --git a/test/data/spec-08-06.error b/test/data/spec-08-06.error deleted file mode 100644 index fb76f426..00000000 --- a/test/data/spec-08-06.error +++ /dev/null @@ -1,4 +0,0 @@ -ERROR: -- The !$a! looks like a handle. -- The !o! handle has no suffix. -- The !h! handle wasn't declared. diff --git a/test/data/spec-08-07.canonical b/test/data/spec-08-07.canonical deleted file mode 100644 index e2f43d97..00000000 --- a/test/data/spec-08-07.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - ! "12", - ! "12", -# ! "12", - ! "12", -] diff --git a/test/data/spec-08-07.data b/test/data/spec-08-07.data deleted file mode 100644 index 98aa565e..00000000 --- a/test/data/spec-08-07.data +++ /dev/null @@ -1,4 +0,0 @@ -# Assuming conventional resolution: -- "12" -- 12 -- ! 12 diff --git a/test/data/spec-08-08.canonical b/test/data/spec-08-08.canonical deleted file mode 100644 index d3f8b1a7..00000000 --- a/test/data/spec-08-08.canonical +++ /dev/null @@ -1,15 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "foo" - : !!str "bar baz" -} -%YAML 1.1 ---- -!!str "foo bar" -%YAML 1.1 ---- -!!str "foo bar" -%YAML 1.1 ---- -!!str "foo\n" diff --git a/test/data/spec-08-08.data b/test/data/spec-08-08.data deleted file mode 100644 index 757a93dd..00000000 --- a/test/data/spec-08-08.data +++ /dev/null @@ -1,13 +0,0 @@ ---- -foo: - "bar - baz" ---- -"foo - bar" ---- -foo - bar ---- | - foo -... diff --git a/test/data/spec-08-09.canonical b/test/data/spec-08-09.canonical deleted file mode 100644 index 3805daf0..00000000 --- a/test/data/spec-08-09.canonical +++ /dev/null @@ -1,21 +0,0 @@ -%YAML 1.1 ---- !!map { - ? !!str "scalars" : !!map { - ? !!str "plain" - : !!str "some text", - ? !!str "quoted" - : !!map { - ? !!str "single" - : !!str "some text", - ? !!str "double" - : !!str "some text" - } }, - ? !!str "collections" : !!map { - ? !!str "sequence" : !!seq [ - !!str "entry", - !!map { - ? !!str "key" : !!str "value" - } ], - ? !!str "mapping" : !!map { - ? !!str "key" : !!str "value" -} } } diff --git a/test/data/spec-08-09.data b/test/data/spec-08-09.data deleted file mode 100644 index 69da0422..00000000 --- a/test/data/spec-08-09.data +++ /dev/null @@ -1,11 +0,0 @@ ---- -scalars: - plain: !!str some text - quoted: - single: 'some text' - double: "some text" -collections: - sequence: !!seq [ !!str entry, - # Mapping entry: - key: value ] - mapping: { key: value } diff --git a/test/data/spec-08-10.canonical b/test/data/spec-08-10.canonical deleted file mode 100644 index 8281c5ef..00000000 --- a/test/data/spec-08-10.canonical +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "block styles" : !!map { - ? !!str "scalars" : !!map { - ? !!str "literal" - : !!str "#!/usr/bin/perl\n\ - print \"Hello, - world!\\n\";\n", - ? !!str "folded" - : !!str "This sentence - is false.\n" - }, - ? !!str "collections" : !!map { - ? !!str "sequence" : !!seq [ - !!str "entry", - !!map { - ? !!str "key" : !!str "value" - } - ], - ? !!str "mapping" : !!map { - ? !!str "key" : !!str "value" -} } } } diff --git a/test/data/spec-08-10.data b/test/data/spec-08-10.data deleted file mode 100644 index 72acc56b..00000000 --- a/test/data/spec-08-10.data +++ /dev/null @@ -1,15 +0,0 @@ -block styles: - scalars: - literal: !!str | - #!/usr/bin/perl - print "Hello, world!\n"; - folded: > - This sentence - is false. - collections: !!map - sequence: !!seq # Entry: - - entry # Plain - # Mapping entry: - - key: value - mapping: - key: value diff --git a/test/data/spec-08-11.canonical b/test/data/spec-08-11.canonical deleted file mode 100644 index dd6f76ec..00000000 --- a/test/data/spec-08-11.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "First occurrence" - : &A !!str "Value", - ? !!str "Second occurrence" - : *A -} diff --git a/test/data/spec-08-11.data b/test/data/spec-08-11.data deleted file mode 100644 index 600d1792..00000000 --- a/test/data/spec-08-11.data +++ /dev/null @@ -1,2 +0,0 @@ -First occurrence: &anchor Value -Second occurrence: *anchor diff --git a/test/data/spec-08-12.canonical b/test/data/spec-08-12.canonical deleted file mode 100644 index 93899f4e..00000000 --- a/test/data/spec-08-12.canonical +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "Without properties", - &A !!str "Anchored", - !!str "Tagged", - *A, - !!str "", - !!str "", -] diff --git a/test/data/spec-08-12.data b/test/data/spec-08-12.data deleted file mode 100644 index 3d4c6b7c..00000000 --- a/test/data/spec-08-12.data +++ /dev/null @@ -1,8 +0,0 @@ -[ - Without properties, - &anchor "Anchored", - !!str 'Tagged', - *anchor, # Alias node - !!str , # Empty plain scalar - '', # Empty plain scalar -] diff --git a/test/data/spec-08-13.canonical b/test/data/spec-08-13.canonical deleted file mode 100644 index 618bb7bd..00000000 --- a/test/data/spec-08-13.canonical +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "foo" -# : !!str "", -# ? !!str "" - : !!null "", - ? !!null "" - : !!str "bar", -} diff --git a/test/data/spec-08-13.data b/test/data/spec-08-13.data deleted file mode 100644 index ebe663ac..00000000 --- a/test/data/spec-08-13.data +++ /dev/null @@ -1,4 +0,0 @@ -{ - ? foo :, - ? : bar, -} diff --git a/test/data/spec-08-13.skip-ext b/test/data/spec-08-13.skip-ext deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-08-14.canonical b/test/data/spec-08-14.canonical deleted file mode 100644 index 11db439f..00000000 --- a/test/data/spec-08-14.canonical +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "flow in block", - !!str "Block scalar\n", - !!map { - ? !!str "foo" - : !!str "bar" - } -] diff --git a/test/data/spec-08-14.data b/test/data/spec-08-14.data deleted file mode 100644 index 2fbb1f70..00000000 --- a/test/data/spec-08-14.data +++ /dev/null @@ -1,5 +0,0 @@ -- "flow in block" -- > - Block scalar -- !!map # Block collection - foo : bar diff --git a/test/data/spec-08-15.canonical b/test/data/spec-08-15.canonical deleted file mode 100644 index 76f028e6..00000000 --- a/test/data/spec-08-15.canonical +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!null "", - !!map { - ? !!str "foo" - : !!null "", - ? !!null "" - : !!str "bar", - } -] diff --git a/test/data/spec-08-15.data b/test/data/spec-08-15.data deleted file mode 100644 index 7c86bcf3..00000000 --- a/test/data/spec-08-15.data +++ /dev/null @@ -1,5 +0,0 @@ -- # Empty plain scalar -- ? foo - : - ? - : bar diff --git a/test/data/spec-09-01.canonical b/test/data/spec-09-01.canonical deleted file mode 100644 index e71a5484..00000000 --- a/test/data/spec-09-01.canonical +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "simple key" - : !!map { - ? !!str "also simple" - : !!str "value", - ? !!str "not a simple key" - : !!str "any value" - } -} diff --git a/test/data/spec-09-01.data b/test/data/spec-09-01.data deleted file mode 100644 index 9e83eaff..00000000 --- a/test/data/spec-09-01.data +++ /dev/null @@ -1,6 +0,0 @@ -"simple key" : { - "also simple" : value, - ? "not a - simple key" : "any - value" -} diff --git a/test/data/spec-09-02.canonical b/test/data/spec-09-02.canonical deleted file mode 100644 index 6f8f41ad..00000000 --- a/test/data/spec-09-02.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!str "as space \ - trimmed\n\ - specific\L\n\ - escaped\t\n\ - none" diff --git a/test/data/spec-09-02.data b/test/data/spec-09-02.data deleted file mode 100644 index d84883dc..00000000 --- a/test/data/spec-09-02.data +++ /dev/null @@ -1,6 +0,0 @@ - "as space - trimmed - - specific
 - escaped \
 - none" diff --git a/test/data/spec-09-03.canonical b/test/data/spec-09-03.canonical deleted file mode 100644 index 658c6df8..00000000 --- a/test/data/spec-09-03.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str " last", - !!str " last", - !!str " \tfirst last", -] diff --git a/test/data/spec-09-03.data b/test/data/spec-09-03.data deleted file mode 100644 index e0b914d7..00000000 --- a/test/data/spec-09-03.data +++ /dev/null @@ -1,6 +0,0 @@ -- " - last" -- " - last" -- " first - last" diff --git a/test/data/spec-09-04.canonical b/test/data/spec-09-04.canonical deleted file mode 100644 index fa466324..00000000 --- a/test/data/spec-09-04.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!str "first \ - inner 1 \ - inner 2 \ - last" diff --git a/test/data/spec-09-04.data b/test/data/spec-09-04.data deleted file mode 100644 index 313a91b4..00000000 --- a/test/data/spec-09-04.data +++ /dev/null @@ -1,4 +0,0 @@ - "first - inner 1 - \ inner 2 \ - last" diff --git a/test/data/spec-09-05.canonical b/test/data/spec-09-05.canonical deleted file mode 100644 index 24d10528..00000000 --- a/test/data/spec-09-05.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "first ", - !!str "first\nlast", - !!str "first inner \tlast", -] diff --git a/test/data/spec-09-05.data b/test/data/spec-09-05.data deleted file mode 100644 index 624c30ea..00000000 --- a/test/data/spec-09-05.data +++ /dev/null @@ -1,8 +0,0 @@ -- "first - " -- "first - - last" -- "first - inner - \ last" diff --git a/test/data/spec-09-06.canonical b/test/data/spec-09-06.canonical deleted file mode 100644 index 50287722..00000000 --- a/test/data/spec-09-06.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!str "here's to \"quotes\"" diff --git a/test/data/spec-09-06.data b/test/data/spec-09-06.data deleted file mode 100644 index b038078e..00000000 --- a/test/data/spec-09-06.data +++ /dev/null @@ -1 +0,0 @@ - 'here''s to "quotes"' diff --git a/test/data/spec-09-07.canonical b/test/data/spec-09-07.canonical deleted file mode 100644 index e71a5484..00000000 --- a/test/data/spec-09-07.canonical +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "simple key" - : !!map { - ? !!str "also simple" - : !!str "value", - ? !!str "not a simple key" - : !!str "any value" - } -} diff --git a/test/data/spec-09-07.data b/test/data/spec-09-07.data deleted file mode 100644 index 755b54a0..00000000 --- a/test/data/spec-09-07.data +++ /dev/null @@ -1,6 +0,0 @@ -'simple key' : { - 'also simple' : value, - ? 'not a - simple key' : 'any - value' -} diff --git a/test/data/spec-09-08.canonical b/test/data/spec-09-08.canonical deleted file mode 100644 index 06abdb5f..00000000 --- a/test/data/spec-09-08.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!str "as space \ - trimmed\n\ - specific\L\n\ - none" diff --git a/test/data/spec-09-08.data b/test/data/spec-09-08.data deleted file mode 100644 index aa4d4589..00000000 --- a/test/data/spec-09-08.data +++ /dev/null @@ -1 +0,0 @@ - 'as space … trimmed …… specific
… none' diff --git a/test/data/spec-09-09.canonical b/test/data/spec-09-09.canonical deleted file mode 100644 index 658c6df8..00000000 --- a/test/data/spec-09-09.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str " last", - !!str " last", - !!str " \tfirst last", -] diff --git a/test/data/spec-09-09.data b/test/data/spec-09-09.data deleted file mode 100644 index 52171df3..00000000 --- a/test/data/spec-09-09.data +++ /dev/null @@ -1,6 +0,0 @@ -- ' - last' -- ' - last' -- ' first - last' diff --git a/test/data/spec-09-10.canonical b/test/data/spec-09-10.canonical deleted file mode 100644 index 2028d044..00000000 --- a/test/data/spec-09-10.canonical +++ /dev/null @@ -1,5 +0,0 @@ -%YAML 1.1 ---- -!!str "first \ - inner \ - last" diff --git a/test/data/spec-09-10.data b/test/data/spec-09-10.data deleted file mode 100644 index 0e414495..00000000 --- a/test/data/spec-09-10.data +++ /dev/null @@ -1,3 +0,0 @@ - 'first - inner - last' diff --git a/test/data/spec-09-11.canonical b/test/data/spec-09-11.canonical deleted file mode 100644 index 4eb222c9..00000000 --- a/test/data/spec-09-11.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "first ", - !!str "first\nlast", -] diff --git a/test/data/spec-09-11.data b/test/data/spec-09-11.data deleted file mode 100644 index 5efa873b..00000000 --- a/test/data/spec-09-11.data +++ /dev/null @@ -1,5 +0,0 @@ -- 'first - ' -- 'first - - last' diff --git a/test/data/spec-09-12.canonical b/test/data/spec-09-12.canonical deleted file mode 100644 index d8e6dce7..00000000 --- a/test/data/spec-09-12.canonical +++ /dev/null @@ -1,12 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "::std::vector", - !!str "Up, up, and away!", - !!int "-123", - !!seq [ - !!str "::std::vector", - !!str "Up, up, and away!", - !!int "-123", - ] -] diff --git a/test/data/spec-09-12.data b/test/data/spec-09-12.data deleted file mode 100644 index b9a3ac53..00000000 --- a/test/data/spec-09-12.data +++ /dev/null @@ -1,8 +0,0 @@ -# Outside flow collection: -- ::std::vector -- Up, up, and away! -- -123 -# Inside flow collection: -- [ '::std::vector', - "Up, up, and away!", - -123 ] diff --git a/test/data/spec-09-13.canonical b/test/data/spec-09-13.canonical deleted file mode 100644 index e71a5484..00000000 --- a/test/data/spec-09-13.canonical +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "simple key" - : !!map { - ? !!str "also simple" - : !!str "value", - ? !!str "not a simple key" - : !!str "any value" - } -} diff --git a/test/data/spec-09-13.data b/test/data/spec-09-13.data deleted file mode 100644 index b156386a..00000000 --- a/test/data/spec-09-13.data +++ /dev/null @@ -1,6 +0,0 @@ -simple key : { - also simple : value, - ? not a - simple key : any - value -} diff --git a/test/data/spec-09-14.data b/test/data/spec-09-14.data deleted file mode 100644 index 97f23162..00000000 --- a/test/data/spec-09-14.data +++ /dev/null @@ -1,14 +0,0 @@ ---- ---- ||| : foo -... >>>: bar ---- -[ ---- -, -... , -{ ---- : -... # Nested -} -] -... diff --git a/test/data/spec-09-14.error b/test/data/spec-09-14.error deleted file mode 100644 index 9f3db7b0..00000000 --- a/test/data/spec-09-14.error +++ /dev/null @@ -1,6 +0,0 @@ -ERROR: - The --- and ... document - start and end markers must - not be specified as the - first content line of a - non-indented plain scalar. diff --git a/test/data/spec-09-15.canonical b/test/data/spec-09-15.canonical deleted file mode 100644 index df020407..00000000 --- a/test/data/spec-09-15.canonical +++ /dev/null @@ -1,18 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "---" - : !!str "foo", - ? !!str "..." - : !!str "bar" -} -%YAML 1.1 ---- -!!seq [ - !!str "---", - !!str "...", - !!map { - ? !!str "---" - : !!str "..." - } -] diff --git a/test/data/spec-09-15.data b/test/data/spec-09-15.data deleted file mode 100644 index e6863b04..00000000 --- a/test/data/spec-09-15.data +++ /dev/null @@ -1,13 +0,0 @@ ---- -"---" : foo -...: bar ---- -[ ----, -..., -{ -? --- -: ... -} -] -... diff --git a/test/data/spec-09-16.canonical b/test/data/spec-09-16.canonical deleted file mode 100644 index 06abdb5f..00000000 --- a/test/data/spec-09-16.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!str "as space \ - trimmed\n\ - specific\L\n\ - none" diff --git a/test/data/spec-09-16.data b/test/data/spec-09-16.data deleted file mode 100644 index 473beb9a..00000000 --- a/test/data/spec-09-16.data +++ /dev/null @@ -1,3 +0,0 @@ -# Tabs are confusing: -# as space/trimmed/specific/none - as space … trimmed …… specific
… none diff --git a/test/data/spec-09-17.canonical b/test/data/spec-09-17.canonical deleted file mode 100644 index 68cb70d1..00000000 --- a/test/data/spec-09-17.canonical +++ /dev/null @@ -1,4 +0,0 @@ -%YAML 1.1 ---- -!!str "first line\n\ - more line" diff --git a/test/data/spec-09-17.data b/test/data/spec-09-17.data deleted file mode 100644 index 97bc46c4..00000000 --- a/test/data/spec-09-17.data +++ /dev/null @@ -1,3 +0,0 @@ - first line - - more line diff --git a/test/data/spec-09-18.canonical b/test/data/spec-09-18.canonical deleted file mode 100644 index f21428f6..00000000 --- a/test/data/spec-09-18.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "literal\n", - !!str " folded\n", - !!str "keep\n\n", - !!str " strip", -] diff --git a/test/data/spec-09-18.data b/test/data/spec-09-18.data deleted file mode 100644 index 68c5d7cc..00000000 --- a/test/data/spec-09-18.data +++ /dev/null @@ -1,9 +0,0 @@ -- | # Just the style - literal -- >1 # Indentation indicator - folded -- |+ # Chomping indicator - keep - -- >-1 # Both indicators - strip diff --git a/test/data/spec-09-19.canonical b/test/data/spec-09-19.canonical deleted file mode 100644 index 3e828d7d..00000000 --- a/test/data/spec-09-19.canonical +++ /dev/null @@ -1,6 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "literal\n", - !!str "folded\n", -] diff --git a/test/data/spec-09-19.data b/test/data/spec-09-19.data deleted file mode 100644 index f0e589dc..00000000 --- a/test/data/spec-09-19.data +++ /dev/null @@ -1,4 +0,0 @@ -- | - literal -- > - folded diff --git a/test/data/spec-09-20.canonical b/test/data/spec-09-20.canonical deleted file mode 100644 index d03bef51..00000000 --- a/test/data/spec-09-20.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "detected\n", - !!str "\n\n# detected\n", - !!str " explicit\n", - !!str "\t\ndetected\n", -] diff --git a/test/data/spec-09-20.data b/test/data/spec-09-20.data deleted file mode 100644 index 39bee044..00000000 --- a/test/data/spec-09-20.data +++ /dev/null @@ -1,11 +0,0 @@ -- | - detected -- > - - - # detected -- |1 - explicit -- > - - detected diff --git a/test/data/spec-09-20.skip-ext b/test/data/spec-09-20.skip-ext deleted file mode 100644 index e69de29b..00000000 diff --git a/test/data/spec-09-21.data b/test/data/spec-09-21.data deleted file mode 100644 index 0fdd14f2..00000000 --- a/test/data/spec-09-21.data +++ /dev/null @@ -1,8 +0,0 @@ -- | - - text -- > - text - text -- |1 - text diff --git a/test/data/spec-09-21.error b/test/data/spec-09-21.error deleted file mode 100644 index 1379ca50..00000000 --- a/test/data/spec-09-21.error +++ /dev/null @@ -1,7 +0,0 @@ -ERROR: -- A leading all-space line must - not have too many spaces. -- A following text line must - not be less indented. -- The text is less indented - than the indicated level. diff --git a/test/data/spec-09-22.canonical b/test/data/spec-09-22.canonical deleted file mode 100644 index c1bbcd22..00000000 --- a/test/data/spec-09-22.canonical +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "strip" - : !!str "text", - ? !!str "clip" - : !!str "text\n", - ? !!str "keep" - : !!str "text\L", -} diff --git a/test/data/spec-09-22.data b/test/data/spec-09-22.data deleted file mode 100644 index 0dd51eb3..00000000 --- a/test/data/spec-09-22.data +++ /dev/null @@ -1,4 +0,0 @@ -strip: |- - text
clip: | - text…keep: |+ - text
 \ No newline at end of file diff --git a/test/data/spec-09-23.canonical b/test/data/spec-09-23.canonical deleted file mode 100644 index c4444caa..00000000 --- a/test/data/spec-09-23.canonical +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "strip" - : !!str "# text", - ? !!str "clip" - : !!str "# text\n", - ? !!str "keep" - : !!str "# text\L\n", -} diff --git a/test/data/spec-09-23.data b/test/data/spec-09-23.data deleted file mode 100644 index 8972d2b6..00000000 --- a/test/data/spec-09-23.data +++ /dev/null @@ -1,11 +0,0 @@ - # Strip - # Comments: -strip: |- - # text
 
 # Clip - # comments: -…clip: | - # text… 
 # Keep - # comments: -…keep: |+ - # text
… # Trail - # comments. diff --git a/test/data/spec-09-24.canonical b/test/data/spec-09-24.canonical deleted file mode 100644 index 45a99b01..00000000 --- a/test/data/spec-09-24.canonical +++ /dev/null @@ -1,10 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "strip" - : !!str "", - ? !!str "clip" - : !!str "", - ? !!str "keep" - : !!str "\n", -} diff --git a/test/data/spec-09-24.data b/test/data/spec-09-24.data deleted file mode 100644 index de0b64bb..00000000 --- a/test/data/spec-09-24.data +++ /dev/null @@ -1,6 +0,0 @@ -strip: >- - -clip: > - -keep: |+ - diff --git a/test/data/spec-09-25.canonical b/test/data/spec-09-25.canonical deleted file mode 100644 index 9d2327bb..00000000 --- a/test/data/spec-09-25.canonical +++ /dev/null @@ -1,4 +0,0 @@ -%YAML 1.1 ---- -!!str "literal\n\ - \ttext\n" diff --git a/test/data/spec-09-25.data b/test/data/spec-09-25.data deleted file mode 100644 index f6303a14..00000000 --- a/test/data/spec-09-25.data +++ /dev/null @@ -1,3 +0,0 @@ -| # Simple block scalar - literal - text diff --git a/test/data/spec-09-26.canonical b/test/data/spec-09-26.canonical deleted file mode 100644 index 3029a116..00000000 --- a/test/data/spec-09-26.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!str "\n\nliteral\n\ntext\n" diff --git a/test/data/spec-09-26.data b/test/data/spec-09-26.data deleted file mode 100644 index f28555ab..00000000 --- a/test/data/spec-09-26.data +++ /dev/null @@ -1,8 +0,0 @@ -| - - - literal - - text - - # Comment diff --git a/test/data/spec-09-27.canonical b/test/data/spec-09-27.canonical deleted file mode 100644 index 3029a116..00000000 --- a/test/data/spec-09-27.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!str "\n\nliteral\n\ntext\n" diff --git a/test/data/spec-09-27.data b/test/data/spec-09-27.data deleted file mode 100644 index f28555ab..00000000 --- a/test/data/spec-09-27.data +++ /dev/null @@ -1,8 +0,0 @@ -| - - - literal - - text - - # Comment diff --git a/test/data/spec-09-28.canonical b/test/data/spec-09-28.canonical deleted file mode 100644 index 3029a116..00000000 --- a/test/data/spec-09-28.canonical +++ /dev/null @@ -1,3 +0,0 @@ -%YAML 1.1 ---- -!!str "\n\nliteral\n\ntext\n" diff --git a/test/data/spec-09-28.data b/test/data/spec-09-28.data deleted file mode 100644 index f28555ab..00000000 --- a/test/data/spec-09-28.data +++ /dev/null @@ -1,8 +0,0 @@ -| - - - literal - - text - - # Comment diff --git a/test/data/spec-09-29.canonical b/test/data/spec-09-29.canonical deleted file mode 100644 index 0980789a..00000000 --- a/test/data/spec-09-29.canonical +++ /dev/null @@ -1,4 +0,0 @@ -%YAML 1.1 ---- -!!str "folded text\n\ - \tlines\n" diff --git a/test/data/spec-09-29.data b/test/data/spec-09-29.data deleted file mode 100644 index 82e611fc..00000000 --- a/test/data/spec-09-29.data +++ /dev/null @@ -1,4 +0,0 @@ -> # Simple folded scalar - folded - text - lines diff --git a/test/data/spec-09-30.canonical b/test/data/spec-09-30.canonical deleted file mode 100644 index fc37db1c..00000000 --- a/test/data/spec-09-30.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!str "folded line\n\ - next line\n\n\ - \ * bullet\n\ - \ * list\n\n\ - last line\n" diff --git a/test/data/spec-09-30.data b/test/data/spec-09-30.data deleted file mode 100644 index a4d8c36a..00000000 --- a/test/data/spec-09-30.data +++ /dev/null @@ -1,14 +0,0 @@ -> - folded - line - - next - line - - * bullet - * list - - last - line - -# Comment diff --git a/test/data/spec-09-31.canonical b/test/data/spec-09-31.canonical deleted file mode 100644 index fc37db1c..00000000 --- a/test/data/spec-09-31.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!str "folded line\n\ - next line\n\n\ - \ * bullet\n\ - \ * list\n\n\ - last line\n" diff --git a/test/data/spec-09-31.data b/test/data/spec-09-31.data deleted file mode 100644 index a4d8c36a..00000000 --- a/test/data/spec-09-31.data +++ /dev/null @@ -1,14 +0,0 @@ -> - folded - line - - next - line - - * bullet - * list - - last - line - -# Comment diff --git a/test/data/spec-09-32.canonical b/test/data/spec-09-32.canonical deleted file mode 100644 index fc37db1c..00000000 --- a/test/data/spec-09-32.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!str "folded line\n\ - next line\n\n\ - \ * bullet\n\ - \ * list\n\n\ - last line\n" diff --git a/test/data/spec-09-32.data b/test/data/spec-09-32.data deleted file mode 100644 index a4d8c36a..00000000 --- a/test/data/spec-09-32.data +++ /dev/null @@ -1,14 +0,0 @@ -> - folded - line - - next - line - - * bullet - * list - - last - line - -# Comment diff --git a/test/data/spec-09-33.canonical b/test/data/spec-09-33.canonical deleted file mode 100644 index fc37db1c..00000000 --- a/test/data/spec-09-33.canonical +++ /dev/null @@ -1,7 +0,0 @@ -%YAML 1.1 ---- -!!str "folded line\n\ - next line\n\n\ - \ * bullet\n\ - \ * list\n\n\ - last line\n" diff --git a/test/data/spec-09-33.data b/test/data/spec-09-33.data deleted file mode 100644 index a4d8c36a..00000000 --- a/test/data/spec-09-33.data +++ /dev/null @@ -1,14 +0,0 @@ -> - folded - line - - next - line - - * bullet - * list - - last - line - -# Comment diff --git a/test/data/spec-10-01.canonical b/test/data/spec-10-01.canonical deleted file mode 100644 index d08cdd40..00000000 --- a/test/data/spec-10-01.canonical +++ /dev/null @@ -1,12 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!seq [ - !!str "inner", - !!str "inner", - ], - !!seq [ - !!str "inner", - !!str "last", - ], -] diff --git a/test/data/spec-10-01.data b/test/data/spec-10-01.data deleted file mode 100644 index e668d38d..00000000 --- a/test/data/spec-10-01.data +++ /dev/null @@ -1,2 +0,0 @@ -- [ inner, inner, ] -- [inner,last] diff --git a/test/data/spec-10-02.canonical b/test/data/spec-10-02.canonical deleted file mode 100644 index 82fe0d94..00000000 --- a/test/data/spec-10-02.canonical +++ /dev/null @@ -1,14 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!str "double quoted", - !!str "single quoted", - !!str "plain text", - !!seq [ - !!str "nested", - ], - !!map { - ? !!str "single" - : !!str "pair" - } -] diff --git a/test/data/spec-10-02.data b/test/data/spec-10-02.data deleted file mode 100644 index 3b233515..00000000 --- a/test/data/spec-10-02.data +++ /dev/null @@ -1,8 +0,0 @@ -[ -"double - quoted", 'single - quoted', -plain - text, [ nested ], -single: pair , -] diff --git a/test/data/spec-10-03.canonical b/test/data/spec-10-03.canonical deleted file mode 100644 index 1443395b..00000000 --- a/test/data/spec-10-03.canonical +++ /dev/null @@ -1,12 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "block" - : !!seq [ - !!str "one", - !!map { - ? !!str "two" - : !!str "three" - } - ] -} diff --git a/test/data/spec-10-03.data b/test/data/spec-10-03.data deleted file mode 100644 index 9e15f83b..00000000 --- a/test/data/spec-10-03.data +++ /dev/null @@ -1,4 +0,0 @@ -block: # Block - # sequence -- one -- two : three diff --git a/test/data/spec-10-04.canonical b/test/data/spec-10-04.canonical deleted file mode 100644 index ae486a3c..00000000 --- a/test/data/spec-10-04.canonical +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "block" - : !!seq [ - !!str "one", - !!seq [ - !!str "two" - ] - ] -} diff --git a/test/data/spec-10-04.data b/test/data/spec-10-04.data deleted file mode 100644 index 2905b0d9..00000000 --- a/test/data/spec-10-04.data +++ /dev/null @@ -1,4 +0,0 @@ -block: -- one -- - - two diff --git a/test/data/spec-10-05.canonical b/test/data/spec-10-05.canonical deleted file mode 100644 index 07cc0c98..00000000 --- a/test/data/spec-10-05.canonical +++ /dev/null @@ -1,14 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!null "", - !!str "block node\n", - !!seq [ - !!str "one", - !!str "two", - ], - !!map { - ? !!str "one" - : !!str "two", - } -] diff --git a/test/data/spec-10-05.data b/test/data/spec-10-05.data deleted file mode 100644 index f19a99e3..00000000 --- a/test/data/spec-10-05.data +++ /dev/null @@ -1,7 +0,0 @@ -- # Empty -- | - block node -- - one # in-line - - two # sequence -- one: two # in-line - # mapping diff --git a/test/data/spec-10-06.canonical b/test/data/spec-10-06.canonical deleted file mode 100644 index d9986c28..00000000 --- a/test/data/spec-10-06.canonical +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!map { - ? !!str "inner" - : !!str "entry", - ? !!str "also" - : !!str "inner" - }, - !!map { - ? !!str "inner" - : !!str "entry", - ? !!str "last" - : !!str "entry" - } -] diff --git a/test/data/spec-10-06.data b/test/data/spec-10-06.data deleted file mode 100644 index 860ba25b..00000000 --- a/test/data/spec-10-06.data +++ /dev/null @@ -1,2 +0,0 @@ -- { inner : entry , also: inner , } -- {inner: entry,last : entry} diff --git a/test/data/spec-10-07.canonical b/test/data/spec-10-07.canonical deleted file mode 100644 index ec74230a..00000000 --- a/test/data/spec-10-07.canonical +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!null "" - : !!str "value", - ? !!str "explicit key" - : !!str "value", - ? !!str "simple key" - : !!str "value", - ? !!seq [ - !!str "collection", - !!str "simple", - !!str "key" - ] - : !!str "value" -} diff --git a/test/data/spec-10-07.data b/test/data/spec-10-07.data deleted file mode 100644 index ff943fbc..00000000 --- a/test/data/spec-10-07.data +++ /dev/null @@ -1,7 +0,0 @@ -{ -? : value, # Empty key -? explicit - key: value, -simple key : value, -[ collection, simple, key ]: value -} diff --git a/test/data/spec-10-08.error b/test/data/spec-10-08.error deleted file mode 100644 index 3979e1f7..00000000 --- a/test/data/spec-10-08.error +++ /dev/null @@ -1,5 +0,0 @@ -ERROR: -- A simple key is restricted - to only one line. -- A simple key must not be - longer than 1024 characters. diff --git a/test/data/spec-10-09.canonical b/test/data/spec-10-09.canonical deleted file mode 100644 index 4d9827b1..00000000 --- a/test/data/spec-10-09.canonical +++ /dev/null @@ -1,8 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "key" - : !!str "value", - ? !!str "empty" - : !!null "", -} diff --git a/test/data/spec-10-09.data b/test/data/spec-10-09.data deleted file mode 100644 index 4d55e21d..00000000 --- a/test/data/spec-10-09.data +++ /dev/null @@ -1,4 +0,0 @@ -{ -key : value, -empty: # empty value↓ -} diff --git a/test/data/spec-10-10.canonical b/test/data/spec-10-10.canonical deleted file mode 100644 index 016fb640..00000000 --- a/test/data/spec-10-10.canonical +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "explicit key1" - : !!str "explicit value", - ? !!str "explicit key2" - : !!null "", - ? !!str "explicit key3" - : !!null "", - ? !!str "simple key1" - : !!str "explicit value", - ? !!str "simple key2" - : !!null "", - ? !!str "simple key3" - : !!null "", -} diff --git a/test/data/spec-10-10.data b/test/data/spec-10-10.data deleted file mode 100644 index 0888b054..00000000 --- a/test/data/spec-10-10.data +++ /dev/null @@ -1,8 +0,0 @@ -{ -? explicit key1 : explicit value, -? explicit key2 : , # Explicit empty -? explicit key3, # Empty value -simple key1 : explicit value, -simple key2 : , # Explicit empty -simple key3, # Empty value -} diff --git a/test/data/spec-10-11.canonical b/test/data/spec-10-11.canonical deleted file mode 100644 index 7309544c..00000000 --- a/test/data/spec-10-11.canonical +++ /dev/null @@ -1,24 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!map { - ? !!str "explicit key1" - : !!str "explicit value", - }, - !!map { - ? !!str "explicit key2" - : !!null "", - }, - !!map { - ? !!str "explicit key3" - : !!null "", - }, - !!map { - ? !!str "simple key1" - : !!str "explicit value", - }, - !!map { - ? !!str "simple key2" - : !!null "", - }, -] diff --git a/test/data/spec-10-11.data b/test/data/spec-10-11.data deleted file mode 100644 index 9f055684..00000000 --- a/test/data/spec-10-11.data +++ /dev/null @@ -1,7 +0,0 @@ -[ -? explicit key1 : explicit value, -? explicit key2 : , # Explicit empty -? explicit key3, # Implicit empty -simple key1 : explicit value, -simple key2 : , # Explicit empty -] diff --git a/test/data/spec-10-12.canonical b/test/data/spec-10-12.canonical deleted file mode 100644 index a95dd40c..00000000 --- a/test/data/spec-10-12.canonical +++ /dev/null @@ -1,9 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "block" - : !!map { - ? !!str "key" - : !!str "value" - } -} diff --git a/test/data/spec-10-12.data b/test/data/spec-10-12.data deleted file mode 100644 index 55214435..00000000 --- a/test/data/spec-10-12.data +++ /dev/null @@ -1,3 +0,0 @@ -block: # Block - # mapping - key: value diff --git a/test/data/spec-10-13.canonical b/test/data/spec-10-13.canonical deleted file mode 100644 index e183c50f..00000000 --- a/test/data/spec-10-13.canonical +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "explicit key" - : !!null "", - ? !!str "block key\n" - : !!seq [ - !!str "one", - !!str "two", - ] -} diff --git a/test/data/spec-10-13.data b/test/data/spec-10-13.data deleted file mode 100644 index b5b97db1..00000000 --- a/test/data/spec-10-13.data +++ /dev/null @@ -1,5 +0,0 @@ -? explicit key # implicit value -? | - block key -: - one # explicit in-line - - two # block value diff --git a/test/data/spec-10-14.canonical b/test/data/spec-10-14.canonical deleted file mode 100644 index e87c8805..00000000 --- a/test/data/spec-10-14.canonical +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.1 ---- -!!map { - ? !!str "plain key" - : !!null "", - ? !!str "quoted key" - : !!seq [ - !!str "one", - !!str "two", - ] -} diff --git a/test/data/spec-10-14.data b/test/data/spec-10-14.data deleted file mode 100644 index 7f5995ca..00000000 --- a/test/data/spec-10-14.data +++ /dev/null @@ -1,4 +0,0 @@ -plain key: # empty value -"quoted key": -- one # explicit next-line -- two # block value diff --git a/test/data/spec-10-15.canonical b/test/data/spec-10-15.canonical deleted file mode 100644 index 85fbbd06..00000000 --- a/test/data/spec-10-15.canonical +++ /dev/null @@ -1,18 +0,0 @@ -%YAML 1.1 ---- -!!seq [ - !!map { - ? !!str "sun" - : !!str "yellow" - }, - !!map { - ? !!map { - ? !!str "earth" - : !!str "blue" - } - : !!map { - ? !!str "moon" - : !!str "white" - } - } -] diff --git a/test/data/spec-10-15.data b/test/data/spec-10-15.data deleted file mode 100644 index d675cfd6..00000000 --- a/test/data/spec-10-15.data +++ /dev/null @@ -1,3 +0,0 @@ -- sun: yellow -- ? earth: blue - : moon: white diff --git a/test/data/str.data b/test/data/str.data deleted file mode 100644 index 7cbdb7c6..00000000 --- a/test/data/str.data +++ /dev/null @@ -1 +0,0 @@ -- abcd diff --git a/test/data/str.detect b/test/data/str.detect deleted file mode 100644 index 7d5026f4..00000000 --- a/test/data/str.detect +++ /dev/null @@ -1 +0,0 @@ -tag:yaml.org,2002:str diff --git a/test/data/tags.events b/test/data/tags.events deleted file mode 100644 index bb93dce1..00000000 --- a/test/data/tags.events +++ /dev/null @@ -1,12 +0,0 @@ -- !StreamStart -- !DocumentStart -- !SequenceStart -- !Scalar { value: 'data' } -#- !Scalar { tag: '!', value: 'data' } -- !Scalar { tag: 'tag:yaml.org,2002:str', value: 'data' } -- !Scalar { tag: '!myfunnytag', value: 'data' } -- !Scalar { tag: '!my!ugly!tag', value: 'data' } -- !Scalar { tag: 'tag:my.domain.org,2002:data!? #', value: 'data' } -- !SequenceEnd -- !DocumentEnd -- !StreamEnd diff --git a/test/data/test_mark.marks b/test/data/test_mark.marks deleted file mode 100644 index 7b08ee43..00000000 --- a/test/data/test_mark.marks +++ /dev/null @@ -1,38 +0,0 @@ ---- -*The first line. -The last line. ---- -The first*line. -The last line. ---- -The first line.* -The last line. ---- -The first line. -*The last line. ---- -The first line. -The last*line. ---- -The first line. -The last line.* ---- -The first line. -*The selected line. -The last line. ---- -The first line. -The selected*line. -The last line. ---- -The first line. -The selected line.* -The last line. ---- -*The only line. ---- -The only*line. ---- -The only line.* ---- -Loooooooooooooooooooooooooooooooooooooooooooooong*Liiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiine diff --git a/test/data/timestamp-bugs.code b/test/data/timestamp-bugs.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/timestamp-bugs.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/timestamp-bugs.data b/test/data/timestamp-bugs.data deleted file mode 100644 index 503f1ce0..00000000 --- a/test/data/timestamp-bugs.data +++ /dev/null @@ -1,6 +0,0 @@ -- 2001-12-14 21:59:43.1 -5:30 -- 2001-12-14 21:59:43.1 +5:30 -- 2001-12-14 21:59:43.00101 -- 2001-12-14 21:59:43+1 -- 2001-12-14 21:59:43-1:30 -- 2005-07-08 17:35:04.517600 diff --git a/test/data/timestamp.data b/test/data/timestamp.data deleted file mode 100644 index 7d214ce4..00000000 --- a/test/data/timestamp.data +++ /dev/null @@ -1,5 +0,0 @@ -- 2001-12-15T02:59:43.1Z -- 2001-12-14t21:59:43.10-05:00 -- 2001-12-14 21:59:43.10 -5 -- 2001-12-15 2:59:43.10 -- 2002-12-14 diff --git a/test/data/timestamp.detect b/test/data/timestamp.detect deleted file mode 100644 index 2013936a..00000000 --- a/test/data/timestamp.detect +++ /dev/null @@ -1 +0,0 @@ -tag:yaml.org,2002:timestamp diff --git a/test/data/unclosed-bracket.loader-error b/test/data/unclosed-bracket.loader-error deleted file mode 100644 index 8c820777..00000000 --- a/test/data/unclosed-bracket.loader-error +++ /dev/null @@ -1,6 +0,0 @@ -test: - - [ foo: bar -# comment the rest of the stream to let the scanner detect the problem. -# - baz -#"we could have detected the unclosed bracket on the above line, but this would forbid such syntax as": { -#} diff --git a/test/data/unclosed-quoted-scalar.loader-error b/test/data/unclosed-quoted-scalar.loader-error deleted file mode 100644 index 85374294..00000000 --- a/test/data/unclosed-quoted-scalar.loader-error +++ /dev/null @@ -1,2 +0,0 @@ -'foo - bar diff --git a/test/data/undefined-anchor.loader-error b/test/data/undefined-anchor.loader-error deleted file mode 100644 index 94691032..00000000 --- a/test/data/undefined-anchor.loader-error +++ /dev/null @@ -1,3 +0,0 @@ -- foo -- &bar baz -- *bat diff --git a/test/data/undefined-tag-handle.loader-error b/test/data/undefined-tag-handle.loader-error deleted file mode 100644 index 82ba335c..00000000 --- a/test/data/undefined-tag-handle.loader-error +++ /dev/null @@ -1 +0,0 @@ ---- !foo!bar baz diff --git a/test/data/unsupported-version.emitter-error b/test/data/unsupported-version.emitter-error deleted file mode 100644 index f9c61976..00000000 --- a/test/data/unsupported-version.emitter-error +++ /dev/null @@ -1,5 +0,0 @@ -- !StreamStart -- !DocumentStart { version: [5,6] } -- !Scalar { value: foo } -- !DocumentEnd -- !StreamEnd diff --git a/test/data/uri.data b/test/data/uri.data deleted file mode 100644 index 4532bd86..00000000 --- a/test/data/uri.data +++ /dev/null @@ -1,3 +0,0 @@ -%TAG !e! tag:example.com,2000:app/ ---- -- !e!tag%F0%9F%A4%94 baz diff --git a/test/data/uri.detect b/test/data/uri.detect deleted file mode 100644 index 981dd7f4..00000000 --- a/test/data/uri.detect +++ /dev/null @@ -1 +0,0 @@ -tag:example.com,2000:app/tag🤔 diff --git a/test/data/utf16be.code b/test/data/utf16be.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/utf16be.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/utf16be.data b/test/data/utf16be.data deleted file mode 100644 index 50dcfaef..00000000 Binary files a/test/data/utf16be.data and /dev/null differ diff --git a/test/data/utf16le.code b/test/data/utf16le.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/utf16le.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/utf16le.data b/test/data/utf16le.data deleted file mode 100644 index 76f5e734..00000000 Binary files a/test/data/utf16le.data and /dev/null differ diff --git a/test/data/utf8-implicit.code b/test/data/utf8-implicit.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/utf8-implicit.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/utf8-implicit.data b/test/data/utf8-implicit.data deleted file mode 100644 index 9d8081e9..00000000 --- a/test/data/utf8-implicit.data +++ /dev/null @@ -1 +0,0 @@ ---- implicit UTF-8 diff --git a/test/data/utf8.code b/test/data/utf8.code deleted file mode 100644 index 97e0aca6..00000000 --- a/test/data/utf8.code +++ /dev/null @@ -1 +0,0 @@ -#dummy used in constructor test diff --git a/test/data/utf8.data b/test/data/utf8.data deleted file mode 100644 index 686f48a3..00000000 --- a/test/data/utf8.data +++ /dev/null @@ -1 +0,0 @@ ---- UTF-8 diff --git a/test/data/value.data b/test/data/value.data deleted file mode 100644 index c5b7680c..00000000 --- a/test/data/value.data +++ /dev/null @@ -1 +0,0 @@ -- = diff --git a/test/data/value.detect b/test/data/value.detect deleted file mode 100644 index 7c37d028..00000000 --- a/test/data/value.detect +++ /dev/null @@ -1 +0,0 @@ -tag:yaml.org,2002:value diff --git a/test/data/yaml.data b/test/data/yaml.data deleted file mode 100644 index a4bb3f8e..00000000 --- a/test/data/yaml.data +++ /dev/null @@ -1,3 +0,0 @@ -- !!yaml '!' -- !!yaml '&' -- !!yaml '*' diff --git a/test/document-separator-in-quoted-scalar.yaml b/test/document-separator-in-quoted-scalar.yaml new file mode 100644 index 00000000..e2689161 --- /dev/null +++ b/test/document-separator-in-quoted-scalar.yaml @@ -0,0 +1,19 @@ +%YAML 1.1 +--- +- name: document-separator-in-quoted-scalar + fail: true + mark: { line: 10, column: 1 } + mark2: { line: 8, column: 1 } + error: "While scanning a quoted scalar, found unexpected document separator" + yaml: | + --- + "this --- is correct" + --- + "this + ...is also + correct" + --- + "a quoted scalar + cannot contain + --- + document separators" diff --git a/test/duplicate-errors.yaml b/test/duplicate-errors.yaml new file mode 100644 index 00000000..2b61857b --- /dev/null +++ b/test/duplicate-errors.yaml @@ -0,0 +1,45 @@ +%YAML 1.1 +--- +- name: duplicate-anchor-1 + fail: true + mark: { line: 3, column: 3 } + mark2: { line: 1, column: 3 } + error: | + Unable to load test/duplicate-errors.yaml#duplicate-anchor-1:yaml: Found duplicate anchor: foo + yaml: | + - &foo bar + - &bar bar + - &foo bar +- name: duplicate-anchor-2 + fail: true + mark: { line: 1, column: 16 } + mark2: { line: 1, column: 1 } + error: | + Unable to load test/duplicate-errors.yaml#duplicate-anchor-2:yaml: Found duplicate anchor: foo + yaml: | + &foo [1, 2, 3, &foo 4] +- name: duplicate-mapping-key + fail: true + mark: { line: 2, column: 1 } + mark2: { line: 1, column: 1 } + error: | + Unable to load test/duplicate-errors.yaml#duplicate-mapping-key:yaml: Key 'a' appears multiple times in mapping + yaml: |- + a: 1 + a: 2 +- name: duplicate-tag-directive + fail: true + mark: { line: 2, column: 1 } + error: "Duplicate tag handle: !foo!" + yaml: | + %TAG !foo! bar + %TAG !foo! baz + --- foo +- name: duplicate-yaml-directive + fail: true + mark: { line: 2, column: 1 } + error: "Duplicate YAML directive" + yaml: | + %YAML 1.1 + %YAML 1.1 + --- foo diff --git a/test/emit-block-scalar-in-simple-key-context-bug.yaml b/test/emit-block-scalar-in-simple-key-context-bug.yaml new file mode 100644 index 00000000..53d8e58c --- /dev/null +++ b/test/emit-block-scalar-in-simple-key-context-bug.yaml @@ -0,0 +1,34 @@ +%YAML 1.1 +--- +- name: emit-block-scalar-in-simple-key-context-bug + yaml: | + ? |- + foo + : |- + bar + tree: | + +STR + +DOC + +MAP + =VAL |foo + =VAL |bar + -MAP + -DOC + -STR +- name: emit-block-scalar-in-simple-key-context-bug-canonical + yaml: | + %YAML 1.1 + --- !!map + { + ? !!str "foo" + : !!str "bar" + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "foo + =VAL "bar + -MAP + -DOC + -STR diff --git a/test/emojianchor.yaml b/test/emojianchor.yaml new file mode 100644 index 00000000..7bf97ae8 --- /dev/null +++ b/test/emojianchor.yaml @@ -0,0 +1,29 @@ +%YAML 1.1 +--- +- name: emojianchor + yaml: | + --- + - &😁 unicode anchor + tree: | + +STR + +DOC --- + +SEQ + =VAL &😁 :unicode anchor + -SEQ + -DOC + -STR +- name: emojianchor-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + &😁 !!str "unicode anchor" + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL &😁 "unicode anchor + -SEQ + -DOC + -STR diff --git a/test/empty-document-bug.yaml b/test/empty-document-bug.yaml new file mode 100644 index 00000000..89c3acf9 --- /dev/null +++ b/test/empty-document-bug.yaml @@ -0,0 +1,13 @@ +%YAML 1.1 +--- +- name: empty-document-bug + yaml: "" + tree: | + +STR + -STR +- name: empty-document-bug-canonical + yaml: | + # This YAML stream contains no YAML documents. + tree: | + +STR + -STR diff --git a/test/expected.yaml b/test/expected.yaml new file mode 100644 index 00000000..2a75242c --- /dev/null +++ b/test/expected.yaml @@ -0,0 +1,26 @@ +%YAML 1.1 +--- +- name: expected-mapping + fail: true + mark: { line: 1, column: 5 } + mark2: { line: 1, column: 24 } + error: | + Unable to load test/expected.yaml#expected-mapping:yaml: Error constructing Node[]: Only mappings can be maps + yaml: | + --- !!map [not, a, map] +- name: expected-scalar + fail: true + mark: { line: 1, column: 5 } + mark2: { line: 1, column: 25 } + error: | + Unable to load test/expected.yaml#expected-scalar:yaml: Error constructing Node[]: Only scalars can be strings + yaml: | + --- !!str [not a scalar] +- name: expected-sequence + fail: true + mark: { line: 1, column: 5 } + mark2: { line: 1, column: 26 } + error: | + Unable to load test/expected.yaml#expected-sequence:yaml: Error constructing Pair[]: Only sequences can be sequences + yaml: | + --- !!seq {foo, bar, baz} diff --git a/test/fetch-complex-value-bug.yaml b/test/fetch-complex-value-bug.yaml new file mode 100644 index 00000000..d42ccb2d --- /dev/null +++ b/test/fetch-complex-value-bug.yaml @@ -0,0 +1,10 @@ +%YAML 1.1 +--- +- name: fetch-complex-value-bug + fail: true + mark: { line: 2, column: 2 } + mark2: { line: 1, column: 1 } + error: "While parsing a block mapping, expected block end, but found: blockMappingStart" + yaml: | + ? "foo" + : "bar" diff --git a/test/forbidden.yaml b/test/forbidden.yaml new file mode 100644 index 00000000..175b3e23 --- /dev/null +++ b/test/forbidden.yaml @@ -0,0 +1,28 @@ +%YAML 1.1 +--- +- name: forbidden-entry + fail: true + mark: { line: 1, column: 7 } + error: "Sequence keys are not allowed here" + yaml: | + test: - foo + - bar +- name: forbidden-key + fail: true + mark: { line: 1, column: 7 } + error: "Mapping keys are not allowed here" + yaml: | + test: ? foo + : bar +- name: forbidden-value + fail: true + mark: { line: 1, column: 10 } + error: "Mapping values are not allowed here" + yaml: | + test: key: value +- name: forbidden-starting-character + fail: true + mark: { line: 1, column: 1 } + error: "While scanning for the next token, found character '@', index 64 that cannot start any token" + yaml: | + @ diff --git a/test/invalid.yaml b/test/invalid.yaml new file mode 100644 index 00000000..2ec63c85 --- /dev/null +++ b/test/invalid.yaml @@ -0,0 +1,525 @@ +%YAML 1.1 +--- +- name: invalid-anchor + fail: true + mark: { line: 6, column: 13 } + mark2: { line: 2, column: 1 } + error: "While parsing a block sequence, expected block end, but found: scalar" + yaml: |+ + --- + - [ + &correct foo, + *correct, + *correct] # still correct + - *correct: still correct + - &correct-or-not[foo, bar] + +- name: invalid-anchor-2 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 6 } + error: "While scanning an anchor or alias, expected a printable character besides '[', ']', '{', '}' and ',', but found [" + yaml: |- + foo: &[ +- name: invalid-base64-data + fail: true + mark: { line: 1, column: 5 } + mark2: { line: 2, column: 50 } + error: | + Unable to load test/invalid.yaml#invalid-base64-data:yaml: Unable to decode base64 value: Invalid length of encoded data + yaml: | + --- !!binary + binary data encoded in base64 should be here. +- name: invalid-base64-data-2 + fail: true + mark: { line: 1, column: 5 } + mark2: { line: 2, column: 29 } + error: | + Unable to load test/invalid.yaml#invalid-base64-data-2:yaml: Unable to decode base64 value: Invalid length of encoded data + yaml: | + --- !!binary + двоичные данные в base64 +- name: invalid-block-scalar-indicator + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 5 } + error: "While scanning a block scalar, expected a comment or line break, but found w" + yaml: | + --- > what is this? # a comment + data +- name: invalid-character-stream + yaml: "Control character ('\\x0'): \0" + mark: { line: 1, column: 1 } + error: "Special unicode characters are not allowed" + fail: true +- name: invalid-character-loader + yaml: "Control character ('\\x0'): \0" + fail: true + mark: { line: 1, column: 1 } + error: "Special unicode characters are not allowed" +- name: invalid-directive-line + fail: true + mark: { line: 1, column: 13 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected a comment or a line break, but found ?" + yaml: | + %YAML 1.1 ? # extra symbol + --- +- name: invalid-directive-name-1 + fail: true + mark: { line: 1, column: 2 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected alphanumeric, '-' or '_', but found" + yaml: | + % # no name at all + --- +- name: invalid-directive-name-2 + fail: true + mark: { line: 1, column: 20 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected alphanumeric, '-' or '_', but found :" + yaml: | + %invalid-characters:in-directive name + --- +- name: invalid-escape-character + fail: true + mark: { line: 1, column: 54 } + mark2: { line: 1, column: 1 } + error: "While scanning a double quoted scalar, found unsupported escape character ?" + yaml: | + "some escape characters are \ncorrect, but this one \?\nis not\n" +- name: invalid-escape-character-2 + fail: true + mark: { line: 1, column: 3 } + mark2: { line: 1, column: 1 } + error: "While scanning a double quoted scalar, found unsupported escape character :" + yaml: |- + "\:" +- name: invalid-escape-numbers + fail: true + mark: { line: 1, column: 11 } + mark2: { line: 1, column: 1 } + error: "While scanning a double quoted scalar, expected an escape sequence of hexadecimal numbers, but found ?" + yaml: | + "hm.... \u123?" +- name: invalid-incomplete-escape + fail: true + mark: { line: 1, column: 4 } + mark2: { line: 1, column: 1 } + error: "While scanning a double quoted scalar, expected an escape sequence of hexadecimal numbers, but found \"" + yaml: | + "\x" +- name: invalid-incomplete-scalar + fail: true + mark: { line: 1, column: 20 } + mark2: { line: 1, column: 1 } + error: "While scanning a quoted scalar, found unexpected end of buffer" + yaml: |- + "an unfinished scal +- name: invalid-incomplete-scalar-2 + fail: true + mark: { line: 2, column: 1 } + mark2: { line: 1, column: 1 } + error: "While scanning a quoted scalar, found unexpected document separator" + yaml: | + "an unfinished scal + --- +- name: invalid-indentation-indicator-1 + fail: true + mark: { line: 1, column: 6 } + mark2: { line: 1, column: 5 } + error: "While scanning a block scalar, expected an indentation indicator in range 1-9, but found 0" + yaml: | + --- >0 # not valid + data +- name: invalid-indentation-indicator-2 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 5 } + error: "While scanning a block scalar, expected an indentation indicator in range 1-9, but found 0" + yaml: | + --- >-0 + data +- name: invalid-indentation-indicator-3 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 6 } + error: "While scanning a block scalar, expected an indentation indicator in range 1-9, but found 0" + yaml: | + foo: |0 +- name: invalid-indentation-indicator-4 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 6 } + error: "While scanning a block scalar, expected a chomping or indentation indicator, but found b" + yaml: | + foo: |b +- name: invalid-item-without-trailing-break + fail: true + mark: { line: 2, column: 3 } + mark2: { line: 2, column: 1 } + error: "While scanning a simple key, could not find expected ':'" + yaml: |- + - + -0 +- name: invalid-merge-1 + fail: true + mark: { line: 3, column: 1 } + mark2: { line: 1, column: 1 } + error: | + Unable to load test/invalid.yaml#invalid-merge-1:yaml: While constructing a mapping, expected a mapping or a list of mappings for merging, but found: string + yaml: | + foo: bar + <<: baz +- name: invalid-merge-2 + fail: true + mark: { line: 3, column: 1 } + mark2: { line: 1, column: 1 } + error: | + Unable to load test/invalid.yaml#invalid-merge-2:yaml: While constructing a mapping, expected a mapping or a list of mappings for merging, but found: string + yaml: | + foo: bar + <<: [x: 1, y: 2, z, t: 4] +- name: invalid-merge-3 + fail: true + mark: { line: 2, column: 19 } + mark2: { line: 2, column: 4 } + error: | + Unable to load test/invalid.yaml#invalid-merge-3:yaml: While constructing a mapping, expected a mapping or a list of mappings for merging, but found: integer + yaml: | + a: &anchor 3 + b: { <<: *anchor } +- name: invalid-omap-1 + fail: true + mark: { line: 1, column: 5 } + mark2: { line: 4, column: 1 } + error: | + Unable to load test/invalid.yaml#invalid-omap-1:yaml: Error constructing Pair[]: Only sequences can be ordered maps + yaml: | + --- !!omap + foo: bar + baz: bat +- name: invalid-omap-2 + fail: true + mark: { line: 3, column: 3 } + error: | + Unable to load test/invalid.yaml#invalid-omap-2:yaml: While constructing an ordered map, expected a mapping with single element + yaml: | + --- !!omap + - foo: bar + - baz +- name: invalid-omap-3 + fail: true + mark: { line: 3, column: 3 } + error: | + Unable to load test/invalid.yaml#invalid-omap-3:yaml: While constructing an ordered map, expected a mapping with single element + yaml: | + --- !!omap + - foo: bar + - baz: bar + bar: bar +- name: invalid-pairs-1 + fail: true + mark: { line: 1, column: 5 } + mark2: { line: 4, column: 1 } + error: | + Unable to load test/invalid.yaml#invalid-pairs-1:yaml: Error constructing Pair[]: Only sequences can be pairs + yaml: | + --- !!pairs + foo: bar + baz: bat +- name: invalid-pairs-2 + fail: true + mark: { line: 3, column: 3 } + error: | + Unable to load test/invalid.yaml#invalid-pairs-2:yaml: While constructing pairs, expected a mapping with single element + yaml: | + --- !!pairs + - foo: bar + - baz +- name: invalid-pairs-3 + fail: true + mark: { line: 3, column: 3 } + error: | + Unable to load test/invalid.yaml#invalid-pairs-3:yaml: While constructing pairs, expected a mapping with single element + yaml: | + --- !!pairs + - foo: bar + - baz: bar + bar: bar +- name: invalid-simple-key + fail: true + mark: { line: 3, column: 1 } + mark2: { line: 2, column: 1 } + error: "While scanning a simple key, could not find expected ':'" + yaml: | + key: value + invalid simple key + next key: next value +- name: invalid-simple-key-2 + fail: true + mark: { line: 2, column: 4 } + mark2: { line: 2, column: 1 } + error: "While scanning a simple key, could not find expected ':'" + yaml: |- + foo: &A bar + *A ] +- name: invalid-simple-key-3 + fail: true + mark: { line: 2, column: 4 } + mark2: { line: 2, column: 1 } + error: "While scanning a simple key, could not find expected ':'" + yaml: |- + foo: bar + meh +- name: invalid-starting-character + fail: true + mark: { line: 1, column: 1 } + error: "While scanning for the next token, found character '@', index 64 that cannot start any token" + yaml: | + @@@@@@@@@@@@@@@@@@@ +- name: invalid-tag-1 + fail: true + mark: { line: 1, column: 8 } + mark2: { line: 1, column: 3 } + error: "While scanning a tag, expected a '>', but found #" + yaml: | + - ! baz +- name: invalid-tag-2 + fail: true + mark: { line: 1, column: 14 } + mark2: { line: 1, column: 3 } + error: "While scanning a tag, expected a ' ', but found #" + yaml: | + - !prefix!foo#bar baz +- name: invalid-tag-3 + fail: true + mark: { line: 1, column: 10 } + mark2: { line: 1, column: 6 } + error: "While scanning a tag, expected a ' ', but found #" + yaml: | + foo: !# +- name: invalid-tag-4 + fail: true + mark: { line: 1, column: 9 } + mark2: { line: 1, column: 6 } + error: "While scanning a tag, expected a '>', but found #" + yaml: | + foo: ! foo +- name: invalid-uri-escapes-2 + fail: true + mark: { line: 1, column: 10 } + mark2: { line: 1, column: 5 } + error: "While scanning a tag, found invalid UTF-8 data encoded in URI escape sequence" + yaml: | + --- !<%FF> foo +- name: invalid-uri-escapes-3 + fail: true + mark: { line: 1, column: 25 } + mark2: { line: 1, column: 5 } + error: "While scanning a tag, found invalid UTF-8 data encoded in URI escape sequence" + yaml: | + --- ! baz +- name: invalid-uri-escapes-4 + fail: true + mark: { line: 1, column: 15 } + mark2: { line: 1, column: 8 } + error: "While scanning a tag, expected a URI escape sequence of 2 hexadecimal numbers, but found :)" + yaml: |- + Error: !e!tag%:) +- name: invalid-uri-utf8 + fail: true + mark: { line: 1, column: 20 } + mark2: { line: 1, column: 8 } + error: "While scanning a tag, found invalid UTF-8 data encoded in URI escape sequence" + yaml: |- + Error: !e!tag%99%99 +- name: invalid-uri + fail: true + mark: { line: 1, column: 10 } + mark2: { line: 1, column: 5 } + error: "While parsing a tag, expected a URI, but found" + yaml: | + --- !foo! bar +- name: invalid-uri-2 + fail: true + mark: { line: 1, column: 8 } + mark2: { line: 1, column: 6 } + error: "While parsing a tag, expected a URI, but found #" + yaml: | + foo: !<# +- name: invalid-yaml-directive-version-1 + fail: true + mark: { line: 2, column: 6 } + mark2: { line: 2, column: 1 } + error: "While scanning a directive, expected a digit, but found" + yaml: | + # No version at all. + %YAML + --- +- name: invalid-yaml-directive-version-2 + fail: true + mark: { line: 1, column: 10 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected digit or '.', but found e" + yaml: | + %YAML 1e-5 + --- +- name: invalid-yaml-directive-version-3 + fail: true + mark: { line: 1, column: 9 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected a digit, but found" + yaml: | + %YAML 1. + --- +- name: invalid-yaml-directive-version-4 + fail: true + mark: { line: 1, column: 12 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected digit or '.', but found ." + yaml: | + %YAML 1.132.435 + --- +- name: invalid-yaml-directive-version-5 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected a digit, but found A" + yaml: | + %YAML A.0 + --- +- name: invalid-yaml-directive-version-6 + fail: true + mark: { line: 1, column: 11 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected a digit, but found C" + yaml: | + %YAML 123.C + --- +- name: invalid-yaml-directive-version-7 + fail: true + mark: { line: 1, column: 11 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected a comment or a line break, but found ?" + yaml: | + %YAML 1.0 ? +- name: invalid-yaml-directive-version-8 + fail: true + mark: { line: 1, column: 11 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive prefix, expected ' ', but found >" + yaml: | + %TAG !a! !> +- name: invalid-yaml-directive-version-9 + fail: true + mark: { line: 1, column: 9 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive handle, expected ' ', but found <" + yaml: | + %TAG !a!< +- name: invalid-yaml-directive-version-10 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected a digit, but found ?" + yaml: | + %YAML ? +- name: invalid-yaml-directive-version-11 + fail: true + mark: { line: 1, column: 10 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected digit or '.', but found ?" + yaml: | + %YAML 1.1? +- name: invalid-yaml-directive-version-12 + fail: true + mark: { line: 1, column: 8 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected digit or '.', but found ?" + yaml: | + %YAML 1? +- name: invalid-yaml-directive-version-13 + fail: true + mark: { line: 1, column: 3 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected alphanumeric, '-' or '_', but found ?" + yaml: | + %b? +- name: invalid-yaml-directive-version-14 + fail: true + mark: { line: 1, column: 2 } + mark2: { line: 1, column: 1 } + error: "While scanning a directive, expected alphanumeric, '-' or '_', but found ?" + yaml: | + %? +- name: invalid-yaml-version + fail: true + mark: { line: 1, column: 1 } #TODO: maybe this should be a later column + error: "Incompatible document (version 1.x is required)" + yaml: | + %YAML 2.0 + --- foo +- name: invalid-block-sequence + fail: true + mark: { line: 2, column: 1 } + mark2: { line: 1, column: 1 } + error: "While parsing a block sequence, expected block end, but found: flowEntry" + yaml: |- + - a + , +- name: invalid-block-mapping + fail: true + mark: { line: 2, column: 1 } + mark2: { line: 1, column: 1 } + error: "While parsing a block mapping, expected block end, but found: flowEntry" + yaml: |- + a: b + , diff --git a/test/multiline.yaml b/test/multiline.yaml new file mode 100644 index 00000000..127075f2 --- /dev/null +++ b/test/multiline.yaml @@ -0,0 +1,15 @@ +%YAML 1.1 +--- +- name: end-of-buffer-multiline #Issue 309 - https://github.com/dlang-community/D-YAML/issues/309 + tree: | + +STR + +DOC + +MAP + =VAL :exp + =VAL |foobar + -MAP + -DOC + -STR + yaml: |- + exp: | + foobar diff --git a/test/no-block-collection-end.yaml b/test/no-block-collection-end.yaml new file mode 100644 index 00000000..44717e80 --- /dev/null +++ b/test/no-block-collection-end.yaml @@ -0,0 +1,11 @@ +%YAML 1.1 +--- +- name: no-block-collection-end + fail: true + mark: { line: 3, column: 1 } + mark2: { line: 1, column: 1 } + error: "While parsing a block sequence, expected block end, but found: key" + yaml: | + - foo + - bar + baz: bar diff --git a/test/no-block-mapping-end.yaml b/test/no-block-mapping-end.yaml new file mode 100644 index 00000000..bc59559d --- /dev/null +++ b/test/no-block-mapping-end.yaml @@ -0,0 +1,18 @@ +%YAML 1.1 +--- +- name: no-block-mapping-end + fail: true + mark: { line: 1, column: 12 } + mark2: { line: 1, column: 1 } + error: "While parsing a block mapping, expected block end, but found: scalar" + yaml: | + foo: "bar" "baz" +- name: no-block-mapping-end-2 + fail: true + mark: { line: 3, column: 1 } + mark2: { line: 1, column: 1 } + error: "While parsing a block mapping, expected block end, but found: value" + yaml: | + ? foo + : bar + : baz diff --git a/test/no-document-start.yaml b/test/no-document-start.yaml new file mode 100644 index 00000000..e2f7e20e --- /dev/null +++ b/test/no-document-start.yaml @@ -0,0 +1,10 @@ +%YAML 1.1 +--- +- name: no-document-start + fail: true + mark: { line: 3, column: 1 } + error: "Expected document start but found blockMappingStart" + yaml: | + %YAML 1.1 + # no --- + foo: bar diff --git a/test/no-flow-mapping-end.yaml b/test/no-flow-mapping-end.yaml new file mode 100644 index 00000000..4cf8e368 --- /dev/null +++ b/test/no-flow-mapping-end.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: no-flow-mapping-end + fail: true + mark: { line: 1, column: 12 } + mark2: { line: 1, column: 1 } + error: "While parsing a flow mapping, expected ',' or '}', but got: flowSequenceEnd" + yaml: | + { foo: bar ] +- name: no-flow-mapping-end-2 + fail: true + mark: { line: 1, column: 2 } + mark2: { line: 1, column: 2 } + error: "While parsing a flow node, expected node content, but found: streamEnd" + yaml: |- + { +- name: no-flow-mapping-end-3 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 1 } + error: "While parsing a flow mapping, expected ',' or '}', but got: streamEnd" + yaml: |- + { blah +- name: no-flow-mapping-end-4 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 1 } + error: "While parsing a flow mapping, expected ',' or '}', but got: streamEnd" + yaml: |- + {a,b,c diff --git a/test/no-flow-sequence-end.yaml b/test/no-flow-sequence-end.yaml new file mode 100644 index 00000000..980e15e3 --- /dev/null +++ b/test/no-flow-sequence-end.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: no-flow-sequence-end + fail: true + mark: { line: 1, column: 10 } + mark2: { line: 1, column: 1 } + error: "While parsing a flow sequence, expected ',' or ']', but got: flowMappingEnd" + yaml: | + [foo, bar} +- name: no-flow-sequence-end-2 + fail: true + mark: { line: 1, column: 2 } + mark2: { line: 1, column: 2 } + error: "While parsing a flow node, expected node content, but found: streamEnd" + yaml: |- + [ +- name: no-flow-sequence-end-3 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 1 } + error: "While parsing a flow sequence, expected ',' or ']', but got: streamEnd" + yaml: |- + [ blah +- name: no-flow-sequence-end-4 + fail: true + mark: { line: 1, column: 7 } + mark2: { line: 1, column: 1 } + error: "While parsing a flow sequence, expected ',' or ']', but got: streamEnd" + yaml: |- + [a,b,c diff --git a/test/no-node.yaml b/test/no-node.yaml new file mode 100644 index 00000000..6a064621 --- /dev/null +++ b/test/no-node.yaml @@ -0,0 +1,16 @@ +%YAML 1.1 +--- +- name: no-node-1 + fail: true + mark: { line: 1, column: 8 } + mark2: { line: 1, column: 1 } + error: "While parsing a block sequence, expected block end, but found: flowSequenceEnd" + yaml: | + - !foo ] +- name: no-node-2 + fail: true + mark: { line: 1, column: 10 } + mark2: { line: 1, column: 3 } + error: "While parsing a flow sequence, expected ',' or ']', but got: flowMappingEnd" + yaml: | + - [ !foo } ] diff --git a/test/question-mark-in-flow-context.yaml b/test/question-mark-in-flow-context.yaml new file mode 100644 index 00000000..b85ef631 --- /dev/null +++ b/test/question-mark-in-flow-context.yaml @@ -0,0 +1,14 @@ +%YAML 1.1 +--- +- name: question-mark-in-flow-context + yaml: | + { foo?bar } + tree: | + +STR + +DOC + +MAP {} + =VAL :foo?bar + =VAL : + -MAP + -DOC + -STR diff --git a/test/recursive-alias.yaml b/test/recursive-alias.yaml new file mode 100644 index 00000000..6de2eb27 --- /dev/null +++ b/test/recursive-alias.yaml @@ -0,0 +1,12 @@ +%YAML 1.1 +--- +- name: recursive-alias + fail: true + mark: { line: 2, column: 8 } + mark2: { line: 1, column: 4 } + error: | + Unable to load test/recursive-alias.yaml#recursive-alias:yaml: Found recursive alias: anchor + yaml: | + a: &anchor { + b: *anchor + } diff --git a/test/remove-possible-simple-key-bug.yaml b/test/remove-possible-simple-key-bug.yaml new file mode 100644 index 00000000..ca4943f1 --- /dev/null +++ b/test/remove-possible-simple-key-bug.yaml @@ -0,0 +1,11 @@ +%YAML 1.1 +--- +- name: remove-possible-simple-key-bug + fail: true + mark: { line: 2, column: 4 } + mark2: { line: 2, column: 1 } + error: "While scanning a simple key, could not find expected ':'" + yaml: | + foo: &A bar + *A ] # The ']' indicator triggers remove_possible_simple_key, + # which should raise an error. diff --git a/test/run-parser-crash-bug.yaml b/test/run-parser-crash-bug.yaml new file mode 100644 index 00000000..0a1a56e4 --- /dev/null +++ b/test/run-parser-crash-bug.yaml @@ -0,0 +1,29 @@ +%YAML 1.1 +--- +- name: run-parser-crash-bug + tree: | + +STR + +DOC --- + +SEQ + =VAL :Harry Potter and the Prisoner of Azkaban + =VAL :Harry Potter and the Goblet of Fire + =VAL :Harry Potter and the Order of the Phoenix + -SEQ + -DOC + +DOC --- + +SEQ + =VAL :Memoirs Found in a Bathtub + =VAL :Snow Crash + =VAL :Ghost World + -SEQ + -DOC + -STR + yaml: | + --- + - Harry Potter and the Prisoner of Azkaban + - Harry Potter and the Goblet of Fire + - Harry Potter and the Order of the Phoenix + --- + - Memoirs Found in a Bathtub + - Snow Crash + - Ghost World diff --git a/test/scan-document-end-bug.yaml b/test/scan-document-end-bug.yaml new file mode 100644 index 00000000..4839c883 --- /dev/null +++ b/test/scan-document-end-bug.yaml @@ -0,0 +1,24 @@ +%YAML 1.1 +--- +- name: scan-document-end-bug + yaml: |- + # Ticket #4 + --- + ... + tree: | + +STR + +DOC --- + =VAL : + -DOC ... + -STR +- name: scan-document-end-bug-canonical + yaml: | + %YAML 1.1 + --- + !!null "" + tree: | + +STR + +DOC --- + =VAL " + -DOC + -STR diff --git a/test/scan-line-break-bug.yaml b/test/scan-line-break-bug.yaml new file mode 100644 index 00000000..8e704108 --- /dev/null +++ b/test/scan-line-break-bug.yaml @@ -0,0 +1,27 @@ +%YAML 1.1 +--- +- name: scan-line-break-bug + yaml: "foo:\r\n bar\r\n baz\r\n" + tree: | + +STR + +DOC + +MAP + =VAL :foo + =VAL :bar baz + -MAP + -DOC + -STR +- name: scan-line-break-bug-canonical + yaml: | + %YAML 1.1 + --- + !!map { ? !!str "foo" : !!str "bar baz" } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "foo + =VAL "bar baz + -MAP + -DOC + -STR diff --git a/test/sloppy-indentation.yaml b/test/sloppy-indentation.yaml new file mode 100644 index 00000000..86b66a01 --- /dev/null +++ b/test/sloppy-indentation.yaml @@ -0,0 +1,17 @@ +%YAML 1.1 +--- +- name: sloppy-indentation + yaml: "---\nin the block context:\n indentation should be kept: { \n but in\ + \ the flow context: [\nit may be violated]\n}\n---\nthe parser does not require\ + \ scalars\nto be indented with at least one space\n...\n---\n\"the parser does not\ + \ require scalars\nto be indented with at least one space\"\n---\nfoo:\n bar:\ + \ 'quoted scalars\nmay not adhere indentation'\n" +- name: sloppy-indentation-canonical + yaml: "%YAML 1.1\n---\n!!map { \n ? !!str \"in the block context\"\n \ + \ : !!map {\n ? !!str \"indentation should be kept\"\n : !!map {\n\ + \ ? !!str \"but in the flow context\"\n : !!seq [ !!str \"\ + it may be violated\" ]\n }\n }\n}\n--- !!str\n\"the parser does not require\ + \ scalars to be indented with at least one space\"\n--- !!str\n\"the parser does\ + \ not require scalars to be indented with at least one space\"\n--- !!map\n{ ? !!str\ + \ \"foo\": { ? !!str \"bar\" : !!str \"quoted scalars may not adhere indentation\"\ + \ } }\n" diff --git a/test/spec 1.1/spec-02-01.yaml b/test/spec 1.1/spec-02-01.yaml new file mode 100644 index 00000000..8452f538 --- /dev/null +++ b/test/spec 1.1/spec-02-01.yaml @@ -0,0 +1,17 @@ +%YAML 1.1 +--- +- name: spec-02-01 + tree: | + +STR + +DOC + +SEQ + =VAL :Mark McGwire + =VAL :Sammy Sosa + =VAL :Ken Griffey + -SEQ + -DOC + -STR + yaml: | + - Mark McGwire + - Sammy Sosa + - Ken Griffey diff --git a/test/spec 1.1/spec-02-02.yaml b/test/spec 1.1/spec-02-02.yaml new file mode 100644 index 00000000..18f4ca65 --- /dev/null +++ b/test/spec 1.1/spec-02-02.yaml @@ -0,0 +1,20 @@ +%YAML 1.1 +--- +- name: spec-02-02 + tree: | + +STR + +DOC + +MAP + =VAL :hr + =VAL :65 + =VAL :avg + =VAL :0.278 + =VAL :rbi + =VAL :147 + -MAP + -DOC + -STR + yaml: | + hr: 65 # Home runs + avg: 0.278 # Batting average + rbi: 147 # Runs Batted In diff --git a/test/spec 1.1/spec-02-03.yaml b/test/spec 1.1/spec-02-03.yaml new file mode 100644 index 00000000..9bb0dde7 --- /dev/null +++ b/test/spec 1.1/spec-02-03.yaml @@ -0,0 +1,31 @@ +%YAML 1.1 +--- +- name: spec-02-03 + tree: | + +STR + +DOC + +MAP + =VAL :american + +SEQ + =VAL :Boston Red Sox + =VAL :Detroit Tigers + =VAL :New York Yankees + -SEQ + =VAL :national + +SEQ + =VAL :New York Mets + =VAL :Chicago Cubs + =VAL :Atlanta Braves + -SEQ + -MAP + -DOC + -STR + yaml: | + american: + - Boston Red Sox + - Detroit Tigers + - New York Yankees + national: + - New York Mets + - Chicago Cubs + - Atlanta Braves diff --git a/test/spec 1.1/spec-02-04.yaml b/test/spec 1.1/spec-02-04.yaml new file mode 100644 index 00000000..2dbe91d9 --- /dev/null +++ b/test/spec 1.1/spec-02-04.yaml @@ -0,0 +1,35 @@ +%YAML 1.1 +--- +- name: spec-02-04 + tree: | + +STR + +DOC + +SEQ + +MAP + =VAL :name + =VAL :Mark McGwire + =VAL :hr + =VAL :65 + =VAL :avg + =VAL :0.278 + -MAP + +MAP + =VAL :name + =VAL :Sammy Sosa + =VAL :hr + =VAL :63 + =VAL :avg + =VAL :0.288 + -MAP + -SEQ + -DOC + -STR + yaml: | + - + name: Mark McGwire + hr: 65 + avg: 0.278 + - + name: Sammy Sosa + hr: 63 + avg: 0.288 diff --git a/test/spec 1.1/spec-02-05.yaml b/test/spec 1.1/spec-02-05.yaml new file mode 100644 index 00000000..f4861927 --- /dev/null +++ b/test/spec 1.1/spec-02-05.yaml @@ -0,0 +1,29 @@ +%YAML 1.1 +--- +- name: spec-02-05 + tree: | + +STR + +DOC + +SEQ + +SEQ [] + =VAL :name + =VAL :hr + =VAL :avg + -SEQ + +SEQ [] + =VAL :Mark McGwire + =VAL :65 + =VAL :0.278 + -SEQ + +SEQ [] + =VAL :Sammy Sosa + =VAL :63 + =VAL :0.288 + -SEQ + -SEQ + -DOC + -STR + yaml: | + - [name , hr, avg ] + - [Mark McGwire, 65, 0.278] + - [Sammy Sosa , 63, 0.288] diff --git a/test/spec 1.1/spec-02-06.yaml b/test/spec 1.1/spec-02-06.yaml new file mode 100644 index 00000000..c42129d5 --- /dev/null +++ b/test/spec 1.1/spec-02-06.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: spec-02-06 + tree: | + +STR + +DOC + +MAP + =VAL :Mark McGwire + +MAP {} + =VAL :hr + =VAL :65 + =VAL :avg + =VAL :0.278 + -MAP + =VAL :Sammy Sosa + +MAP {} + =VAL :hr + =VAL :63 + =VAL :avg + =VAL :0.288 + -MAP + -MAP + -DOC + -STR + yaml: | + Mark McGwire: {hr: 65, avg: 0.278} + Sammy Sosa: { + hr: 63, + avg: 0.288 + } diff --git a/test/spec 1.1/spec-02-07.yaml b/test/spec 1.1/spec-02-07.yaml new file mode 100644 index 00000000..7ff92e92 --- /dev/null +++ b/test/spec 1.1/spec-02-07.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: spec-02-07 + tree: | + +STR + +DOC --- + +SEQ + =VAL :Mark McGwire + =VAL :Sammy Sosa + =VAL :Ken Griffey + -SEQ + -DOC + +DOC --- + +SEQ + =VAL :Chicago Cubs + =VAL :St Louis Cardinals + -SEQ + -DOC + -STR + yaml: | + # Ranking of 1998 home runs + --- + - Mark McGwire + - Sammy Sosa + - Ken Griffey + + # Team ranking + --- + - Chicago Cubs + - St Louis Cardinals diff --git a/test/spec 1.1/spec-02-08.yaml b/test/spec 1.1/spec-02-08.yaml new file mode 100644 index 00000000..26a8becc --- /dev/null +++ b/test/spec 1.1/spec-02-08.yaml @@ -0,0 +1,37 @@ +%YAML 1.1 +--- +- name: spec-02-08 + tree: | + +STR + +DOC --- + +MAP + =VAL :time + =VAL :20:03:20 + =VAL :player + =VAL :Sammy Sosa + =VAL :action + =VAL :strike (miss) + -MAP + -DOC ... + +DOC --- + +MAP + =VAL :time + =VAL :20:03:47 + =VAL :player + =VAL :Sammy Sosa + =VAL :action + =VAL :grand slam + -MAP + -DOC ... + -STR + yaml: | + --- + time: 20:03:20 + player: Sammy Sosa + action: strike (miss) + ... + --- + time: 20:03:47 + player: Sammy Sosa + action: grand slam + ... diff --git a/test/spec 1.1/spec-02-09.yaml b/test/spec 1.1/spec-02-09.yaml new file mode 100644 index 00000000..12888470 --- /dev/null +++ b/test/spec 1.1/spec-02-09.yaml @@ -0,0 +1,29 @@ +%YAML 1.1 +--- +- name: spec-02-09 + tree: | + +STR + +DOC --- + +MAP + =VAL :hr + +SEQ + =VAL :Mark McGwire + =VAL :Sammy Sosa + -SEQ + =VAL :rbi + +SEQ + =VAL :Sammy Sosa + =VAL :Ken Griffey + -SEQ + -MAP + -DOC + -STR + yaml: | + --- + hr: # 1998 hr ranking + - Mark McGwire + - Sammy Sosa + rbi: + # 1998 rbi ranking + - Sammy Sosa + - Ken Griffey diff --git a/test/spec 1.1/spec-02-10.yaml b/test/spec 1.1/spec-02-10.yaml new file mode 100644 index 00000000..ed2e3cb4 --- /dev/null +++ b/test/spec 1.1/spec-02-10.yaml @@ -0,0 +1,29 @@ +%YAML 1.1 +--- +- name: spec-02-10 + tree: | + +STR + +DOC --- + +MAP + =VAL :hr + +SEQ + =VAL :Mark McGwire + =VAL &SS :Sammy Sosa + -SEQ + =VAL :rbi + +SEQ + =ALI *SS + =VAL :Ken Griffey + -SEQ + -MAP + -DOC + -STR + yaml: | + --- + hr: + - Mark McGwire + # Following node labeled SS + - &SS Sammy Sosa + rbi: + - *SS # Subsequent occurrence + - Ken Griffey diff --git a/test/spec 1.1/spec-02-11.yaml b/test/spec 1.1/spec-02-11.yaml new file mode 100644 index 00000000..3d4f1c86 --- /dev/null +++ b/test/spec 1.1/spec-02-11.yaml @@ -0,0 +1,36 @@ +%YAML 1.1 +--- +- name: spec-02-11 + tree: | + +STR + +DOC + +MAP + +SEQ + =VAL :Detroit Tigers + =VAL :Chicago cubs + -SEQ + +SEQ + =VAL :2001-07-23 + -SEQ + +SEQ [] + =VAL :New York Yankees + =VAL :Atlanta Braves + -SEQ + +SEQ [] + =VAL :2001-07-02 + =VAL :2001-08-12 + =VAL :2001-08-14 + -SEQ + -MAP + -DOC + -STR + yaml: | + ? - Detroit Tigers + - Chicago cubs + : + - 2001-07-23 + + ? [ New York Yankees, + Atlanta Braves ] + : [ 2001-07-02, 2001-08-12, + 2001-08-14 ] diff --git a/test/spec 1.1/spec-02-12.yaml b/test/spec 1.1/spec-02-12.yaml new file mode 100644 index 00000000..fb63aa5d --- /dev/null +++ b/test/spec 1.1/spec-02-12.yaml @@ -0,0 +1,37 @@ +%YAML 1.1 +--- +- name: spec-02-12 + tree: | + +STR + +DOC --- + +SEQ + +MAP + =VAL :item + =VAL :Super Hoop + =VAL :quantity + =VAL :1 + -MAP + +MAP + =VAL :item + =VAL :Basketball + =VAL :quantity + =VAL :4 + -MAP + +MAP + =VAL :item + =VAL :Big Shoes + =VAL :quantity + =VAL :1 + -MAP + -SEQ + -DOC + -STR + yaml: | + --- + # products purchased + - item : Super Hoop + quantity: 1 + - item : Basketball + quantity: 4 + - item : Big Shoes + quantity: 1 diff --git a/test/spec 1.1/spec-02-13.yaml b/test/spec 1.1/spec-02-13.yaml new file mode 100644 index 00000000..4f6eb3b4 --- /dev/null +++ b/test/spec 1.1/spec-02-13.yaml @@ -0,0 +1,14 @@ +%YAML 1.1 +--- +- name: spec-02-13 + tree: | + +STR + +DOC --- + =VAL |\\//||\\/||\n// || ||__\n + -DOC + -STR + yaml: | + # ASCII Art + --- | + \//||\/|| + // || ||__ diff --git a/test/spec 1.1/spec-02-14.yaml b/test/spec 1.1/spec-02-14.yaml new file mode 100644 index 00000000..201537a2 --- /dev/null +++ b/test/spec 1.1/spec-02-14.yaml @@ -0,0 +1,14 @@ +%YAML 1.1 +--- +- name: spec-02-14 + tree: | + +STR + +DOC --- + =VAL :Mark McGwire's year was crippled by a knee injury. + -DOC + -STR + yaml: | + --- + Mark McGwire's + year was crippled + by a knee injury. diff --git a/test/spec 1.1/spec-02-15.yaml b/test/spec 1.1/spec-02-15.yaml new file mode 100644 index 00000000..83e76169 --- /dev/null +++ b/test/spec 1.1/spec-02-15.yaml @@ -0,0 +1,18 @@ +%YAML 1.1 +--- +- name: spec-02-15 + tree: | + +STR + +DOC + =VAL >Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n + -DOC + -STR + yaml: | + > + Sammy Sosa completed another + fine season with great stats. + + 63 Home Runs + 0.288 Batting Average + + What a year! diff --git a/test/spec 1.1/spec-02-16.yaml b/test/spec 1.1/spec-02-16.yaml new file mode 100644 index 00000000..787a35b7 --- /dev/null +++ b/test/spec 1.1/spec-02-16.yaml @@ -0,0 +1,24 @@ +%YAML 1.1 +--- +- name: spec-02-16 + tree: | + +STR + +DOC + +MAP + =VAL :name + =VAL :Mark McGwire + =VAL :accomplishment + =VAL >Mark set a major league home run record in 1998.\n + =VAL :stats + =VAL |65 Home Runs\n0.278 Batting Average\n + -MAP + -DOC + -STR + yaml: | + name: Mark McGwire + accomplishment: > + Mark set a major league + home run record in 1998. + stats: | + 65 Home Runs + 0.278 Batting Average diff --git a/test/spec 1.1/spec-02-17.yaml b/test/spec 1.1/spec-02-17.yaml new file mode 100644 index 00000000..ab2924cf --- /dev/null +++ b/test/spec 1.1/spec-02-17.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: spec-02-17 + tree: | + +STR + +DOC + +MAP + =VAL :unicode + =VAL "Sosa did fine.☺ + =VAL :control + =VAL "\b1998\t1999\t2000\n + =VAL :hexesc + =VAL "\r\n is \r\n + =VAL :single + =VAL '"Howdy!" he cried. + =VAL :quoted + =VAL ' # not a 'comment'. + =VAL :tie-fighter + =VAL '|\\-*-/| + -MAP + -DOC + -STR + yaml: | + unicode: "Sosa did fine.\u263A" + control: "\b1998\t1999\t2000\n" + hexesc: "\x0D\x0A is \r\n" + + single: '"Howdy!" he cried.' + quoted: ' # not a ''comment''.' + tie-fighter: '|\-*-/|' diff --git a/test/spec 1.1/spec-02-18.yaml b/test/spec 1.1/spec-02-18.yaml new file mode 100644 index 00000000..96227cf3 --- /dev/null +++ b/test/spec 1.1/spec-02-18.yaml @@ -0,0 +1,21 @@ +%YAML 1.1 +--- +- name: spec-02-18 + tree: | + +STR + +DOC + +MAP + =VAL :plain + =VAL :This unquoted scalar spans many lines. + =VAL :quoted + =VAL "So does this quoted scalar.\n + -MAP + -DOC + -STR + yaml: | + plain: + This unquoted scalar + spans many lines. + + quoted: "So does this + quoted scalar.\n" diff --git a/test/spec 1.1/spec-02-19.yaml b/test/spec 1.1/spec-02-19.yaml new file mode 100644 index 00000000..fdd18a95 --- /dev/null +++ b/test/spec 1.1/spec-02-19.yaml @@ -0,0 +1,26 @@ +%YAML 1.1 +--- +- name: spec-02-19 + tree: | + +STR + +DOC + +MAP + =VAL :canonical + =VAL :12345 + =VAL :decimal + =VAL :+12,345 + =VAL :sexagesimal + =VAL :3:25:45 + =VAL :octal + =VAL :014 + =VAL :hexadecimal + =VAL :0xC + -MAP + -DOC + -STR + yaml: | + canonical: 12345 + decimal: +12,345 + sexagesimal: 3:25:45 + octal: 014 + hexadecimal: 0xC diff --git a/test/spec 1.1/spec-02-20.yaml b/test/spec 1.1/spec-02-20.yaml new file mode 100644 index 00000000..09020053 --- /dev/null +++ b/test/spec 1.1/spec-02-20.yaml @@ -0,0 +1,29 @@ +%YAML 1.1 +--- +- name: spec-02-20 + tree: | + +STR + +DOC + +MAP + =VAL :canonical + =VAL :1.23015e+3 + =VAL :exponential + =VAL :12.3015e+02 + =VAL :sexagesimal + =VAL :20:30.15 + =VAL :fixed + =VAL :1,230.15 + =VAL :negative infinity + =VAL :-.inf + =VAL :not a number + =VAL :.NaN + -MAP + -DOC + -STR + yaml: | + canonical: 1.23015e+3 + exponential: 12.3015e+02 + sexagesimal: 20:30.15 + fixed: 1,230.15 + negative infinity: -.inf + not a number: .NaN diff --git a/test/spec 1.1/spec-02-21.yaml b/test/spec 1.1/spec-02-21.yaml new file mode 100644 index 00000000..a5beaa56 --- /dev/null +++ b/test/spec 1.1/spec-02-21.yaml @@ -0,0 +1,23 @@ +%YAML 1.1 +--- +- name: spec-02-21 + tree: | + +STR + +DOC + +MAP + =VAL :null + =VAL :~ + =VAL :true + =VAL :y + =VAL :false + =VAL :n + =VAL :string + =VAL '12345 + -MAP + -DOC + -STR + yaml: | + null: ~ + true: y + false: n + string: '12345' diff --git a/test/spec 1.1/spec-02-22.yaml b/test/spec 1.1/spec-02-22.yaml new file mode 100644 index 00000000..00e1bf6b --- /dev/null +++ b/test/spec 1.1/spec-02-22.yaml @@ -0,0 +1,23 @@ +%YAML 1.1 +--- +- name: spec-02-22 + tree: | + +STR + +DOC + +MAP + =VAL :canonical + =VAL :2001-12-15T02:59:43.1Z + =VAL :iso8601 + =VAL :2001-12-14t21:59:43.10-05:00 + =VAL :spaced + =VAL :2001-12-14 21:59:43.10 -5 + =VAL :date + =VAL :2002-12-14 + -MAP + -DOC + -STR + yaml: | + canonical: 2001-12-15T02:59:43.1Z + iso8601: 2001-12-14t21:59:43.10-05:00 + spaced: 2001-12-14 21:59:43.10 -5 + date: 2002-12-14 diff --git a/test/spec 1.1/spec-02-23.yaml b/test/spec 1.1/spec-02-23.yaml new file mode 100644 index 00000000..09a3e4a6 --- /dev/null +++ b/test/spec 1.1/spec-02-23.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: spec-02-23 + tree: | + +STR + +DOC --- + +MAP + =VAL :not-date + =VAL :2002-04-28 + =VAL :picture + =VAL |R0lGODlhDAAMAIQAAP//9/X\n17unp5WZmZgAAAOfn515eXv\nPz7Y6OjuDg4J+fn5OTk6enp\n56enmleECcgggoBADs=\n + =VAL :application specific tag + =VAL |The semantics of the tag\nabove may be different for\ndifferent documents.\n + -MAP + -DOC + -STR + yaml: | + --- + not-date: !!str 2002-04-28 + + picture: !!binary | + R0lGODlhDAAMAIQAAP//9/X + 17unp5WZmZgAAAOfn515eXv + Pz7Y6OjuDg4J+fn5OTk6enp + 56enmleECcgggoBADs= + + application specific tag: !something | + The semantics of the tag + above may be different for + different documents. diff --git a/test/spec 1.1/spec-02-24.yaml b/test/spec 1.1/spec-02-24.yaml new file mode 100644 index 00000000..29ecb6c8 --- /dev/null +++ b/test/spec 1.1/spec-02-24.yaml @@ -0,0 +1,55 @@ +%YAML 1.1 +--- +- name: spec-02-24 + tree: | + +STR + +DOC --- + +SEQ + +MAP + =VAL :center + +MAP {} &ORIGIN + =VAL :x + =VAL :73 + =VAL :y + =VAL :129 + -MAP + =VAL :radius + =VAL :7 + -MAP + +MAP + =VAL :start + =ALI *ORIGIN + =VAL :finish + +MAP {} + =VAL :x + =VAL :89 + =VAL :y + =VAL :102 + -MAP + -MAP + +MAP + =VAL :start + =ALI *ORIGIN + =VAL :color + =VAL :0xFFEEBB + =VAL :text + =VAL :Pretty vector drawing. + -MAP + -SEQ + -DOC + -STR + yaml: | + %TAG ! tag:clarkevans.com,2002: + --- !shape + # Use the ! handle for presenting + # tag:clarkevans.com,2002:circle + - !circle + center: &ORIGIN {x: 73, y: 129} + radius: 7 + - !line + start: *ORIGIN + finish: { x: 89, y: 102 } + - !label + start: *ORIGIN + color: 0xFFEEBB + text: Pretty vector drawing. diff --git a/test/spec 1.1/spec-02-25.yaml b/test/spec 1.1/spec-02-25.yaml new file mode 100644 index 00000000..85ac7d80 --- /dev/null +++ b/test/spec 1.1/spec-02-25.yaml @@ -0,0 +1,24 @@ +%YAML 1.1 +--- +- name: spec-02-25 + tree: | + +STR + +DOC --- + +MAP + =VAL :Mark McGwire + =VAL : + =VAL :Sammy Sosa + =VAL : + =VAL :Ken Griff + =VAL : + -MAP + -DOC + -STR + yaml: | + # sets are represented as a + # mapping where each key is + # associated with the empty string + --- !!set + ? Mark McGwire + ? Sammy Sosa + ? Ken Griff diff --git a/test/spec 1.1/spec-02-26.yaml b/test/spec 1.1/spec-02-26.yaml new file mode 100644 index 00000000..852aa4fe --- /dev/null +++ b/test/spec 1.1/spec-02-26.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: spec-02-26 + tree: | + +STR + +DOC --- + +SEQ + +MAP + =VAL :Mark McGwire + =VAL :65 + -MAP + +MAP + =VAL :Sammy Sosa + =VAL :63 + -MAP + +MAP + =VAL :Ken Griffy + =VAL :58 + -MAP + -SEQ + -DOC + -STR + yaml: | + # ordered maps are represented as + # a sequence of mappings, with + # each mapping having one key + --- !!omap + - Mark McGwire: 65 + - Sammy Sosa: 63 + - Ken Griffy: 58 diff --git a/test/spec 1.1/spec-02-27.yaml b/test/spec 1.1/spec-02-27.yaml new file mode 100644 index 00000000..5e23800d --- /dev/null +++ b/test/spec 1.1/spec-02-27.yaml @@ -0,0 +1,93 @@ +%YAML 1.1 +--- +- name: spec-02-27 + tree: | + +STR + +DOC --- + +MAP + =VAL :invoice + =VAL :34843 + =VAL :date + =VAL :2001-01-23 + =VAL :bill-to + +MAP &id001 + =VAL :given + =VAL :Chris + =VAL :family + =VAL :Dumars + =VAL :address + +MAP + =VAL :lines + =VAL |458 Walkman Dr.\nSuite #292\n + =VAL :city + =VAL :Royal Oak + =VAL :state + =VAL :MI + =VAL :postal + =VAL :48046 + -MAP + -MAP + =VAL :ship-to + =ALI *id001 + =VAL :product + +SEQ + +MAP + =VAL :sku + =VAL :BL394D + =VAL :quantity + =VAL :4 + =VAL :description + =VAL :Basketball + =VAL :price + =VAL :450.00 + -MAP + +MAP + =VAL :sku + =VAL :BL4438H + =VAL :quantity + =VAL :1 + =VAL :description + =VAL :Super Hoop + =VAL :price + =VAL :2392.00 + -MAP + -SEQ + =VAL :tax + =VAL :251.42 + =VAL :total + =VAL :4443.52 + =VAL :comments + =VAL :Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338. + -MAP + -DOC + -STR + yaml: | + --- ! + invoice: 34843 + date : 2001-01-23 + bill-to: &id001 + given : Chris + family : Dumars + address: + lines: | + 458 Walkman Dr. + Suite #292 + city : Royal Oak + state : MI + postal : 48046 + ship-to: *id001 + product: + - sku : BL394D + quantity : 4 + description : Basketball + price : 450.00 + - sku : BL4438H + quantity : 1 + description : Super Hoop + price : 2392.00 + tax : 251.42 + total: 4443.52 + comments: + Late afternoon is best. + Backup contact is Nancy + Billsmer @ 338-4338. diff --git a/test/spec 1.1/spec-02-28.yaml b/test/spec 1.1/spec-02-28.yaml new file mode 100644 index 00000000..7f142d7d --- /dev/null +++ b/test/spec 1.1/spec-02-28.yaml @@ -0,0 +1,82 @@ +%YAML 1.1 +--- +- name: spec-02-28 + tree: | + +STR + +DOC --- + +MAP + =VAL :Time + =VAL :2001-11-23 15:01:42 -5 + =VAL :User + =VAL :ed + =VAL :Warning + =VAL :This is an error message for the log file + -MAP + -DOC + +DOC --- + +MAP + =VAL :Time + =VAL :2001-11-23 15:02:31 -5 + =VAL :User + =VAL :ed + =VAL :Warning + =VAL :A slightly different error message. + -MAP + -DOC + +DOC --- + +MAP + =VAL :Date + =VAL :2001-11-23 15:03:17 -5 + =VAL :User + =VAL :ed + =VAL :Fatal + =VAL :Unknown variable "bar" + =VAL :Stack + +SEQ + +MAP + =VAL :file + =VAL :TopClass.py + =VAL :line + =VAL :23 + =VAL :code + =VAL |x = MoreObject("345\\n")\n + -MAP + +MAP + =VAL :file + =VAL :MoreClass.py + =VAL :line + =VAL :58 + =VAL :code + =VAL |foo = bar + -MAP + -SEQ + -MAP + -DOC + -STR + yaml: | + --- + Time: 2001-11-23 15:01:42 -5 + User: ed + Warning: + This is an error message + for the log file + --- + Time: 2001-11-23 15:02:31 -5 + User: ed + Warning: + A slightly different error + message. + --- + Date: 2001-11-23 15:03:17 -5 + User: ed + Fatal: + Unknown variable "bar" + Stack: + - file: TopClass.py + line: 23 + code: | + x = MoreObject("345\n") + - file: MoreClass.py + line: 58 + code: |- + foo = bar diff --git a/test/spec 1.1/spec-05-01-utf8.yaml b/test/spec 1.1/spec-05-01-utf8.yaml new file mode 100644 index 00000000..0605eb09 --- /dev/null +++ b/test/spec 1.1/spec-05-01-utf8.yaml @@ -0,0 +1,13 @@ +%YAML 1.1 +--- +- name: spec-05-01-utf8 + yaml: | + # Comment only. + tree: | + +STR + -STR +- name: spec-05-01-utf8-canonical + yaml: "" + tree: | + +STR + -STR diff --git a/test/spec 1.1/spec-05-02-utf8.yaml b/test/spec 1.1/spec-05-02-utf8.yaml new file mode 100644 index 00000000..bc50fe97 --- /dev/null +++ b/test/spec 1.1/spec-05-02-utf8.yaml @@ -0,0 +1,9 @@ +%YAML 1.1 +--- +- name: spec-05-02-utf8 + #FIXME + # error: | + # ERROR: + # A BOM must not appear + # inside a document. + yaml: "# Invalid use of BOM\n\uFEFF# inside a\n# document.\n" diff --git a/test/spec 1.1/spec-05-03.yaml b/test/spec 1.1/spec-05-03.yaml new file mode 100644 index 00000000..0078d03d --- /dev/null +++ b/test/spec 1.1/spec-05-03.yaml @@ -0,0 +1,71 @@ +%YAML 1.1 +--- +- name: spec-05-03 + yaml: | + sequence: + - one + - two + mapping: + ? sky + : blue + ? sea : green + tree: | + +STR + +DOC + +MAP + =VAL :sequence + +SEQ + =VAL :one + =VAL :two + -SEQ + =VAL :mapping + +MAP + =VAL :sky + =VAL :blue + +MAP + =VAL :sea + =VAL :green + -MAP + =VAL : + -MAP + -MAP + -DOC + -STR +- name: spec-05-03-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "sequence" + : !!seq [ + !!str "one", !!str "two" + ], + ? !!str "mapping" + : !!map { + ? !!str "sky" : !!str "blue", + # ? !!str "sea" : !!str "green", + ? !!map { ? !!str "sea" : !!str "green" } : !!null "", + } + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "sequence + +SEQ [] + =VAL "one + =VAL "two + -SEQ + =VAL "mapping + +MAP {} + =VAL "sky + =VAL "blue + +MAP {} + =VAL "sea + =VAL "green + -MAP + =VAL " + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-05-04.yaml b/test/spec 1.1/spec-05-04.yaml new file mode 100644 index 00000000..1e18cc6d --- /dev/null +++ b/test/spec 1.1/spec-05-04.yaml @@ -0,0 +1,59 @@ +%YAML 1.1 +--- +- name: spec-05-04 + yaml: | + sequence: [ one, two, ] + mapping: { sky: blue, sea: green } + tree: | + +STR + +DOC + +MAP + =VAL :sequence + +SEQ [] + =VAL :one + =VAL :two + -SEQ + =VAL :mapping + +MAP {} + =VAL :sky + =VAL :blue + =VAL :sea + =VAL :green + -MAP + -MAP + -DOC + -STR +- name: spec-05-04-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "sequence" + : !!seq [ + !!str "one", !!str "two" + ], + ? !!str "mapping" + : !!map { + ? !!str "sky" : !!str "blue", + ? !!str "sea" : !!str "green", + } + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "sequence + +SEQ [] + =VAL "one + =VAL "two + -SEQ + =VAL "mapping + +MAP {} + =VAL "sky + =VAL "blue + =VAL "sea + =VAL "green + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-05-05.yaml b/test/spec 1.1/spec-05-05.yaml new file mode 100644 index 00000000..ba6c65ab --- /dev/null +++ b/test/spec 1.1/spec-05-05.yaml @@ -0,0 +1,13 @@ +%YAML 1.1 +--- +- name: spec-05-05 + yaml: | + # Comment only. + tree: | + +STR + -STR +- name: spec-05-05-canonical + yaml: "" + tree: | + +STR + -STR diff --git a/test/spec 1.1/spec-05-06.yaml b/test/spec 1.1/spec-05-06.yaml new file mode 100644 index 00000000..97c48e30 --- /dev/null +++ b/test/spec 1.1/spec-05-06.yaml @@ -0,0 +1,38 @@ +%YAML 1.1 +--- +- name: spec-05-06 + yaml: | + anchored: !local &anchor value + alias: *anchor + tree: | + +STR + +DOC + +MAP + =VAL :anchored + =VAL &anchor :value + =VAL :alias + =ALI *anchor + -MAP + -DOC + -STR +- name: spec-05-06-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "anchored" + : &A1 !local "value", + ? !!str "alias" + : *A1, + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "anchored + =VAL &A1 "value + =VAL "alias + =ALI *A1 + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-05-07.yaml b/test/spec 1.1/spec-05-07.yaml new file mode 100644 index 00000000..1338d16c --- /dev/null +++ b/test/spec 1.1/spec-05-07.yaml @@ -0,0 +1,40 @@ +%YAML 1.1 +--- +- name: spec-05-07 + yaml: | + literal: | + text + folded: > + text + tree: | + +STR + +DOC + +MAP + =VAL :literal + =VAL |text\n + =VAL :folded + =VAL >text\n + -MAP + -DOC + -STR +- name: spec-05-07-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "literal" + : !!str "text\n", + ? !!str "folded" + : !!str "text\n", + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "literal + =VAL "text\n + =VAL "folded + =VAL "text\n + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-05-08.yaml b/test/spec 1.1/spec-05-08.yaml new file mode 100644 index 00000000..716641c5 --- /dev/null +++ b/test/spec 1.1/spec-05-08.yaml @@ -0,0 +1,38 @@ +%YAML 1.1 +--- +- name: spec-05-08 + yaml: | + single: 'text' + double: "text" + tree: | + +STR + +DOC + +MAP + =VAL :single + =VAL 'text + =VAL :double + =VAL "text + -MAP + -DOC + -STR +- name: spec-05-08-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "single" + : !!str "text", + ? !!str "double" + : !!str "text", + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "single + =VAL "text + =VAL "double + =VAL "text + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-05-09.yaml b/test/spec 1.1/spec-05-09.yaml new file mode 100644 index 00000000..7c36e8df --- /dev/null +++ b/test/spec 1.1/spec-05-09.yaml @@ -0,0 +1,23 @@ +%YAML 1.1 +--- +- name: spec-05-09 + yaml: | + %YAML 1.1 + --- text + tree: | + +STR + +DOC --- + =VAL :text + -DOC + -STR +- name: spec-05-09-canonical + yaml: | + %YAML 1.1 + --- + !!str "text" + tree: | + +STR + +DOC --- + =VAL "text + -DOC + -STR diff --git a/test/spec 1.1/spec-05-10.yaml b/test/spec 1.1/spec-05-10.yaml new file mode 100644 index 00000000..5a45e255 --- /dev/null +++ b/test/spec 1.1/spec-05-10.yaml @@ -0,0 +1,10 @@ +%YAML 1.1 +--- +- name: spec-05-10 + fail: true + mark: { line: 1, column: 16 } + error: | + While scanning for the next token, found character '@', index 64 that cannot start any token + yaml: | + commercial-at: @text + grave-accent: `text diff --git a/test/spec 1.1/spec-05-11.yaml b/test/spec 1.1/spec-05-11.yaml new file mode 100644 index 00000000..3bcfbd49 --- /dev/null +++ b/test/spec 1.1/spec-05-11.yaml @@ -0,0 +1,25 @@ +%YAML 1.1 +--- +- name: spec-05-11 + yaml: "|\n Generic line break (no glyph)\n Generic line break (glyphed)\N Line separator\L Paragraph separator\P" + # FIXME + # tree: | + # +STR + # +DOC + # =VAL |Generic line break (no glyph)\nGeneric line break (glyphed)\nLine separator\LParagraph separator\P + # -DOC + # -STR +- name: spec-05-11-canonical + yaml: | + %YAML 1.1 + --- !!str + "Generic line break (no glyph)\n\ + Generic line break (glyphed)\n\ + Line separator\u2028\ + Paragraph separator\u2029" + # tree: | + # +STR + # +DOC --- + # =VAL "Generic line break (no glyph)\nGeneric line break (glyphed)\nLine separator\LParagraph separator\P + # -DOC + # -STR diff --git a/test/spec 1.1/spec-05-12.yaml b/test/spec 1.1/spec-05-12.yaml new file mode 100644 index 00000000..3e7cb2b0 --- /dev/null +++ b/test/spec 1.1/spec-05-12.yaml @@ -0,0 +1,10 @@ +%YAML 1.1 +--- +- name: spec-05-12 + fail: true + mark: { line: 8, column: 11 } + error: | + While scanning for the next token, found character ' ', index 9 that cannot start any token + yaml: "# Tabs do's and don'ts:\n# comment: \t\nquoted: \"Quoted\t\t\"\nblock: |\n\ + \ void main() {\n \tprintf(\"Hello, world!\\n\");\n }\nelsewhere:\t# separation\n\ + \tindentation, in\tplain scalar\n" diff --git a/test/spec 1.1/spec-05-13.yaml b/test/spec 1.1/spec-05-13.yaml new file mode 100644 index 00000000..f8faf767 --- /dev/null +++ b/test/spec 1.1/spec-05-13.yaml @@ -0,0 +1,19 @@ +%YAML 1.1 +--- +- name: spec-05-13 + yaml: " \"Text containing \n both space and\t\n \ttab\tcharacters\"\n" + tree: | + +STR + +DOC + =VAL "Text containing both space and tab\tcharacters + -DOC + -STR +- name: spec-05-13-canonical + yaml: "%YAML 1.1\n--- !!str\n\"Text containing \\\n both space and \\\n tab\t\ + characters\"\n" + tree: | + +STR + +DOC --- + =VAL "Text containing both space and tab\tcharacters + -DOC + -STR diff --git a/test/spec 1.1/spec-05-14.yaml b/test/spec 1.1/spec-05-14.yaml new file mode 100644 index 00000000..9665fa93 --- /dev/null +++ b/test/spec 1.1/spec-05-14.yaml @@ -0,0 +1,23 @@ +%YAML 1.1 +--- +- name: spec-05-14 + yaml: | + "Fun with \\ + \" \a \b \e \f \ + \n \r \t \v \0 \
 \ \_ \N \L \P \
 \x41 \u0041 \U00000041" +- name: spec-05-14-canonical + yaml: | + %YAML 1.1 + --- + "Fun with \x5C + \x22 \x07 \x08 \x1B \x0C + \x0A \x0D \x09 \x0B \x00 + \x20 \xA0 \x85 \u2028 \u2029 + A A A" + # FIXME + # tree: | + # +STR + # +DOC --- + # =VAL "Fun with \\ " \a \b \e \f \n \r \t \v \0 \_ \N \L \P A A A + # -DOC + # -STR diff --git a/test/spec 1.1/spec-05-15.yaml b/test/spec 1.1/spec-05-15.yaml new file mode 100644 index 00000000..a5844535 --- /dev/null +++ b/test/spec 1.1/spec-05-15.yaml @@ -0,0 +1,12 @@ +%YAML 1.1 +--- +- name: spec-05-15 + fail: true + mark: { line: 2, column: 5 } + mark2: { line: 2, column: 3 } + error: | + While scanning a double quoted scalar, found unsupported escape character c + yaml: | + Bad escapes: + "\c + \xq-" diff --git a/test/spec 1.1/spec-06-01.yaml b/test/spec 1.1/spec-06-01.yaml new file mode 100644 index 00000000..635877b4 --- /dev/null +++ b/test/spec 1.1/spec-06-01.yaml @@ -0,0 +1,61 @@ +%YAML 1.1 +--- +- name: spec-06-01 + yaml: " # Leading comment line spaces are\n # neither content nor indentation.\n\ + \ \nNot indented:\n By one space: |\n By four\n spaces\n Flow style:\ + \ [ # Leading spaces\n By two, # in flow style\n Also by two, #\ + \ are neither\n# Tabs are not allowed:\n# \tStill by two # content nor\n Still\ + \ by two # content nor\n ] # indentation.\n" + tree: | + +STR + +DOC + +MAP + =VAL :Not indented + +MAP + =VAL :By one space + =VAL |By four\n spaces\n + =VAL :Flow style + +SEQ [] + =VAL :By two + =VAL :Also by two + =VAL :Still by two + -SEQ + -MAP + -MAP + -DOC + -STR +- name: spec-06-01-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "Not indented" + : !!map { + ? !!str "By one space" + : !!str "By four\n spaces\n", + ? !!str "Flow style" + : !!seq [ + !!str "By two", + !!str "Also by two", + !!str "Still by two", + ] + } + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "Not indented + +MAP {} + =VAL "By one space + =VAL "By four\n spaces\n + =VAL "Flow style + +SEQ [] + =VAL "By two + =VAL "Also by two + =VAL "Still by two + -SEQ + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-06-02.yaml b/test/spec 1.1/spec-06-02.yaml new file mode 100644 index 00000000..e7979bea --- /dev/null +++ b/test/spec 1.1/spec-06-02.yaml @@ -0,0 +1,12 @@ +%YAML 1.1 +--- +- name: spec-06-02 + yaml: " # Comment\n \n\n" + tree: | + +STR + -STR +- name: spec-06-02-canonical + yaml: "" + tree: | + +STR + -STR diff --git a/test/spec 1.1/spec-06-03.yaml b/test/spec 1.1/spec-06-03.yaml new file mode 100644 index 00000000..87f8268a --- /dev/null +++ b/test/spec 1.1/spec-06-03.yaml @@ -0,0 +1,33 @@ +%YAML 1.1 +--- +- name: spec-06-03 + yaml: | + key: # Comment + value + tree: | + +STR + +DOC + +MAP + =VAL :key + =VAL :value + -MAP + -DOC + -STR +- name: spec-06-03-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "key" + : !!str "value" + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "key + =VAL "value + -MAP + -DOC + -STR + diff --git a/test/spec 1.1/spec-06-04.yaml b/test/spec 1.1/spec-06-04.yaml new file mode 100644 index 00000000..2a99fcbe --- /dev/null +++ b/test/spec 1.1/spec-06-04.yaml @@ -0,0 +1,34 @@ +%YAML 1.1 +--- +- name: spec-06-04 + yaml: |+ + key: # Comment + # lines + value + + tree: | + +STR + +DOC + +MAP + =VAL :key + =VAL :value + -MAP + -DOC + -STR +- name: spec-06-04-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "key" + : !!str "value" + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "key + =VAL "value + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-06-05.yaml b/test/spec 1.1/spec-06-05.yaml new file mode 100644 index 00000000..6bd3ac4d --- /dev/null +++ b/test/spec 1.1/spec-06-05.yaml @@ -0,0 +1,66 @@ +%YAML 1.1 +--- +- name: spec-06-05 + yaml: | + { first: Sammy, last: Sosa }: + # Statistics: + hr: # Home runs + 65 + avg: # Average + 0.278 + tree: | + +STR + +DOC + +MAP + +MAP {} + =VAL :first + =VAL :Sammy + =VAL :last + =VAL :Sosa + -MAP + +MAP + =VAL :hr + =VAL :65 + =VAL :avg + =VAL :0.278 + -MAP + -MAP + -DOC + -STR +- name: spec-06-05-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!map { + ? !!str "first" + : !!str "Sammy", + ? !!str "last" + : !!str "Sosa" + } + : !!map { + ? !!str "hr" + : !!int "65", + ? !!str "avg" + : !!float "0.278" + } + } + tree: | + +STR + +DOC --- + +MAP {} + +MAP {} + =VAL "first + =VAL "Sammy + =VAL "last + =VAL "Sosa + -MAP + +MAP {} + =VAL "hr + =VAL "65 + =VAL "avg + =VAL "0.278 + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-06-06.yaml b/test/spec 1.1/spec-06-06.yaml new file mode 100644 index 00000000..d3ab9dad --- /dev/null +++ b/test/spec 1.1/spec-06-06.yaml @@ -0,0 +1,35 @@ +%YAML 1.1 +--- +- name: spec-06-06 + yaml: "plain: text\n lines\nquoted: \"text\n \tlines\"\nblock: |\n text\n \t\ + lines\n" + tree: | + +STR + +DOC + +MAP + =VAL :plain + =VAL :text lines + =VAL :quoted + =VAL "text lines + =VAL :block + =VAL |text\n \tlines\n + -MAP + -DOC + -STR +- name: spec-06-06-canonical + yaml: "%YAML 1.1\n---\n!!map {\n ? !!str \"plain\"\n : !!str \"text lines\"\ + ,\n ? !!str \"quoted\"\n : !!str \"text lines\",\n ? !!str \"block\"\n : !!str\ + \ \"text\\n \tlines\\n\"\n}\n" + tree: | + +STR + +DOC --- + +MAP {} + =VAL "plain + =VAL "text lines + =VAL "quoted + =VAL "text lines + =VAL "block + =VAL "text\n \tlines\n + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-06-07.yaml b/test/spec 1.1/spec-06-07.yaml new file mode 100644 index 00000000..ab210d85 --- /dev/null +++ b/test/spec 1.1/spec-06-07.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: spec-06-07 + yaml: "- foo\n \n bar\n- |-\n foo\n \n bar\n \n" + tree: | + +STR + +DOC + +SEQ + =VAL :foo\nbar + =VAL |foo\n\nbar + -SEQ + -DOC + -STR +- name: spec-06-07-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "foo\nbar", + !!str "foo\n\nbar" + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "foo\nbar + =VAL "foo\n\nbar + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-06-08.yaml b/test/spec 1.1/spec-06-08.yaml new file mode 100644 index 00000000..05c3fbab --- /dev/null +++ b/test/spec 1.1/spec-06-08.yaml @@ -0,0 +1,18 @@ +%YAML 1.1 +--- +- name: spec-06-08 + yaml: ">-\n specific\L trimmed\N \N \N\N as\N space\n" +- name: spec-06-08-canonical + yaml: | + %YAML 1.1 + --- !!str + "specific\L\ + trimmed\n\n\n\ + as space" + # FIXME + # tree: | + # +STR + # +DOC --- + # =VAL "specific\Ltrimmed\n\n\nas space + # -DOC + # -STR diff --git a/test/spec 1.1/spec-07-01.yaml b/test/spec 1.1/spec-07-01.yaml new file mode 100644 index 00000000..b8bd3ac7 --- /dev/null +++ b/test/spec 1.1/spec-07-01.yaml @@ -0,0 +1,24 @@ +%YAML 1.1 +--- +- name: spec-07-01 + yaml: | + %FOO bar baz # Should be ignored + # with a warning. + --- "foo" + tree: | + +STR + +DOC --- + =VAL "foo + -DOC + -STR +- name: spec-07-01-canonical + yaml: | + %YAML 1.1 + --- !!str + "foo" + tree: | + +STR + +DOC --- + =VAL "foo + -DOC + -STR diff --git a/test/spec 1.1/spec-07-02.yaml b/test/spec 1.1/spec-07-02.yaml new file mode 100644 index 00000000..7d21c265 --- /dev/null +++ b/test/spec 1.1/spec-07-02.yaml @@ -0,0 +1,25 @@ +%YAML 1.1 +--- +- name: spec-07-02 + yaml: | + %YAML 1.2 # Attempt parsing + # with a warning + --- + "foo" + tree: | + +STR + +DOC --- + =VAL "foo + -DOC + -STR +- name: spec-07-02-canonical + yaml: | + %YAML 1.1 + --- + !!str "foo" + tree: | + +STR + +DOC --- + =VAL "foo + -DOC + -STR diff --git a/test/spec 1.1/spec-07-03.yaml b/test/spec 1.1/spec-07-03.yaml new file mode 100644 index 00000000..f642cf08 --- /dev/null +++ b/test/spec 1.1/spec-07-03.yaml @@ -0,0 +1,11 @@ +%YAML 1.1 +--- +- name: spec-07-03 + fail: true + mark: { line: 2, column: 1} + error: | + Duplicate YAML directive + yaml: | + %YAML 1.1 + %YAML 1.1 + foo diff --git a/test/spec 1.1/spec-07-04.yaml b/test/spec 1.1/spec-07-04.yaml new file mode 100644 index 00000000..e4abb19d --- /dev/null +++ b/test/spec 1.1/spec-07-04.yaml @@ -0,0 +1,24 @@ +%YAML 1.1 +--- +- name: spec-07-04 + yaml: | + %TAG !yaml! tag:yaml.org,2002: + --- + !yaml!str "foo" + tree: | + +STR + +DOC --- + =VAL "foo + -DOC + -STR +- name: spec-07-04-canonical + yaml: | + %YAML 1.1 + --- + !!str "foo" + tree: | + +STR + +DOC --- + =VAL "foo + -DOC + -STR diff --git a/test/spec 1.1/spec-07-05.yaml b/test/spec 1.1/spec-07-05.yaml new file mode 100644 index 00000000..a6d42622 --- /dev/null +++ b/test/spec 1.1/spec-07-05.yaml @@ -0,0 +1,11 @@ +%YAML 1.1 +--- +- name: spec-07-05 + fail: true + mark: { line: 2, column: 1} + error: | + Duplicate tag handle: ! + yaml: | + %TAG ! !foo + %TAG ! !foo + bar diff --git a/test/spec 1.1/spec-07-06.yaml b/test/spec 1.1/spec-07-06.yaml new file mode 100644 index 00000000..1c561c3f --- /dev/null +++ b/test/spec 1.1/spec-07-06.yaml @@ -0,0 +1,35 @@ +%YAML 1.1 +--- +- name: spec-07-06 + yaml: | + %TAG ! !foo + %TAG !yaml! tag:yaml.org,2002: + --- + - !bar "baz" + - !yaml!str "string" + tree: | + +STR + +DOC --- + +SEQ + =VAL "baz + =VAL "string + -SEQ + -DOC + -STR +- name: spec-07-06-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + ! "baz", + ! "string" + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "baz + =VAL "string + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-07-07.yaml b/test/spec 1.1/spec-07-07.yaml new file mode 100644 index 00000000..503126ca --- /dev/null +++ b/test/spec 1.1/spec-07-07.yaml @@ -0,0 +1,46 @@ +%YAML 1.1 +--- +- name: spec-07-07a + yaml: | + # Private application: + !foo "bar" + tree: | + +STR + +DOC + =VAL "bar + -DOC + -STR +- name: spec-07-07b + yaml: | + # Migrated to global: + %TAG ! tag:ben-kiki.org,2000:app/ + --- + !foo "bar" + tree: | + +STR + +DOC --- + =VAL "bar + -DOC + -STR +- name: spec-07-07a-canonical + yaml: | + %YAML 1.1 + --- + ! "bar" + tree: | + +STR + +DOC --- + =VAL "bar + -DOC + -STR +- name: spec-07-07b-canonical + yaml: | + %YAML 1.1 + --- + ! "bar" + tree: | + +STR + +DOC --- + =VAL "bar + -DOC + -STR diff --git a/test/spec 1.1/spec-07-08.yaml b/test/spec 1.1/spec-07-08.yaml new file mode 100644 index 00000000..4eeb245c --- /dev/null +++ b/test/spec 1.1/spec-07-08.yaml @@ -0,0 +1,42 @@ +%YAML 1.1 +--- +- name: spec-07-08 + yaml: | + # Explicitly specify default settings: + %TAG ! ! + %TAG !! tag:yaml.org,2002: + # Named handles have no default: + %TAG !o! tag:ben-kiki.org,2000: + --- + - !foo "bar" + - !!str "string" + - !o!type "baz" + tree: | + +STR + +DOC --- + +SEQ + =VAL "bar + =VAL "string + =VAL "baz + -SEQ + -DOC + -STR +- name: spec-07-08-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + ! "bar", + ! "string", + ! "baz" + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "bar + =VAL "string + =VAL "baz + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-07-09.yaml b/test/spec 1.1/spec-07-09.yaml new file mode 100644 index 00000000..fae3f432 --- /dev/null +++ b/test/spec 1.1/spec-07-09.yaml @@ -0,0 +1,48 @@ +%YAML 1.1 +--- +- name: spec-07-09 + yaml: | + --- + foo + ... + # Repeated end marker. + ... + --- + bar + # No end marker. + --- + baz + ... + tree: | + +STR + +DOC --- + =VAL :foo + -DOC ... + +DOC --- + =VAL :bar + -DOC + +DOC --- + =VAL :baz + -DOC ... + -STR +- name: spec-07-09-canonical + yaml: | + %YAML 1.1 + --- + !!str "foo" + --- + !!str "bar" + --- + !!str "baz" + tree: | + +STR + +DOC --- + =VAL "foo + -DOC + +DOC --- + =VAL "bar + -DOC + +DOC --- + =VAL "baz + -DOC + -STR diff --git a/test/spec 1.1/spec-07-10.yaml b/test/spec 1.1/spec-07-10.yaml new file mode 100644 index 00000000..6d1decd6 --- /dev/null +++ b/test/spec 1.1/spec-07-10.yaml @@ -0,0 +1,66 @@ +%YAML 1.1 +--- +- name: spec-07-10 + yaml: | + "Root flow + scalar" + --- !!str > + Root block + scalar + --- + # Root collection: + foo : bar + ... # Is optional. + --- + # Explicit document may be empty. + tree: | + +STR + +DOC + =VAL "Root flow scalar + -DOC + +DOC --- + =VAL >Root block scalar\n + -DOC + +DOC --- + +MAP + =VAL :foo + =VAL :bar + -MAP + -DOC ... + +DOC --- + =VAL : + -DOC + -STR +- name: spec-07-10-canonical + yaml: | + %YAML 1.1 + --- + !!str "Root flow scalar" + --- + !!str "Root block scalar\n" + --- + !!map { + ? !!str "foo" + : !!str "bar" + } + --- + #!!str "" + !!null "" + tree: | + +STR + +DOC --- + =VAL "Root flow scalar + -DOC + +DOC --- + =VAL "Root block scalar\n + -DOC + +DOC --- + +MAP {} + =VAL "foo + =VAL "bar + -MAP + -DOC + +DOC --- + =VAL " + -DOC + -STR diff --git a/test/spec 1.1/spec-07-11.yaml b/test/spec 1.1/spec-07-11.yaml new file mode 100644 index 00000000..08f5890a --- /dev/null +++ b/test/spec 1.1/spec-07-11.yaml @@ -0,0 +1,14 @@ +%YAML 1.1 +--- +- name: spec-07-11 + yaml: | + # A stream may contain + # no documents. + tree: | + +STR + -STR +- name: spec-07-11-canonical + yaml: "" + tree: | + +STR + -STR diff --git a/test/spec 1.1/spec-07-12.yaml b/test/spec 1.1/spec-07-12.yaml new file mode 100644 index 00000000..9c372da3 --- /dev/null +++ b/test/spec 1.1/spec-07-12.yaml @@ -0,0 +1,56 @@ +%YAML 1.1 +--- +- name: spec-07-12a + yaml: | + # Implicit document. Root + # collection (mapping) node. + foo : bar + tree: | + +STR + +DOC + +MAP + =VAL :foo + =VAL :bar + -MAP + -DOC + -STR +- name: spec-07-12a-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "foo" + : !!str "bar" + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "foo + =VAL "bar + -MAP + -DOC + -STR +- name: spec-07-12b + yaml: | + # Explicit document. Root + # scalar (literal) node. + --- | + Text content + tree: | + +STR + +DOC --- + =VAL |Text content\n + -DOC + -STR +- name: spec-07-12b-canonical + yaml: | + %YAML 1.1 + --- + !!str "Text content\n" + tree: | + +STR + +DOC --- + =VAL "Text content\n + -DOC + -STR diff --git a/test/spec 1.1/spec-07-13.yaml b/test/spec 1.1/spec-07-13.yaml new file mode 100644 index 00000000..4a847268 --- /dev/null +++ b/test/spec 1.1/spec-07-13.yaml @@ -0,0 +1,54 @@ +%YAML 1.1 +--- +- name: spec-07-13 + yaml: | + ! "First document" + --- + !foo "No directives" + %TAG ! !foo + --- + !bar "With directives" + %YAML 1.1 + --- + !baz "Reset settings" + tree: | + +STR + +DOC + =VAL "First document + -DOC + +DOC --- + =VAL "No directives + -DOC + +DOC --- + =VAL "With directives + -DOC + +DOC --- + =VAL "Reset settings + -DOC + -STR +- name: spec-07-13-canonical + yaml: | + %YAML 1.1 + --- + !!str "First document" + --- + ! "No directives" + --- + ! "With directives" + --- + ! "Reset settings" + tree: | + +STR + +DOC --- + =VAL "First document + -DOC + +DOC --- + =VAL "No directives + -DOC + +DOC --- + =VAL "With directives + -DOC + +DOC --- + =VAL "Reset settings + -DOC + -STR diff --git a/test/spec 1.1/spec-08-01.yaml b/test/spec 1.1/spec-08-01.yaml new file mode 100644 index 00000000..38bc9589 --- /dev/null +++ b/test/spec 1.1/spec-08-01.yaml @@ -0,0 +1,38 @@ +%YAML 1.1 +--- +- name: spec-08-01 + yaml: | + !!str &a1 "foo" : !!str bar + &a2 baz : *a1 + tree: | + +STR + +DOC + +MAP + =VAL &a1 "foo + =VAL :bar + =VAL &a2 :baz + =ALI *a1 + -MAP + -DOC + -STR +- name: spec-08-01-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? &A1 !!str "foo" + : !!str "bar", + ? &A2 !!str "baz" + : *A1 + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL &A1 "foo + =VAL "bar + =VAL &A2 "baz + =ALI *A1 + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-08-02.yaml b/test/spec 1.1/spec-08-02.yaml new file mode 100644 index 00000000..f002beb8 --- /dev/null +++ b/test/spec 1.1/spec-08-02.yaml @@ -0,0 +1,38 @@ +%YAML 1.1 +--- +- name: spec-08-02 + yaml: | + First occurrence: &anchor Value + Second occurrence: *anchor + tree: | + +STR + +DOC + +MAP + =VAL :First occurrence + =VAL &anchor :Value + =VAL :Second occurrence + =ALI *anchor + -MAP + -DOC + -STR +- name: spec-08-02-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "First occurrence" + : &A !!str "Value", + ? !!str "Second occurrence" + : *A + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "First occurrence + =VAL &A "Value + =VAL "Second occurrence + =ALI *A + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-08-03.yaml b/test/spec 1.1/spec-08-03.yaml new file mode 100644 index 00000000..6f715bfc --- /dev/null +++ b/test/spec 1.1/spec-08-03.yaml @@ -0,0 +1,32 @@ +%YAML 1.1 +--- +- name: spec-08-03 + yaml: | + ! foo : + ! baz + tree: | + +STR + +DOC + +MAP + =VAL :foo + =VAL :baz + -MAP + -DOC + -STR +- name: spec-08-03-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? ! "foo" + : ! "baz" + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "foo + =VAL "baz + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-08-04.yaml b/test/spec 1.1/spec-08-04.yaml new file mode 100644 index 00000000..7eac42f6 --- /dev/null +++ b/test/spec 1.1/spec-08-04.yaml @@ -0,0 +1,15 @@ +%YAML 1.1 +--- +- name: spec-08-04 + yaml: | + - ! foo + - !<$:?> bar + tree: | + +STR + +DOC + +SEQ + =VAL :foo + =VAL <$:?> :bar + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-08-05.yaml b/test/spec 1.1/spec-08-05.yaml new file mode 100644 index 00000000..1ea2e94e --- /dev/null +++ b/test/spec 1.1/spec-08-05.yaml @@ -0,0 +1,38 @@ +%YAML 1.1 +--- +- name: spec-08-05 + yaml: | + %TAG !o! tag:ben-kiki.org,2000: + --- + - !local foo + - !!str bar + - !o!type baz + tree: | + +STR + +DOC --- + +SEQ + =VAL :foo + =VAL :bar + =VAL :baz + -SEQ + -DOC + -STR +- name: spec-08-05-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + ! "foo", + ! "bar", + ! "baz", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "foo + =VAL "bar + =VAL "baz + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-08-06.yaml b/test/spec 1.1/spec-08-06.yaml new file mode 100644 index 00000000..6d601484 --- /dev/null +++ b/test/spec 1.1/spec-08-06.yaml @@ -0,0 +1,14 @@ +%YAML 1.1 +--- +- name: spec-08-06 + fail: true + mark: { line: 3, column: 4 } + mark2: { line: 3, column: 3 } + error: | + While scanning a tag, expected a !, but found $ + yaml: | + %TAG !o! tag:ben-kiki.org,2000: + --- + - !$a!b foo + - !o! bar + - !h!type baz diff --git a/test/spec 1.1/spec-08-07.yaml b/test/spec 1.1/spec-08-07.yaml new file mode 100644 index 00000000..a7abd062 --- /dev/null +++ b/test/spec 1.1/spec-08-07.yaml @@ -0,0 +1,38 @@ +%YAML 1.1 +--- +- name: spec-08-07 + yaml: | + # Assuming conventional resolution: + - "12" + - 12 + - ! 12 + tree: | + +STR + +DOC + +SEQ + =VAL "12 + =VAL :12 + =VAL :12 + -SEQ + -DOC + -STR +- name: spec-08-07-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + ! "12", + ! "12", + # ! "12", + ! "12", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "12 + =VAL "12 + =VAL "12 + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-08-08.yaml b/test/spec 1.1/spec-08-08.yaml new file mode 100644 index 00000000..31bdc3b8 --- /dev/null +++ b/test/spec 1.1/spec-08-08.yaml @@ -0,0 +1,67 @@ +%YAML 1.1 +--- +- name: spec-08-08 + yaml: | + --- + foo: + "bar + baz" + --- + "foo + bar" + --- + foo + bar + --- | + foo + ... + tree: | + +STR + +DOC --- + +MAP + =VAL :foo + =VAL "bar baz + -MAP + -DOC + +DOC --- + =VAL "foo bar + -DOC + +DOC --- + =VAL :foo bar + -DOC + +DOC --- + =VAL |foo\n + -DOC ... + -STR +- name: spec-08-08-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "foo" + : !!str "bar baz" + } + --- + !!str "foo bar" + --- + !!str "foo bar" + --- + !!str "foo\n" + tree: | + +STR + +DOC --- + +MAP {} + =VAL "foo + =VAL "bar baz + -MAP + -DOC + +DOC --- + =VAL "foo bar + -DOC + +DOC --- + =VAL "foo bar + -DOC + +DOC --- + =VAL "foo\n + -DOC + -STR diff --git a/test/spec 1.1/spec-08-09.yaml b/test/spec 1.1/spec-08-09.yaml new file mode 100644 index 00000000..4faa40bc --- /dev/null +++ b/test/spec 1.1/spec-08-09.yaml @@ -0,0 +1,108 @@ +%YAML 1.1 +--- +- name: spec-08-09 + yaml: | + --- + scalars: + plain: !!str some text + quoted: + single: 'some text' + double: "some text" + collections: + sequence: !!seq [ !!str entry, + # Mapping entry: + key: value ] + mapping: { key: value } + tree: | + +STR + +DOC --- + +MAP + =VAL :scalars + +MAP + =VAL :plain + =VAL :some text + =VAL :quoted + +MAP + =VAL :single + =VAL 'some text + =VAL :double + =VAL "some text + -MAP + -MAP + =VAL :collections + +MAP + =VAL :sequence + +SEQ [] + =VAL :entry + +MAP {} + =VAL :key + =VAL :value + -MAP + -SEQ + =VAL :mapping + +MAP {} + =VAL :key + =VAL :value + -MAP + -MAP + -MAP + -DOC + -STR +- name: spec-08-09-canonical + yaml: | + %YAML 1.1 + --- !!map { + ? !!str "scalars" : !!map { + ? !!str "plain" + : !!str "some text", + ? !!str "quoted" + : !!map { + ? !!str "single" + : !!str "some text", + ? !!str "double" + : !!str "some text" + } }, + ? !!str "collections" : !!map { + ? !!str "sequence" : !!seq [ + !!str "entry", + !!map { + ? !!str "key" : !!str "value" + } ], + ? !!str "mapping" : !!map { + ? !!str "key" : !!str "value" + } } } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "scalars + +MAP {} + =VAL "plain + =VAL "some text + =VAL "quoted + +MAP {} + =VAL "single + =VAL "some text + =VAL "double + =VAL "some text + -MAP + -MAP + =VAL "collections + +MAP {} + =VAL "sequence + +SEQ [] + =VAL "entry + +MAP {} + =VAL "key + =VAL "value + -MAP + -SEQ + =VAL "mapping + +MAP {} + =VAL "key + =VAL "value + -MAP + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-08-10.yaml b/test/spec 1.1/spec-08-10.yaml new file mode 100644 index 00000000..e68632a9 --- /dev/null +++ b/test/spec 1.1/spec-08-10.yaml @@ -0,0 +1,98 @@ +%YAML 1.1 +--- +- name: spec-08-10 + yaml: "block styles:\n scalars:\n literal: !!str |\n #!/usr/bin/perl\n\ + \ print \"Hello, world!\\n\";\n folded: >\n This sentence\n is\ + \ false.\n collections: !!map\n sequence: !!seq # Entry:\n - entry # Plain\n\ + \ # Mapping entry:\n - key: value\n mapping: \n key: value\n" + tree: | + +STR + +DOC + +MAP + =VAL :block styles + +MAP + =VAL :scalars + +MAP + =VAL :literal + =VAL |#!/usr/bin/perl\nprint "Hello, world!\\n";\n + =VAL :folded + =VAL >This sentence is false.\n + -MAP + =VAL :collections + +MAP + =VAL :sequence + +SEQ + =VAL :entry + +MAP + =VAL :key + =VAL :value + -MAP + -SEQ + =VAL :mapping + +MAP + =VAL :key + =VAL :value + -MAP + -MAP + -MAP + -MAP + -DOC + -STR +- name: spec-08-10-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "block styles" : !!map { + ? !!str "scalars" : !!map { + ? !!str "literal" + : !!str "#!/usr/bin/perl\n\ + print \"Hello, + world!\\n\";\n", + ? !!str "folded" + : !!str "This sentence + is false.\n" + }, + ? !!str "collections" : !!map { + ? !!str "sequence" : !!seq [ + !!str "entry", + !!map { + ? !!str "key" : !!str "value" + } + ], + ? !!str "mapping" : !!map { + ? !!str "key" : !!str "value" + } } } } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "block styles + +MAP {} + =VAL "scalars + +MAP {} + =VAL "literal + =VAL "#!/usr/bin/perl\nprint "Hello, world!\\n";\n + =VAL "folded + =VAL "This sentence is false.\n + -MAP + =VAL "collections + +MAP {} + =VAL "sequence + +SEQ [] + =VAL "entry + +MAP {} + =VAL "key + =VAL "value + -MAP + -SEQ + =VAL "mapping + +MAP {} + =VAL "key + =VAL "value + -MAP + -MAP + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-08-11.yaml b/test/spec 1.1/spec-08-11.yaml new file mode 100644 index 00000000..6d189880 --- /dev/null +++ b/test/spec 1.1/spec-08-11.yaml @@ -0,0 +1,38 @@ +%YAML 1.1 +--- +- name: spec-08-11 + yaml: | + First occurrence: &anchor Value + Second occurrence: *anchor + tree: | + +STR + +DOC + +MAP + =VAL :First occurrence + =VAL &anchor :Value + =VAL :Second occurrence + =ALI *anchor + -MAP + -DOC + -STR +- name: spec-08-11-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "First occurrence" + : &A !!str "Value", + ? !!str "Second occurrence" + : *A + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "First occurrence + =VAL &A "Value + =VAL "Second occurrence + =ALI *A + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-08-12.yaml b/test/spec 1.1/spec-08-12.yaml new file mode 100644 index 00000000..fb784d83 --- /dev/null +++ b/test/spec 1.1/spec-08-12.yaml @@ -0,0 +1,50 @@ +%YAML 1.1 +--- +- name: spec-08-12 + yaml: | + [ + Without properties, + &anchor "Anchored", + !!str 'Tagged', + *anchor, # Alias node + !!str , # Empty plain scalar + '', # Empty plain scalar + ] + tree: | + +STR + +DOC + +SEQ [] + =VAL :Without properties + =VAL &anchor "Anchored + =VAL 'Tagged + =ALI *anchor + =VAL : + =VAL ' + -SEQ + -DOC + -STR +- name: spec-08-12-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "Without properties", + &A !!str "Anchored", + !!str "Tagged", + *A, + !!str "", + !!str "", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "Without properties + =VAL &A "Anchored + =VAL "Tagged + =ALI *A + =VAL " + =VAL " + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-08-13.yaml b/test/spec 1.1/spec-08-13.yaml new file mode 100644 index 00000000..2c4f8dd1 --- /dev/null +++ b/test/spec 1.1/spec-08-13.yaml @@ -0,0 +1,42 @@ +%YAML 1.1 +--- +- name: spec-08-13 + yaml: | + { + ? foo :, + ? : bar, + } + tree: | + +STR + +DOC + +MAP {} + =VAL :foo + =VAL : + =VAL : + =VAL :bar + -MAP + -DOC + -STR +- name: spec-08-13-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "foo" + # : !!str "", + # ? !!str "" + : !!null "", + ? !!null "" + : !!str "bar", + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "foo + =VAL " + =VAL " + =VAL "bar + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-08-14.yaml b/test/spec 1.1/spec-08-14.yaml new file mode 100644 index 00000000..d77e8d2b --- /dev/null +++ b/test/spec 1.1/spec-08-14.yaml @@ -0,0 +1,47 @@ +%YAML 1.1 +--- +- name: spec-08-14 + yaml: | + - "flow in block" + - > + Block scalar + - !!map # Block collection + foo : bar + tree: | + +STR + +DOC + +SEQ + =VAL "flow in block + =VAL >Block scalar\n + +MAP + =VAL :foo + =VAL :bar + -MAP + -SEQ + -DOC + -STR +- name: spec-08-14-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "flow in block", + !!str "Block scalar\n", + !!map { + ? !!str "foo" + : !!str "bar" + } + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "flow in block + =VAL "Block scalar\n + +MAP {} + =VAL "foo + =VAL "bar + -MAP + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-08-15.yaml b/test/spec 1.1/spec-08-15.yaml new file mode 100644 index 00000000..66dddde4 --- /dev/null +++ b/test/spec 1.1/spec-08-15.yaml @@ -0,0 +1,50 @@ +%YAML 1.1 +--- +- name: spec-08-15 + yaml: | + - # Empty plain scalar + - ? foo + : + ? + : bar + tree: | + +STR + +DOC + +SEQ + =VAL : + +MAP + =VAL :foo + =VAL : + =VAL : + =VAL :bar + -MAP + -SEQ + -DOC + -STR +- name: spec-08-15-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!null "", + !!map { + ? !!str "foo" + : !!null "", + ? !!null "" + : !!str "bar", + } + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL " + +MAP {} + =VAL "foo + =VAL " + =VAL " + =VAL "bar + -MAP + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-01.yaml b/test/spec 1.1/spec-09-01.yaml new file mode 100644 index 00000000..51c8fbb3 --- /dev/null +++ b/test/spec 1.1/spec-09-01.yaml @@ -0,0 +1,51 @@ +%YAML 1.1 +--- +- name: spec-09-01 + yaml: | + "simple key" : { + "also simple" : value, + ? "not a + simple key" : "any + value" + } + tree: | + +STR + +DOC + +MAP + =VAL "simple key + +MAP {} + =VAL "also simple + =VAL :value + =VAL "not a simple key + =VAL "any value + -MAP + -MAP + -DOC + -STR +- name: spec-09-01-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "simple key" + : !!map { + ? !!str "also simple" + : !!str "value", + ? !!str "not a simple key" + : !!str "any value" + } + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "simple key + +MAP {} + =VAL "also simple + =VAL "value + =VAL "not a simple key + =VAL "any value + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-09-02.yaml b/test/spec 1.1/spec-09-02.yaml new file mode 100644 index 00000000..07374113 --- /dev/null +++ b/test/spec 1.1/spec-09-02.yaml @@ -0,0 +1,20 @@ +%YAML 1.1 +--- +- name: spec-09-02 + yaml: " \"as space\t\n trimmed \n\n specific\L\n escaped\t\\\P \n none\"\n" +- name: spec-09-02-canonical + yaml: | + %YAML 1.1 + --- + !!str "as space \ + trimmed\n\ + specific\L\n\ + escaped\t\n\ + none" + # FIXME + # tree: | + # +STR + # +DOC --- + # =VAL "as space trimmed\nspecific\L\nescaped\t\nnone + # -DOC + # -STR diff --git a/test/spec 1.1/spec-09-03.yaml b/test/spec 1.1/spec-09-03.yaml new file mode 100644 index 00000000..fbed7c46 --- /dev/null +++ b/test/spec 1.1/spec-09-03.yaml @@ -0,0 +1,33 @@ +%YAML 1.1 +--- +- name: spec-09-03 + yaml: "- \"\n last\"\n- \" \t\n last\"\n- \" \tfirst\n last\"\n" + tree: | + +STR + +DOC + +SEQ + =VAL " last + =VAL " last + =VAL " \tfirst last + -SEQ + -DOC + -STR +- name: spec-09-03-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str " last", + !!str " last", + !!str " \tfirst last", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL " last + =VAL " last + =VAL " \tfirst last + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-04.yaml b/test/spec 1.1/spec-09-04.yaml new file mode 100644 index 00000000..d76d8803 --- /dev/null +++ b/test/spec 1.1/spec-09-04.yaml @@ -0,0 +1,24 @@ +%YAML 1.1 +--- +- name: spec-09-04 + yaml: " \"first\n \tinner 1\t\n \\ inner 2 \\\n last\"\n" + tree: | + +STR + +DOC + =VAL "first inner 1 inner 2 last + -DOC + -STR +- name: spec-09-04-canonical + yaml: | + %YAML 1.1 + --- + !!str "first \ + inner 1 \ + inner 2 \ + last" + tree: | + +STR + +DOC --- + =VAL "first inner 1 inner 2 last + -DOC + -STR diff --git a/test/spec 1.1/spec-09-05.yaml b/test/spec 1.1/spec-09-05.yaml new file mode 100644 index 00000000..11cfd2e9 --- /dev/null +++ b/test/spec 1.1/spec-09-05.yaml @@ -0,0 +1,34 @@ +%YAML 1.1 +--- +- name: spec-09-05 + yaml: "- \"first\n \t\"\n- \"first\n\n \tlast\"\n- \"first\n inner\n \\ \tlast\"\ + \n" + tree: | + +STR + +DOC + +SEQ + =VAL "first + =VAL "first\nlast + =VAL "first inner \tlast + -SEQ + -DOC + -STR +- name: spec-09-05-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "first ", + !!str "first\nlast", + !!str "first inner \tlast", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "first + =VAL "first\nlast + =VAL "first inner \tlast + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-06.yaml b/test/spec 1.1/spec-09-06.yaml new file mode 100644 index 00000000..ed143c7a --- /dev/null +++ b/test/spec 1.1/spec-09-06.yaml @@ -0,0 +1,22 @@ +%YAML 1.1 +--- +- name: spec-09-06 + yaml: |2 + 'here''s to "quotes"' + tree: | + +STR + +DOC + =VAL 'here's to "quotes" + -DOC + -STR +- name: spec-09-06-canonical + yaml: | + %YAML 1.1 + --- + !!str "here's to \"quotes\"" + tree: | + +STR + +DOC --- + =VAL "here's to "quotes" + -DOC + -STR diff --git a/test/spec 1.1/spec-09-07.yaml b/test/spec 1.1/spec-09-07.yaml new file mode 100644 index 00000000..8a3c4cc2 --- /dev/null +++ b/test/spec 1.1/spec-09-07.yaml @@ -0,0 +1,51 @@ +%YAML 1.1 +--- +- name: spec-09-07 + yaml: | + 'simple key' : { + 'also simple' : value, + ? 'not a + simple key' : 'any + value' + } + tree: | + +STR + +DOC + +MAP + =VAL 'simple key + +MAP {} + =VAL 'also simple + =VAL :value + =VAL 'not a simple key + =VAL 'any value + -MAP + -MAP + -DOC + -STR +- name: spec-09-07-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "simple key" + : !!map { + ? !!str "also simple" + : !!str "value", + ? !!str "not a simple key" + : !!str "any value" + } + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "simple key + +MAP {} + =VAL "also simple + =VAL "value + =VAL "not a simple key + =VAL "any value + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-09-08.yaml b/test/spec 1.1/spec-09-08.yaml new file mode 100644 index 00000000..53767ad8 --- /dev/null +++ b/test/spec 1.1/spec-09-08.yaml @@ -0,0 +1,19 @@ +%YAML 1.1 +--- +- name: spec-09-08 + yaml: " 'as space\t\N trimmed \N\N specific\L\N none'\n" +- name: spec-09-08-canonical + yaml: | + %YAML 1.1 + --- + !!str "as space \ + trimmed\n\ + specific\L\n\ + none" + # FIXME + # tree: | + # +STR + # +DOC --- + # =VAL "as space trimmed\nspecific\L\nnone + # -DOC + # -STR diff --git a/test/spec 1.1/spec-09-09.yaml b/test/spec 1.1/spec-09-09.yaml new file mode 100644 index 00000000..e4b960e0 --- /dev/null +++ b/test/spec 1.1/spec-09-09.yaml @@ -0,0 +1,33 @@ +%YAML 1.1 +--- +- name: spec-09-09 + yaml: "- '\n last'\n- ' \t\n last'\n- ' \tfirst\n last'\n" + tree: | + +STR + +DOC + +SEQ + =VAL ' last + =VAL ' last + =VAL ' \tfirst last + -SEQ + -DOC + -STR +- name: spec-09-09-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str " last", + !!str " last", + !!str " \tfirst last", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL " last + =VAL " last + =VAL " \tfirst last + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-10.yaml b/test/spec 1.1/spec-09-10.yaml new file mode 100644 index 00000000..52aa6c3b --- /dev/null +++ b/test/spec 1.1/spec-09-10.yaml @@ -0,0 +1,23 @@ +%YAML 1.1 +--- +- name: spec-09-10 + yaml: " 'first\n \tinner\t\n last'\n" + tree: | + +STR + +DOC + =VAL 'first inner last + -DOC + -STR +- name: spec-09-10-canonical + yaml: | + %YAML 1.1 + --- + !!str "first \ + inner \ + last" + tree: | + +STR + +DOC --- + =VAL "first inner last + -DOC + -STR diff --git a/test/spec 1.1/spec-09-11.yaml b/test/spec 1.1/spec-09-11.yaml new file mode 100644 index 00000000..db37a14a --- /dev/null +++ b/test/spec 1.1/spec-09-11.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: spec-09-11 + yaml: "- 'first\n \t'\n- 'first\n\n \tlast'\n" + tree: | + +STR + +DOC + +SEQ + =VAL 'first + =VAL 'first\nlast + -SEQ + -DOC + -STR +- name: spec-09-11-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "first ", + !!str "first\nlast", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "first + =VAL "first\nlast + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-12.yaml b/test/spec 1.1/spec-09-12.yaml new file mode 100644 index 00000000..1fd24da4 --- /dev/null +++ b/test/spec 1.1/spec-09-12.yaml @@ -0,0 +1,56 @@ +%YAML 1.1 +--- +- name: spec-09-12 + yaml: | + # Outside flow collection: + - ::std::vector + - Up, up, and away! + - -123 + # Inside flow collection: + - [ '::std::vector', + "Up, up, and away!", + -123 ] + tree: | + +STR + +DOC + +SEQ + =VAL :::std::vector + =VAL :Up, up, and away! + =VAL :-123 + +SEQ [] + =VAL '::std::vector + =VAL "Up, up, and away! + =VAL :-123 + -SEQ + -SEQ + -DOC + -STR +- name: spec-09-12-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "::std::vector", + !!str "Up, up, and away!", + !!int "-123", + !!seq [ + !!str "::std::vector", + !!str "Up, up, and away!", + !!int "-123", + ] + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "::std::vector + =VAL "Up, up, and away! + =VAL "-123 + +SEQ [] + =VAL "::std::vector + =VAL "Up, up, and away! + =VAL "-123 + -SEQ + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-13.yaml b/test/spec 1.1/spec-09-13.yaml new file mode 100644 index 00000000..af8f8027 --- /dev/null +++ b/test/spec 1.1/spec-09-13.yaml @@ -0,0 +1,37 @@ +%YAML 1.1 +--- +- name: spec-09-13 + yaml: | + simple key : { + also simple : value, + ? not a + simple key : any + value + } +- name: spec-09-13-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "simple key" + : !!map { + ? !!str "also simple" + : !!str "value", + ? !!str "not a simple key" + : !!str "any value" + } + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "simple key + +MAP {} + =VAL "also simple + =VAL "value + =VAL "not a simple key + =VAL "any value + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-09-14.yaml b/test/spec 1.1/spec-09-14.yaml new file mode 100644 index 00000000..de5d69bd --- /dev/null +++ b/test/spec 1.1/spec-09-14.yaml @@ -0,0 +1,23 @@ +%YAML 1.1 +--- +- name: spec-09-14 + mark: { line: 2, column: 6 } + mark2: { line: 2, column: 5 } + yaml: | + --- + --- ||| : foo + ... >>>: bar + --- + [ + --- + , + ... , + { + --- : + ... # Nested + } + ] + ... + fail: true + error: | + While scanning a block scalar, expected a chomping or indentation indicator, but found | diff --git a/test/spec 1.1/spec-09-15.yaml b/test/spec 1.1/spec-09-15.yaml new file mode 100644 index 00000000..459f24ad --- /dev/null +++ b/test/spec 1.1/spec-09-15.yaml @@ -0,0 +1,78 @@ +%YAML 1.1 +--- +- name: spec-09-15 + yaml: | + --- + "---" : foo + ...: bar + --- + [ + ---, + ..., + { + ? --- + : ... + } + ] + ... + tree: | + +STR + +DOC --- + +MAP + =VAL "--- + =VAL :foo + =VAL :... + =VAL :bar + -MAP + -DOC + +DOC --- + +SEQ [] + =VAL :--- + =VAL :... + +MAP {} + =VAL :--- + =VAL :... + -MAP + -SEQ + -DOC ... + -STR +- name: spec-09-15-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "---" + : !!str "foo", + ? !!str "..." + : !!str "bar" + } + --- + !!seq [ + !!str "---", + !!str "...", + !!map { + ? !!str "---" + : !!str "..." + } + ] + tree: | + +STR + +DOC --- + +MAP {} + =VAL "--- + =VAL "foo + =VAL "... + =VAL "bar + -MAP + -DOC + +DOC --- + +SEQ [] + =VAL "--- + =VAL "... + +MAP {} + =VAL "--- + =VAL "... + -MAP + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-16.yaml b/test/spec 1.1/spec-09-16.yaml new file mode 100644 index 00000000..21405873 --- /dev/null +++ b/test/spec 1.1/spec-09-16.yaml @@ -0,0 +1,13 @@ +%YAML 1.1 +--- +- name: spec-09-16 + yaml: "# Tabs are confusing:\n# as space/trimmed/specific/none\n as space \N trimmed\ + \ \N\N specific\L\N none\n" +- name: spec-09-16-canonical + yaml: | + %YAML 1.1 + --- + !!str "as space \ + trimmed\n\ + specific\L\n\ + none" diff --git a/test/spec 1.1/spec-09-17.yaml b/test/spec 1.1/spec-09-17.yaml new file mode 100644 index 00000000..caa2d754 --- /dev/null +++ b/test/spec 1.1/spec-09-17.yaml @@ -0,0 +1,22 @@ +%YAML 1.1 +--- +- name: spec-09-17 + yaml: " first line \n \n more line\n" + tree: | + +STR + +DOC + =VAL :first line\nmore line + -DOC + -STR +- name: spec-09-17-canonical + yaml: | + %YAML 1.1 + --- + !!str "first line\n\ + more line" + tree: | + +STR + +DOC --- + =VAL "first line\nmore line + -DOC + -STR diff --git a/test/spec 1.1/spec-09-18.yaml b/test/spec 1.1/spec-09-18.yaml new file mode 100644 index 00000000..d6c2deb9 --- /dev/null +++ b/test/spec 1.1/spec-09-18.yaml @@ -0,0 +1,45 @@ +%YAML 1.1 +--- +- name: spec-09-18 + yaml: | + - | # Just the style + literal + - >1 # Indentation indicator + folded + - |+ # Chomping indicator + keep + + - >-1 # Both indicators + strip + tree: | + +STR + +DOC + +SEQ + =VAL |literal\n + =VAL > folded\n + =VAL |keep\n\n + =VAL > strip + -SEQ + -DOC + -STR +- name: spec-09-18-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "literal\n", + !!str " folded\n", + !!str "keep\n\n", + !!str " strip", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "literal\n + =VAL " folded\n + =VAL "keep\n\n + =VAL " strip + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-19.yaml b/test/spec 1.1/spec-09-19.yaml new file mode 100644 index 00000000..344cfe8b --- /dev/null +++ b/test/spec 1.1/spec-09-19.yaml @@ -0,0 +1,34 @@ +%YAML 1.1 +--- +- name: spec-09-19 + yaml: | + - | + literal + - > + folded + tree: | + +STR + +DOC + +SEQ + =VAL |literal\n + =VAL >folded\n + -SEQ + -DOC + -STR +- name: spec-09-19-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "literal\n", + !!str "folded\n", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "literal\n + =VAL "folded\n + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-20.yaml b/test/spec 1.1/spec-09-20.yaml new file mode 100644 index 00000000..40b1883e --- /dev/null +++ b/test/spec 1.1/spec-09-20.yaml @@ -0,0 +1,36 @@ +%YAML 1.1 +--- +- name: spec-09-20 + yaml: "- |\n detected\n- >\n \n \n # detected\n- |1\n explicit\n- >\n \t\n detected\n" + tree: | + +STR + +DOC + +SEQ + =VAL |detected\n + =VAL >\n\n# detected\n + =VAL | explicit\n + =VAL >\t\ndetected\n + -SEQ + -DOC + -STR +- name: spec-09-20-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "detected\n", + !!str "\n\n# detected\n", + !!str " explicit\n", + !!str "\t\ndetected\n", + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "detected\n + =VAL "\n\n# detected\n + =VAL " explicit\n + =VAL "\t\ndetected\n + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-09-21.yaml b/test/spec 1.1/spec-09-21.yaml new file mode 100644 index 00000000..40f6e67e --- /dev/null +++ b/test/spec 1.1/spec-09-21.yaml @@ -0,0 +1,9 @@ +%YAML 1.1 +--- +- name: spec-09-21 + fail: true + mark: { line: 3, column: 2 } + mark2: { line: 1, column: 1 } + error: | + While parsing a block sequence, expected block end, but found: scalar + yaml: "- |\n \n text\n- >\n text\n text\n- |1\n text\n" diff --git a/test/spec 1.1/spec-09-22.yaml b/test/spec 1.1/spec-09-22.yaml new file mode 100644 index 00000000..315a728d --- /dev/null +++ b/test/spec 1.1/spec-09-22.yaml @@ -0,0 +1,30 @@ +%YAML 1.1 +--- +- name: spec-09-22 + yaml: "strip: |-\n text\Pclip: |\n text\Nkeep: |+\n text\L" +- name: spec-09-22-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "strip" + : !!str "text", + ? !!str "clip" + : !!str "text\n", + ? !!str "keep" + : !!str "text\L", + } + # FIXME + # tree: | + # +STR + # +DOC --- + # +MAP {} + # =VAL "strip + # =VAL "text + # =VAL "clip + # =VAL "text\n + # =VAL "keep + # =VAL "text\L + # -MAP + # -DOC + # -STR diff --git a/test/spec 1.1/spec-09-23.yaml b/test/spec 1.1/spec-09-23.yaml new file mode 100644 index 00000000..eae61d5e --- /dev/null +++ b/test/spec 1.1/spec-09-23.yaml @@ -0,0 +1,32 @@ +%YAML 1.1 +--- +- name: spec-09-23 + yaml: " # Strip\n # Comments:\nstrip: |-\n # text\P \L # Clip\n # comments:\n\ + \Nclip: |\n # text\N \P # Keep\n # comments:\n\Nkeep: |+\n # text\L\N # Trail\n\ + \ # comments.\n" +- name: spec-09-23-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "strip" + : !!str "# text", + ? !!str "clip" + : !!str "# text\n", + ? !!str "keep" + : !!str "# text\L\n", + } + # FIXME + # tree: | + # +STR + # +DOC --- + # +MAP {} + # =VAL "strip + # =VAL "# text + # =VAL "clip + # =VAL "# text\n + # =VAL "keep + # =VAL "# text\L\n + # -MAP + # -DOC + # -STR diff --git a/test/spec 1.1/spec-09-24.yaml b/test/spec 1.1/spec-09-24.yaml new file mode 100644 index 00000000..1eb31aa8 --- /dev/null +++ b/test/spec 1.1/spec-09-24.yaml @@ -0,0 +1,49 @@ +%YAML 1.1 +--- +- name: spec-09-24 + yaml: |+ + strip: >- + + clip: > + + keep: |+ + + # FIXME + # tree: | + # +STR + # +DOC + # +MAP + # =VAL :strip + # =VAL > + # =VAL :clip + # =VAL > + # =VAL :keep + # =VAL | + # -MAP + # -DOC + # -STR +- name: spec-09-24-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "strip" + : !!str "", + ? !!str "clip" + : !!str "", + ? !!str "keep" + : !!str "\n", + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "strip + =VAL " + =VAL "clip + =VAL " + =VAL "keep + =VAL "\n + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-09-25.yaml b/test/spec 1.1/spec-09-25.yaml new file mode 100644 index 00000000..f8e9570e --- /dev/null +++ b/test/spec 1.1/spec-09-25.yaml @@ -0,0 +1,22 @@ +%YAML 1.1 +--- +- name: spec-09-25 + yaml: "| # Simple block scalar\n literal\n \ttext\n" + tree: | + +STR + +DOC + =VAL |literal\n\ttext\n + -DOC + -STR +- name: spec-09-25-canonical + yaml: | + %YAML 1.1 + --- + !!str "literal\n\ + \ttext\n" + tree: | + +STR + +DOC --- + =VAL "literal\n\ttext\n + -DOC + -STR diff --git a/test/spec 1.1/spec-09-26.yaml b/test/spec 1.1/spec-09-26.yaml new file mode 100644 index 00000000..448fcf02 --- /dev/null +++ b/test/spec 1.1/spec-09-26.yaml @@ -0,0 +1,21 @@ +%YAML 1.1 +--- +- name: spec-09-26 + yaml: "|\n \n \n literal\n \n text\n\n # Comment\n" + tree: | + +STR + +DOC + =VAL |\n\nliteral\n\ntext\n + -DOC + -STR +- name: spec-09-26-canonical + yaml: | + %YAML 1.1 + --- + !!str "\n\nliteral\n\ntext\n" + tree: | + +STR + +DOC --- + =VAL "\n\nliteral\n\ntext\n + -DOC + -STR diff --git a/test/spec 1.1/spec-09-29.yaml b/test/spec 1.1/spec-09-29.yaml new file mode 100644 index 00000000..6dde5636 --- /dev/null +++ b/test/spec 1.1/spec-09-29.yaml @@ -0,0 +1,22 @@ +%YAML 1.1 +--- +- name: spec-09-29 + yaml: "> # Simple folded scalar\n folded\n text\n \tlines\n" + tree: | + +STR + +DOC + =VAL >folded text\n\tlines\n + -DOC + -STR +- name: spec-09-29-canonical + yaml: | + %YAML 1.1 + --- + !!str "folded text\n\ + \tlines\n" + tree: | + +STR + +DOC --- + =VAL "folded text\n\tlines\n + -DOC + -STR diff --git a/test/spec 1.1/spec-09-30.yaml b/test/spec 1.1/spec-09-30.yaml new file mode 100644 index 00000000..5b94dc5f --- /dev/null +++ b/test/spec 1.1/spec-09-30.yaml @@ -0,0 +1,39 @@ +%YAML 1.1 +--- +- name: spec-09-30 + yaml: | + > + folded + line + + next + line + + * bullet + * list + + last + line + + # Comment + tree: | + +STR + +DOC + =VAL >folded line\nnext line\n\n * bullet\n * list\n\nlast line\n + -DOC + -STR +- name: spec-09-30-canonical + yaml: | + %YAML 1.1 + --- + !!str "folded line\n\ + next line\n\n\ + \ * bullet\n\ + \ * list\n\n\ + last line\n" + tree: | + +STR + +DOC --- + =VAL "folded line\nnext line\n\n * bullet\n * list\n\nlast line\n + -DOC + -STR diff --git a/test/spec 1.1/spec-10-01.yaml b/test/spec 1.1/spec-10-01.yaml new file mode 100644 index 00000000..e0917107 --- /dev/null +++ b/test/spec 1.1/spec-10-01.yaml @@ -0,0 +1,50 @@ +%YAML 1.1 +--- +- name: spec-10-01 + yaml: | + - [ inner, inner, ] + - [inner,last] + tree: | + +STR + +DOC + +SEQ + +SEQ [] + =VAL :inner + =VAL :inner + -SEQ + +SEQ [] + =VAL :inner + =VAL :last + -SEQ + -SEQ + -DOC + -STR +- name: spec-10-01-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!seq [ + !!str "inner", + !!str "inner", + ], + !!seq [ + !!str "inner", + !!str "last", + ], + ] + tree: | + +STR + +DOC --- + +SEQ [] + +SEQ [] + =VAL "inner + =VAL "inner + -SEQ + +SEQ [] + =VAL "inner + =VAL "last + -SEQ + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-10-02.yaml b/test/spec 1.1/spec-10-02.yaml new file mode 100644 index 00000000..ce0fc7df --- /dev/null +++ b/test/spec 1.1/spec-10-02.yaml @@ -0,0 +1,62 @@ +%YAML 1.1 +--- +- name: spec-10-02 + yaml: | + [ + "double + quoted", 'single + quoted', + plain + text, [ nested ], + single: pair , + ] + tree: | + +STR + +DOC + +SEQ [] + =VAL "double quoted + =VAL 'single quoted + =VAL :plain text + +SEQ [] + =VAL :nested + -SEQ + +MAP {} + =VAL :single + =VAL :pair + -MAP + -SEQ + -DOC + -STR +- name: spec-10-02-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!str "double quoted", + !!str "single quoted", + !!str "plain text", + !!seq [ + !!str "nested", + ], + !!map { + ? !!str "single" + : !!str "pair" + } + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL "double quoted + =VAL "single quoted + =VAL "plain text + +SEQ [] + =VAL "nested + -SEQ + +MAP {} + =VAL "single + =VAL "pair + -MAP + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-10-03.yaml b/test/spec 1.1/spec-10-03.yaml new file mode 100644 index 00000000..f11782cd --- /dev/null +++ b/test/spec 1.1/spec-10-03.yaml @@ -0,0 +1,52 @@ +%YAML 1.1 +--- +- name: spec-10-03 + yaml: | + block: # Block + # sequence + - one + - two : three + tree: | + +STR + +DOC + +MAP + =VAL :block + +SEQ + =VAL :one + +MAP + =VAL :two + =VAL :three + -MAP + -SEQ + -MAP + -DOC + -STR +- name: spec-10-03-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "block" + : !!seq [ + !!str "one", + !!map { + ? !!str "two" + : !!str "three" + } + ] + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "block + +SEQ [] + =VAL "one + +MAP {} + =VAL "two + =VAL "three + -MAP + -SEQ + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-10-04.yaml b/test/spec 1.1/spec-10-04.yaml new file mode 100644 index 00000000..80b7e765 --- /dev/null +++ b/test/spec 1.1/spec-10-04.yaml @@ -0,0 +1,49 @@ +%YAML 1.1 +--- +- name: spec-10-04 + yaml: | + block: + - one + - + - two + tree: | + +STR + +DOC + +MAP + =VAL :block + +SEQ + =VAL :one + +SEQ + =VAL :two + -SEQ + -SEQ + -MAP + -DOC + -STR +- name: spec-10-04-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "block" + : !!seq [ + !!str "one", + !!seq [ + !!str "two" + ] + ] + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "block + +SEQ [] + =VAL "one + +SEQ [] + =VAL "two + -SEQ + -SEQ + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-10-05.yaml b/test/spec 1.1/spec-10-05.yaml new file mode 100644 index 00000000..a16ab82f --- /dev/null +++ b/test/spec 1.1/spec-10-05.yaml @@ -0,0 +1,61 @@ +%YAML 1.1 +--- +- name: spec-10-05 + yaml: | + - # Empty + - | + block node + - - one # in-line + - two # sequence + - one: two # in-line + # mapping + tree: | + +STR + +DOC + +SEQ + =VAL : + =VAL |block node\n + +SEQ + =VAL :one + =VAL :two + -SEQ + +MAP + =VAL :one + =VAL :two + -MAP + -SEQ + -DOC + -STR +- name: spec-10-05-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!null "", + !!str "block node\n", + !!seq [ + !!str "one", + !!str "two", + ], + !!map { + ? !!str "one" + : !!str "two", + } + ] + tree: | + +STR + +DOC --- + +SEQ [] + =VAL " + =VAL "block node\n + +SEQ [] + =VAL "one + =VAL "two + -SEQ + +MAP {} + =VAL "one + =VAL "two + -MAP + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-10-06.yaml b/test/spec 1.1/spec-10-06.yaml new file mode 100644 index 00000000..21658e9a --- /dev/null +++ b/test/spec 1.1/spec-10-06.yaml @@ -0,0 +1,62 @@ +%YAML 1.1 +--- +- name: spec-10-06 + yaml: | + - { inner : entry , also: inner , } + - {inner: entry,last : entry} + tree: | + +STR + +DOC + +SEQ + +MAP {} + =VAL :inner + =VAL :entry + =VAL :also + =VAL :inner + -MAP + +MAP {} + =VAL :inner + =VAL :entry + =VAL :last + =VAL :entry + -MAP + -SEQ + -DOC + -STR +- name: spec-10-06-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!map { + ? !!str "inner" + : !!str "entry", + ? !!str "also" + : !!str "inner" + }, + !!map { + ? !!str "inner" + : !!str "entry", + ? !!str "last" + : !!str "entry" + } + ] + tree: | + +STR + +DOC --- + +SEQ [] + +MAP {} + =VAL "inner + =VAL "entry + =VAL "also + =VAL "inner + -MAP + +MAP {} + =VAL "inner + =VAL "entry + =VAL "last + =VAL "entry + -MAP + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-10-07.yaml b/test/spec 1.1/spec-10-07.yaml new file mode 100644 index 00000000..0016e068 --- /dev/null +++ b/test/spec 1.1/spec-10-07.yaml @@ -0,0 +1,67 @@ +%YAML 1.1 +--- +- name: spec-10-07 + yaml: | + { + ? : value, # Empty key + ? explicit + key: value, + simple key : value, + [ collection, simple, key ]: value + } + tree: | + +STR + +DOC + +MAP {} + =VAL : + =VAL :value + =VAL :explicit key + =VAL :value + =VAL :simple key + =VAL :value + +SEQ [] + =VAL :collection + =VAL :simple + =VAL :key + -SEQ + =VAL :value + -MAP + -DOC + -STR +- name: spec-10-07-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!null "" + : !!str "value", + ? !!str "explicit key" + : !!str "value", + ? !!str "simple key" + : !!str "value", + ? !!seq [ + !!str "collection", + !!str "simple", + !!str "key" + ] + : !!str "value" + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL " + =VAL "value + =VAL "explicit key + =VAL "value + =VAL "simple key + =VAL "value + +SEQ [] + =VAL "collection + =VAL "simple + =VAL "key + -SEQ + =VAL "value + -MAP + -DOC + -STR diff --git a/test/data/spec-10-08.data b/test/spec 1.1/spec-10-08.yaml similarity index 82% rename from test/data/spec-10-08.data rename to test/spec 1.1/spec-10-08.yaml index 55bd788a..8e59eb90 100644 --- a/test/data/spec-10-08.data +++ b/test/spec 1.1/spec-10-08.yaml @@ -1,5 +1,14 @@ -{ -multi-line - simple key : value, -very long ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................(>1KB)................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... key: value -} +%YAML 1.1 +--- +- name: spec-10-08 + fail: true + mark: { line: 3, column: 13 } + mark2: { line: 1, column: 1 } + error: | + While parsing a flow mapping, expected ',' or '}', but got: value + yaml: | + { + multi-line + simple key : value, + very long ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................(>1KB)................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... key: value + } diff --git a/test/spec 1.1/spec-10-09.yaml b/test/spec 1.1/spec-10-09.yaml new file mode 100644 index 00000000..15430569 --- /dev/null +++ b/test/spec 1.1/spec-10-09.yaml @@ -0,0 +1,40 @@ +%YAML 1.1 +--- +- name: spec-10-09 + yaml: | + { + key : value, + empty: # empty value↓ + } + tree: | + +STR + +DOC + +MAP {} + =VAL :key + =VAL :value + =VAL :empty + =VAL : + -MAP + -DOC + -STR +- name: spec-10-09-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "key" + : !!str "value", + ? !!str "empty" + : !!null "", + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "key + =VAL "value + =VAL "empty + =VAL " + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-10-10.yaml b/test/spec 1.1/spec-10-10.yaml new file mode 100644 index 00000000..40a5fc5c --- /dev/null +++ b/test/spec 1.1/spec-10-10.yaml @@ -0,0 +1,68 @@ +%YAML 1.1 +--- +- name: spec-10-10 + yaml: | + { + ? explicit key1 : explicit value, + ? explicit key2 : , # Explicit empty + ? explicit key3, # Empty value + simple key1 : explicit value, + simple key2 : , # Explicit empty + simple key3, # Empty value + } + tree: | + +STR + +DOC + +MAP {} + =VAL :explicit key1 + =VAL :explicit value + =VAL :explicit key2 + =VAL : + =VAL :explicit key3 + =VAL : + =VAL :simple key1 + =VAL :explicit value + =VAL :simple key2 + =VAL : + =VAL :simple key3 + =VAL : + -MAP + -DOC + -STR +- name: spec-10-10-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "explicit key1" + : !!str "explicit value", + ? !!str "explicit key2" + : !!null "", + ? !!str "explicit key3" + : !!null "", + ? !!str "simple key1" + : !!str "explicit value", + ? !!str "simple key2" + : !!null "", + ? !!str "simple key3" + : !!null "", + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "explicit key1 + =VAL "explicit value + =VAL "explicit key2 + =VAL " + =VAL "explicit key3 + =VAL " + =VAL "simple key1 + =VAL "explicit value + =VAL "simple key2 + =VAL " + =VAL "simple key3 + =VAL " + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-10-11.yaml b/test/spec 1.1/spec-10-11.yaml new file mode 100644 index 00000000..f1d698bd --- /dev/null +++ b/test/spec 1.1/spec-10-11.yaml @@ -0,0 +1,91 @@ +%YAML 1.1 +--- +- name: spec-10-11 + yaml: | + [ + ? explicit key1 : explicit value, + ? explicit key2 : , # Explicit empty + ? explicit key3, # Implicit empty + simple key1 : explicit value, + simple key2 : , # Explicit empty + ] + tree: | + +STR + +DOC + +SEQ [] + +MAP {} + =VAL :explicit key1 + =VAL :explicit value + -MAP + +MAP {} + =VAL :explicit key2 + =VAL : + -MAP + +MAP {} + =VAL :explicit key3 + =VAL : + -MAP + +MAP {} + =VAL :simple key1 + =VAL :explicit value + -MAP + +MAP {} + =VAL :simple key2 + =VAL : + -MAP + -SEQ + -DOC + -STR +- name: spec-10-11-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!map { + ? !!str "explicit key1" + : !!str "explicit value", + }, + !!map { + ? !!str "explicit key2" + : !!null "", + }, + !!map { + ? !!str "explicit key3" + : !!null "", + }, + !!map { + ? !!str "simple key1" + : !!str "explicit value", + }, + !!map { + ? !!str "simple key2" + : !!null "", + }, + ] + tree: | + +STR + +DOC --- + +SEQ [] + +MAP {} + =VAL "explicit key1 + =VAL "explicit value + -MAP + +MAP {} + =VAL "explicit key2 + =VAL " + -MAP + +MAP {} + =VAL "explicit key3 + =VAL " + -MAP + +MAP {} + =VAL "simple key1 + =VAL "explicit value + -MAP + +MAP {} + =VAL "simple key2 + =VAL " + -MAP + -SEQ + -DOC + -STR diff --git a/test/spec 1.1/spec-10-12.yaml b/test/spec 1.1/spec-10-12.yaml new file mode 100644 index 00000000..72c7c3c8 --- /dev/null +++ b/test/spec 1.1/spec-10-12.yaml @@ -0,0 +1,42 @@ +%YAML 1.1 +--- +- name: spec-10-12 + yaml: | + block: # Block + # mapping + key: value + tree: | + +STR + +DOC + +MAP + =VAL :block + +MAP + =VAL :key + =VAL :value + -MAP + -MAP + -DOC + -STR +- name: spec-10-12-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "block" + : !!map { + ? !!str "key" + : !!str "value" + } + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "block + +MAP {} + =VAL "key + =VAL "value + -MAP + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-10-13.yaml b/test/spec 1.1/spec-10-13.yaml new file mode 100644 index 00000000..2547ea5b --- /dev/null +++ b/test/spec 1.1/spec-10-13.yaml @@ -0,0 +1,50 @@ +%YAML 1.1 +--- +- name: spec-10-13 + yaml: | + ? explicit key # implicit value + ? | + block key + : - one # explicit in-line + - two # block value + tree: | + +STR + +DOC + +MAP + =VAL :explicit key + =VAL : + =VAL |block key\n + +SEQ + =VAL :one + =VAL :two + -SEQ + -MAP + -DOC + -STR +- name: spec-10-13-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "explicit key" + : !!null "", + ? !!str "block key\n" + : !!seq [ + !!str "one", + !!str "two", + ] + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "explicit key + =VAL " + =VAL "block key\n + +SEQ [] + =VAL "one + =VAL "two + -SEQ + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-10-14.yaml b/test/spec 1.1/spec-10-14.yaml new file mode 100644 index 00000000..4c31edf5 --- /dev/null +++ b/test/spec 1.1/spec-10-14.yaml @@ -0,0 +1,49 @@ +%YAML 1.1 +--- +- name: spec-10-14 + yaml: | + plain key: # empty value + "quoted key": + - one # explicit next-line + - two # block value + tree: | + +STR + +DOC + +MAP + =VAL :plain key + =VAL : + =VAL "quoted key + +SEQ + =VAL :one + =VAL :two + -SEQ + -MAP + -DOC + -STR +- name: spec-10-14-canonical + yaml: | + %YAML 1.1 + --- + !!map { + ? !!str "plain key" + : !!null "", + ? !!str "quoted key" + : !!seq [ + !!str "one", + !!str "two", + ] + } + tree: | + +STR + +DOC --- + +MAP {} + =VAL "plain key + =VAL " + =VAL "quoted key + +SEQ [] + =VAL "one + =VAL "two + -SEQ + -MAP + -DOC + -STR diff --git a/test/spec 1.1/spec-10-15.yaml b/test/spec 1.1/spec-10-15.yaml new file mode 100644 index 00000000..ae099056 --- /dev/null +++ b/test/spec 1.1/spec-10-15.yaml @@ -0,0 +1,69 @@ +%YAML 1.1 +--- +- name: spec-10-15 + yaml: | + - sun: yellow + - ? earth: blue + : moon: white + tree: | + +STR + +DOC + +SEQ + +MAP + =VAL :sun + =VAL :yellow + -MAP + +MAP + +MAP + =VAL :earth + =VAL :blue + -MAP + +MAP + =VAL :moon + =VAL :white + -MAP + -MAP + -SEQ + -DOC + -STR +- name: spec-10-15-canonical + yaml: | + %YAML 1.1 + --- + !!seq [ + !!map { + ? !!str "sun" + : !!str "yellow" + }, + !!map { + ? !!map { + ? !!str "earth" + : !!str "blue" + } + : !!map { + ? !!str "moon" + : !!str "white" + } + } + ] + tree: | + +STR + +DOC --- + +SEQ [] + +MAP {} + =VAL "sun + =VAL "yellow + -MAP + +MAP {} + +MAP {} + =VAL "earth + =VAL "blue + -MAP + +MAP {} + =VAL "moon + =VAL "white + -MAP + -MAP + -SEQ + -DOC + -STR diff --git a/test/unclosed-bracket.yaml b/test/unclosed-bracket.yaml new file mode 100644 index 00000000..aae8c4fe --- /dev/null +++ b/test/unclosed-bracket.yaml @@ -0,0 +1,14 @@ +%YAML 1.1 +--- +- name: unclosed-bracket + fail: true + mark: { line: 7, column: 1 } + mark2: { line: 2, column: 7 } + error: "While parsing a flow sequence, expected ',' or ']', but got: streamEnd" + yaml: | + test: + - [ foo: bar + # comment the rest of the stream to let the scanner detect the problem. + # - baz + #"we could have detected the unclosed bracket on the above line, but this would forbid such syntax as": { + #} diff --git a/test/unclosed-quoted-scalar.yaml b/test/unclosed-quoted-scalar.yaml new file mode 100644 index 00000000..0c2a0227 --- /dev/null +++ b/test/unclosed-quoted-scalar.yaml @@ -0,0 +1,10 @@ +%YAML 1.1 +--- +- name: unclosed-quoted-scalar + fail: true + mark: { line: 3, column: 1 } + mark2: { line: 1, column: 1 } + error: "While scanning a quoted scalar, found unexpected end of buffer" + yaml: | + 'foo + bar diff --git a/test/undefined-anchor.yaml b/test/undefined-anchor.yaml new file mode 100644 index 00000000..0c26061f --- /dev/null +++ b/test/undefined-anchor.yaml @@ -0,0 +1,11 @@ +%YAML 1.1 +--- +- name: undefined-anchor + fail: true + error: | + Unable to load test/undefined-anchor.yaml#undefined-anchor:yaml: Found undefined alias: bat + mark: { line: 3, column: 3 } + yaml: | + - foo + - &bar baz + - *bat diff --git a/test/undefined-tag-handle.yaml b/test/undefined-tag-handle.yaml new file mode 100644 index 00000000..15eccbd8 --- /dev/null +++ b/test/undefined-tag-handle.yaml @@ -0,0 +1,16 @@ +%YAML 1.1 +--- +- name: undefined-tag-handle + fail: true + mark: { line: 1, column: 5 } + mark2: { line: 1, column: 5 } + error: "While parsing a node, found undefined tag handle: !foo!" + yaml: | + --- !foo!bar baz +- name: undefined-tag-handle-2 + fail: true + mark: { line: 1, column: 9 } + mark2: { line: 1, column: 1 } + error: "While parsing a node, found undefined tag handle: !foo!" + yaml: |- + &anchor !foo!bar value