@ @ "In each test, let stripped = strip(annotatedValue)," " encodeBinary(·) produce canonical ordering and no annotations," " looseEncodeBinary(·) produce any ordering, but with annotations," " annotatedBinary(·) produce “canonical ordering”, but with annotations," " decodeBinary(·) include annotations," " encodeText(·) include annotations," " decodeText(·) include annotations," "and check the following numbered expectations according to the table above:" "Implementations may vary in their treatment of the difference between expectations" "21/22 and 31/32, depending on how they wish to treat end-of-stream conditions." "The idea of canonical-ordering-with-annotations is to encode, say, sets with their elements" "in sorted order of their canonical annotationless binary encoding, but then actually" "*serialized* with the annotations present." ]> annotation2: annotation3: annotation4: annotation5: > annotation6: > annotation7: # Stop reading symbols at @ -- this test has three separate annotations annotation8: @"Commas forbidden between @ and annotation" annotation8a: @"Commas forbidden between @ and annotation in a collection" annotation9: @"Commas forbidden between annotation and underlying" annotation9a: @"Commas forbidden between annotation and underlying in a collection" annotation10: @"Line comment that's just hash-newline" annotation11: @"Line comments: one hash-newline, one normal" annotation12: @"Interpreter-specification annotations" bytes2: bytes2a: bytes2b: @"Commas forbidden in internal whitespace" bytes3: bytes4: bytes5: bytes6: @"Bytes must be 2-digits entire" bytes7: bytes8: bytes9: bytes10: bytes11: bytes12: @"Bytes syntax only supports \\x, not \\u" bytes13: delimiters0: delimiters1: @"Note no space between the falses here" delimiters2: delimiters3: @"No space between the #f and the foo" delimiters4: @"Note no space after the #f" delimiters5: @"Note no space after the #f" dict0: dict1: dict2: @"Missing close brace" dict2a: @"Missing close brace" dict3: @"Duplicate key" dict3a: @"Duplicate key" dict4: @"Unexpected close brace" dict5: @"Missing value" dict6: @"Comma not allowed between key and colon" dict7: @"Comma not allowed between colon and value" dict8: double0: double+0: double-0: double1: double1a: double1b: double1c: double1d: double1e: double1f: double2: double3: double4: @"Fewer than 16 digits" double5: @"More than 16 digits" double6: @"Invalid chars" double7: @"Positive infinity" double8: @"Negative infinity" double9: @"-qNaN" double10: @"-qNaN" double11: @"+qNaN" double12: @"+qNaN" double13: @"Bad spacing" double14: @"-sNaN" double15: @"-sNaN" double16: @"+sNaN" double17: @"+sNaN" int-98765432109876543210987654321098765432109: int-12345678123456781234567812345678: int-1234567812345678123456781234567: int-257: int-256: int-255: int-254: int-129: int-128: int-127: int-4: int-3: int-2: int-1: int0: int+0: int-0: int1: int12: int13: int127: int+127: int128: int255: int256: int32767: int32768: int65535: int65536: int131072: int2500000000: int1234567812345678123456781234567: int12345678123456781234567812345678: int87112285931760246646623899502532662132736: int98765432109876543210987654321098765432109: list0: list4: list4a: list4b: list5: list6: list7: list8: @"Missing close bracket" list9: @"Unexpected close bracket" list10: @"Missing end byte" list11: list12: noinput0: @"No input at all" embed0: embed1: embed2: record1: >> record2: >>>> record2a: @"Commas not allowed in records" , >>>"> record3: "Dr">> record4: > record5: > record6: > record7: > record8: 3 4>> record9: @"Missing record label" "> record10: @"Missing close-angle-bracket" record11: @"Unexpected close-angle-bracket" "> set0: set1: set2: @"Missing close brace" set2a: @"Missing close brace" set3: @"Duplicate value" set3a: @"Duplicate value" string0: string3: string4: string5: string6: @"Short unicode escape" string7: @"Short unicode escape" surrogatepair0str: @"Unmatched high surrogate" surrogatepair1str: @"Unmatched low surrogate" surrogatepair2str: @"Unmatched high surrogate" surrogatepair3str: @"Unmatched low surrogate" surrogatepair4str: @"Swapped surrogates" surrogatepair5str: @"Two high surrogates" surrogatepair6str: @"Two low surrogates" surrogatepair0sym: @"Unmatched high surrogate" surrogatepair1sym: @"Unmatched low surrogate" surrogatepair2sym: @"Unmatched high surrogate" surrogatepair3sym: @"Unmatched low surrogate" surrogatepair4sym: @"Swapped surrogates" surrogatepair5sym: @"Two high surrogates" surrogatepair6sym: @"Two low surrogates" symbol0: symbol1: symbol2: symbol3: symbol4: symbol5: symbol6: symbol7: symbol8: symbol9: symbol10: symbol11: symbol12: symbol13: symbol14: symbol15: @"A 130-byte symbol" tag0: @"Unexpected end tag" tag1: @"Invalid tag" tag2: @"Invalid tag" whitespace0: @"Leading spaces have to eventually yield something" whitespace1: @"No input at all" longlist14: longlist15: longlist100: longlist200: rfc8259-example1: rfc8259-example2: } >