tomlc99 version 5221b3d
FAIL valid/key/escapes
     ERROR: line 1: bad key
 
     Exit 1

     input sent to parser-cmd:
       "\n" = "newline"
       "\b" = "bell"
       "\u00c0" = "latin capital letter A with grave"
       "\"" = "just a quote"

       ["backsp\b\b"]

       ["\"quoted\""]
       quote = true

       ["a.b"."\u00c0"]

     output from parser-cmd (stderr):
       ERROR: line 1: bad key

       Exit 1

     want:
          

FAIL valid/key/quoted-unicode
     ERROR: line 4: expect hex char
 
     Exit 1

     input sent to parser-cmd:

       "\u0000" = "null"
       '\u0000' = "different key"
       "\u0008 \u000c \U00000041 \u007f \u0080 \u00ff \ud7ff \ue000 \uffff \U00010000 \U0010ffff" = "escaped key"

       "~ € ÿ ퟿  ￿ 𐀀 􏿿" = "basic key"
       'l ~ € ÿ ퟿  ￿ 𐀀 􏿿' = "literal key"

     output from parser-cmd (stderr):
       ERROR: line 4: expect hex char

       Exit 1

     want:
          

FAIL valid/spec/string-7
     ERROR: line 4: triple-s-quote inside string lit
 
     Exit 1

     input sent to parser-cmd:
       quot15 = '''Here are fifteen quotation marks: """""""""""""""'''

       # apos15 = '''Here are fifteen apostrophes: ''''''''''''''''''  # INVALID
       apos15 = "Here are fifteen apostrophes: '''''''''''''''"

       # 'That,' she said, 'is still pointless.'
       str = ''''That,' she said, 'is still pointless.''''

     output from parser-cmd (stderr):
       ERROR: line 4: triple-s-quote inside string lit

       Exit 1

     want:
          

FAIL valid/string/escape-tricky
     ERROR: line 4: expect hex char
 
     Exit 1

     input sent to parser-cmd:
       end_esc = "String does not end here\" but ends here\\"
       lit_end_esc = 'String ends here\'

       multiline_unicode = """
       \u00a0"""

       multiline_not_unicode = """
       \\u0041"""

       multiline_end_esc = """When will it end? \"""...""\" should be here\""""

       lit_multiline_not_unicode = '''
       \u007f'''

       lit_multiline_end = '''There is no escape\'''

     output from parser-cmd (stderr):
       ERROR: line 4: expect hex char

       Exit 1

     want:
          

FAIL valid/string/escapes
     decode JSON output from parser:
       invalid character '\x1f' in string literal

     input sent to parser-cmd:
       backspace     = "|\b."
       tab           = "|\t."
       newline       = "|\n."
       formfeed      = "|\f."
       carriage      = "|\r."
       quote         = "|\"."
       backslash     = "|\\."
       delete        = "|\u007F."
       unitseparator = "|\u001F."

       # \u is escaped, so should NOT be interperted as a \u escape.
       notunicode1   = "|\\u."
       notunicode2   = "|\u005Cu."
       notunicode3   = "|\\u0075."
       notunicode4   = "|\\\u0075."

     output from parser-cmd (stdout):
       {"backspace":{"type":"string","value":"|\b."},"tab":{"type":"string","value":"|\t."},"newline":{"type":"string","value":"|\n."},"formfeed":{"type":"string","value":"|\f."},"carriage":{"type":"string","value":"|\r."},"quote":{"type":"string","value":"|\"."},"backslash":{"type":"string","value":"|\\."},"delete":{"type":"string","value":"|."},"unitseparator":{"type":"string","value":"|."},"notunicode1":{"type":"string","value":"|\\u."},"notunicode2":{"type":"string","value":"|\\u."},"notunicode3":{"type":"string","value":"|\\u0075."},"notunicode4":{"type":"string","value":"|\\u."}}

     want:
       {
           "backslash":     {"type": "string", "value": "|\\."},
           "backspace":     {"type": "string", "value": "|\b."},
           "carriage":      {"type": "string", "value": "|\r."},
           "delete":        {"type": "string", "value": "|."},
           "formfeed":      {"type": "string", "value": "|\f."},
           "newline":       {"type": "string", "value": "|\n."},
           "notunicode1":   {"type": "string", "value": "|\\u."},
           "notunicode2":   {"type": "string", "value": "|\\u."},
           "notunicode3":   {"type": "string", "value": "|\\u0075."},
           "notunicode4":   {"type": "string", "value": "|\\u."},
           "quote":         {"type": "string", "value": "|\"."},
           "tab":           {"type": "string", "value": "|\t."},
           "unitseparator": {"type": "string", "value": "|\u001f."}
       }

FAIL valid/string/quoted-unicode
     ERROR: line 2: expect hex char
 
     Exit 1

     input sent to parser-cmd:

       escaped_string = "\u0000 \u0008 \u000c \U00000041 \u007f \u0080 \u00ff \ud7ff \ue000 \uffff \U00010000 \U0010ffff"
       not_escaped_string = '\u0000 \u0008 \u000c \U00000041 \u007f \u0080 \u00ff \ud7ff \ue000 \uffff \U00010000 \U0010ffff'

       basic_string = "~ € ÿ ퟿  ￿ 𐀀 􏿿"
       literal_string = '~ € ÿ ퟿  ￿ 𐀀 􏿿'

     output from parser-cmd (stderr):
       ERROR: line 2: expect hex char

       Exit 1

     want:
          

FAIL valid/string/unicode-escape
     Values for key "ml-null-1" don't match:
       Expected:     
       Your encoder:

     input sent to parser-cmd:
       delta-1 = "\u03B4"
       delta-2 = "\U000003B4"
       a       = "\u0061"
       b       = "\u0062"
       c       = "\U00000063"
       null-1  = "\u0000"
       null-2  = "\U00000000"

       ml-delta-1 = """\u03B4"""
       ml-delta-2 = """\U000003B4"""
       ml-a       = """\u0061"""
       ml-b       = """\u0062"""
       ml-c       = """\U00000063"""
       ml-null-1  = """\u0000"""
       ml-null-2  = """\U00000000"""

     output from parser-cmd (stdout):
       {
         "a":          {"type": "string", "value": "a"},
         "b":          {"type": "string", "value": "b"},
         "c":          {"type": "string", "value": "c"},
         "delta-1":    {"type": "string", "value": "δ"},
         "delta-2":    {"type": "string", "value": "δ"},
         "ml-a":       {"type": "string", "value": "a"},
         "ml-b":       {"type": "string", "value": "b"},
         "ml-c":       {"type": "string", "value": "c"},
         "ml-delta-1": {"type": "string", "value": "δ"},
         "ml-delta-2": {"type": "string", "value": "δ"},
         "ml-null-1":  {"type": "string", "value": ""},
         "ml-null-2":  {"type": "string", "value": ""},
         "null-1":     {"type": "string", "value": ""},
         "null-2":     {"type": "string", "value": ""}
       }

     want:
       {
           "a":          {"type": "string", "value": "a"},
           "b":          {"type": "string", "value": "b"},
           "c":          {"type": "string", "value": "c"},
           "delta-1":    {"type": "string", "value": "δ"},
           "delta-2":    {"type": "string", "value": "δ"},
           "ml-a":       {"type": "string", "value": "a"},
           "ml-b":       {"type": "string", "value": "b"},
           "ml-c":       {"type": "string", "value": "c"},
           "ml-delta-1": {"type": "string", "value": "δ"},
           "ml-delta-2": {"type": "string", "value": "δ"},
           "ml-null-1":  {"type": "string", "value": "\u0000"},
           "ml-null-2":  {"type": "string", "value": "\u0000"},
           "null-1":     {"type": "string", "value": "\u0000"},
           "null-2":     {"type": "string", "value": "\u0000"}
       }

FAIL invalid/array/extending-table
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       a = [{ b = 1 }]

       # Cannot extend tables within static arrays
       # https://github.com/toml-lang/toml/issues/908
       [a.c]
       foo = 1

     output from parser-cmd (stdout):
       {
         "a": [{
           "b": {"type": "integer", "value": "1"},
           "c": {
             "foo": {"type": "integer", "value": "1"}
           }
         }]
       }

     want:
       Exit code 1

FAIL invalid/control/bare-cr
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # The following line contains a single carriage return control character
       

     output from parser-cmd (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/control/bare-null
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       bare-null         = "some value" 

     output from parser-cmd (stdout):
       {
         "bare-null": {"type": "string", "value": "some value"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-cr
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       comment-cr   = "Carriage return in comment" # 
a=1

     output from parser-cmd (stdout):
       {
         "comment-cr": {"type": "string", "value": "Carriage return in comment"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-del
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       comment-del  = "0x7f"   # 

     output from parser-cmd (stdout):
       {
         "comment-del": {"type": "string", "value": "0x7f"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-ff
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       comment-ff   = "0x7f"   # 

     output from parser-cmd (stdout):
       {
         "comment-ff": {"type": "string", "value": "0x7f"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-lf
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       comment-lf   = "ctrl-P" # 

     output from parser-cmd (stdout):
       {
         "comment-lf": {"type": "string", "value": "ctrl-P"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-null
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       comment-null = "null"   # 

     output from parser-cmd (stdout):
       {
         "comment-null": {"type": "string", "value": "null"}
       }

     want:
       Exit code 1

FAIL invalid/control/comment-us
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       comment-us   = "ctrl-_" # 

     output from parser-cmd (stdout):
       {
         "comment-us": {"type": "string", "value": "ctrl-_"}
       }

     want:
       Exit code 1

FAIL invalid/control/multi-cr
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       multi-cr   = """null
"""

     output from parser-cmd (stdout):
       {
         "multi-cr": {"type": "string", "value": "null\r"}
       }

     want:
       Exit code 1

FAIL invalid/control/rawmulti-cd
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       rawmulti-cd   = '''null
'''

     output from parser-cmd (stdout):
       {
         "rawmulti-cd": {"type": "string", "value": "null\r"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/feb-29
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       "not a leap year" = 2100-02-29T15:15:15Z

     output from parser-cmd (stdout):
       {
         "not a leap year": {"type": "datetime", "value": "2100-02-29T15:15:15Z"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/feb-30
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       "only 28 or 29 days in february" = 1988-02-30T15:15:15Z

     output from parser-cmd (stdout):
       {
         "only 28 or 29 days in february": {"type": "datetime", "value": "1988-02-30T15:15:15Z"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/hour-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-hour       = 2DIGIT  ; 00-23
       d = 2006-01-01T24:00:00-00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-01T24:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/mday-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-32T00:00:00-00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-32T00:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/mday-under
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-00T00:00:00-00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-00T00:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/minute-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-minute     = 2DIGIT  ; 00-59
       d = 2006-01-01T00:60:00-00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-01T00:60:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/month-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-month      = 2DIGIT  ; 01-12
       d = 2006-13-01T00:00:00-00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "2006-13-01T00:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/month-under
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-month      = 2DIGIT  ; 01-12
       d = 2007-00-01T00:00:00-00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "2007-00-01T00:00:00-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/offset-overflow-hour
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # Hour must be 00-24
       d = 1985-06-18 17:04:07+25:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "1985-06-18T17:04:07+25:00"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/offset-overflow-minute
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # Minute must be 00-59; we allow 60 too because some people do write offsets of
       # 60 minutes
       d = 1985-06-18 17:04:07+12:61

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "1985-06-18T17:04:07+12:61"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/second-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap second
       #                           ; rules
       d = 2006-01-01T00:00:61-00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime", "value": "2006-01-01T00:00:61-00:00"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/bad-codepoint
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # Invalid codepoint U+D800 : 

     output from parser-cmd (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-comment
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # 

     output from parser-cmd (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-multiline
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # The following line contains an invalid UTF-8 sequence.
       bad = """"""

     output from parser-cmd (stdout):
       {
         "bad": {"type": "string", "value": "�"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-multiline-literal
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # The following line contains an invalid UTF-8 sequence.
       bad = ''''''

     output from parser-cmd (stdout):
       {
         "bad": {"type": "string", "value": "�"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-string
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # The following line contains an invalid UTF-8 sequence.
       bad = ""

     output from parser-cmd (stdout):
       {
         "bad": {"type": "string", "value": "�"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/bad-utf8-in-string-literal
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # The following line contains an invalid UTF-8 sequence.
       bad = ''

     output from parser-cmd (stdout):
       {
         "bad": {"type": "string", "value": "�"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/utf16-comment
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # UTF-16 without BOM

     output from parser-cmd (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/encoding/utf16-key
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       k = "v"

     output from parser-cmd (stdout):
       {}

     want:
       Exit code 1

FAIL invalid/float/exp-leading-us
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       exp-leading-us = 1e_23

     output from parser-cmd (stdout):
       {
         "exp-leading-us": {"type": "float", "value": "1e23"}
       }

     want:
       Exit code 1

FAIL invalid/float/exp-trailing-us-1
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       exp-trailing-us-1 = 1_e2

     output from parser-cmd (stdout):
       {
         "exp-trailing-us-1": {"type": "float", "value": "1e2"}
       }

     want:
       Exit code 1

FAIL invalid/float/exp-trailing-us-2
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       exp-trailing-us-2 = 1.2_e2

     output from parser-cmd (stdout):
       {
         "exp-trailing-us-2": {"type": "float", "value": "1.2e2"}
       }

     want:
       Exit code 1

FAIL invalid/float/inf-capital
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       v = Inf

     output from parser-cmd (stdout):
       {
         "v": {"type": "float", "value": "Inf"}
       }

     want:
       Exit code 1

FAIL invalid/float/inf_underscore
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       inf_underscore = in_f

     output from parser-cmd (stdout):
       {
         "inf_underscore": {"type": "float", "value": "inf"}
       }

     want:
       Exit code 1

FAIL invalid/float/nan-capital
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       v = NaN

     output from parser-cmd (stdout):
       {
         "v": {"type": "float", "value": "NaN"}
       }

     want:
       Exit code 1

FAIL invalid/float/nan_underscore
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       nan_underscore = na_n

     output from parser-cmd (stdout):
       {
         "nan_underscore": {"type": "float", "value": "nan"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-us-exp-1
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       trailing-us-exp-1 = 1_e2

     output from parser-cmd (stdout):
       {
         "trailing-us-exp-1": {"type": "float", "value": "1e2"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-us-exp-2
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       trailing-us-exp-2 = 1.2_e2

     output from parser-cmd (stdout):
       {
         "trailing-us-exp-2": {"type": "float", "value": "1.2e2"}
       }

     want:
       Exit code 1

FAIL invalid/inline-table/overwrite-02
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       a={}
       # Inline tables are immutable and can't be extended
       [a.b]

     output from parser-cmd (stdout):
       {
         "a": {
           "b": {}
         }
       }

     want:
       Exit code 1

FAIL invalid/inline-table/trailing-comma
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # A terminating comma (also called trailing comma) is not permitted after the
       # last key/value pair in an inline table
       abc = { abc = 123, }

     output from parser-cmd (stdout):
       {
         "abc": {
           "abc": {"type": "integer", "value": "123"}
         }
       }

     want:
       Exit code 1

FAIL invalid/integer/incomplete-bin
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       incomplete-bin = 0b

     output from parser-cmd (stdout):
       {
         "incomplete-bin": {"type": "integer", "value": "0"}
       }

     want:
       Exit code 1

FAIL invalid/integer/incomplete-hex
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       incomplete-hex = 0x

     output from parser-cmd (stdout):
       {
         "incomplete-hex": {"type": "integer", "value": "0"}
       }

     want:
       Exit code 1

FAIL invalid/integer/incomplete-oct
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       incomplete-oct = 0o

     output from parser-cmd (stdout):
       {
         "incomplete-oct": {"type": "integer", "value": "0"}
       }

     want:
       Exit code 1

FAIL invalid/integer/negative-bin
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       negative-bin = -0b11010110

     output from parser-cmd (stdout):
       {
         "negative-bin": {"type": "integer", "value": "-214"}
       }

     want:
       Exit code 1

FAIL invalid/integer/negative-hex
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       negative-hex = -0xff

     output from parser-cmd (stdout):
       {
         "negative-hex": {"type": "integer", "value": "-255"}
       }

     want:
       Exit code 1

FAIL invalid/integer/negative-oct
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       negative-oct = -0o755

     output from parser-cmd (stdout):
       {
         "negative-oct": {"type": "integer", "value": "-493"}
       }

     want:
       Exit code 1

FAIL invalid/integer/positive-bin
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       positive-bin = +0b11010110

     output from parser-cmd (stdout):
       {
         "positive-bin": {"type": "integer", "value": "214"}
       }

     want:
       Exit code 1

FAIL invalid/integer/positive-hex
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       positive-hex = +0xff

     output from parser-cmd (stdout):
       {
         "positive-hex": {"type": "integer", "value": "255"}
       }

     want:
       Exit code 1

FAIL invalid/integer/positive-oct
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       positive-oct = +0o755

     output from parser-cmd (stdout):
       {
         "positive-oct": {"type": "integer", "value": "493"}
       }

     want:
       Exit code 1

FAIL invalid/integer/us-after-bin
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       us-after-bin = 0b_1

     output from parser-cmd (stdout):
       {
         "us-after-bin": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/integer/us-after-hex
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       us-after-hex = 0x_1

     output from parser-cmd (stdout):
       {
         "us-after-hex": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/integer/us-after-oct
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       us-after-oct = 0o_1

     output from parser-cmd (stdout):
       {
         "us-after-oct": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/feb-29
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       "not a leap year" = 2100-02-29

     output from parser-cmd (stdout):
       {
         "not a leap year": {"type": "date-local", "value": "2100-02-29"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/feb-30
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       "only 28 or 29 days in february" = 1988-02-30

     output from parser-cmd (stdout):
       {
         "only 28 or 29 days in february": {"type": "date-local", "value": "1988-02-30"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/mday-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-32

     output from parser-cmd (stdout):
       {
         "d": {"type": "date-local", "value": "2006-01-32"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/mday-under
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-00

     output from parser-cmd (stdout):
       {
         "d": {"type": "date-local", "value": "2006-01-00"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/month-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-month      = 2DIGIT  ; 01-12
       d = 2006-13-01

     output from parser-cmd (stdout):
       {
         "d": {"type": "date-local", "value": "2006-13-01"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/month-under
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-month      = 2DIGIT  ; 01-12
       d = 2007-00-01

     output from parser-cmd (stdout):
       {
         "d": {"type": "date-local", "value": "2007-00-01"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/feb-29
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       "not a leap year" = 2100-02-29T15:15:15

     output from parser-cmd (stdout):
       {
         "not a leap year": {"type": "datetime-local", "value": "2100-02-29T15:15:15"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/feb-30
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       "only 28 or 29 days in february" = 1988-02-30T15:15:15

     output from parser-cmd (stdout):
       {
         "only 28 or 29 days in february": {"type": "datetime-local", "value": "1988-02-30T15:15:15"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/hour-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-hour       = 2DIGIT  ; 00-23
       d = 2006-01-01T24:00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-01T24:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/mday-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-32T00:00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-32T00:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/mday-under
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
       #                           ; month/year
       d = 2006-01-00T00:00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-00T00:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/minute-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-minute     = 2DIGIT  ; 00-59
       d = 2006-01-01T00:60:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-01T00:60:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/month-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-month      = 2DIGIT  ; 01-12
       d = 2006-13-01T00:00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-13-01T00:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/month-under
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # date-month      = 2DIGIT  ; 01-12
       d = 2007-00-01T00:00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime-local", "value": "2007-00-01T00:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-datetime/second-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap second
       #                           ; rules
       d = 2006-01-01T00:00:61

     output from parser-cmd (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-01-01T00:00:61"}
       }

     want:
       Exit code 1

FAIL invalid/local-time/hour-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-hour       = 2DIGIT  ; 00-23
       d = 24:00:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "time-local", "value": "24:00:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-time/minute-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-minute     = 2DIGIT  ; 00-59
       d = 00:60:00

     output from parser-cmd (stdout):
       {
         "d": {"type": "time-local", "value": "00:60:00"}
       }

     want:
       Exit code 1

FAIL invalid/local-time/second-over
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap second
       #                           ; rules
       d = 00:00:61

     output from parser-cmd (stdout):
       {
         "d": {"type": "time-local", "value": "00:00:61"}
       }

     want:
       Exit code 1

FAIL invalid/string/basic-multiline-out-of-range-unicode-escape-2
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       a = """\U00D80000"""

     output from parser-cmd (stdout):
       {
         "a": {"type": "string", "value": "�����"}
       }

     want:
       Exit code 1

FAIL invalid/string/basic-out-of-range-unicode-escape-2
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       a = "\U00D80000"

     output from parser-cmd (stdout):
       {
         "a": {"type": "string", "value": "�����"}
       }

     want:
       Exit code 1

FAIL invalid/string/literal-multiline-quotes-1
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       a = '''6 apostrophes: ''''''

     output from parser-cmd (stdout):
       {
         "a": {"type": "string", "value": "6 apostrophes: '''"}
       }

     want:
       Exit code 1

FAIL invalid/string/literal-multiline-quotes-2
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       a = '''15 apostrophes: ''''''''''''''''''

     output from parser-cmd (stdout):
       {
         "a": {"type": "string", "value": "15 apostrophes: '''''''''''''''"}
       }

     want:
       Exit code 1

FAIL invalid/string/multiline-quotes-1
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       a = """6 quotes: """"""

     output from parser-cmd (stdout):
       {
         "a": {"type": "string", "value": "6 quotes: \"\"\""}
       }

     want:
       Exit code 1

FAIL invalid/table/append-with-dotted-keys-1
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # First a.b.c defines a table: a.b.c = {z=9}
       #
       # Then we define a.b.c.t = "str" to add a str to the above table, making it:
       #
       #   a.b.c = {z=9, t="..."}
       #
       # While this makes sense, logically, it was decided this is not valid TOML as
       # it's too confusing/convoluted.
       #
       # See: https://github.com/toml-lang/toml/issues/846
       #      https://github.com/toml-lang/toml/pull/859

       [a.b.c]
         z = 9

       [a]
         b.c.t = "Using dotted keys to add to [a.b.c] after explicitly defining it above is not allowed"

     output from parser-cmd (stdout):
       {
         "a": {
           "b": {
             "c": {
               "z": {"type": "integer", "value": "9"},
               "t": {
                 "type":  "string",
                 "value": "Using dotted keys to add to [a.b.c] after explicitly defining it above is not allowed"
               }
             }
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/append-with-dotted-keys-2
     Expected an error, but no error was reported.

     input sent to parser-cmd:
       # This is the same issue as in injection-1.toml, except that nests one level
       # deeper. See that file for a more complete description.

       [a.b.c.d]
         z = 9

       [a]
         b.c.d.k.t = "Using dotted keys to add to [a.b.c.d] after explicitly defining it above is not allowed"

     output from parser-cmd (stdout):
       {
         "a": {
           "b": {
             "c": {
               "d": {
                 "z": {"type": "integer", "value": "9"},
                 "k": {
                   "t": {
                     "type":  "string",
                     "value": "Using dotted keys to add to [a.b.c.d] after explicitly defining it above is not allowed"
                   }
                 }
               }
             }
           }
         }
       }

     want:
       Exit code 1

toml-test v2024-05-31 [./src/c-tomlc99/toml_json]: using embedded tests
  valid tests: 175 passed,  7 failed
invalid tests: 293 passed, 78 failed

==> ENCODER TESTS
(not supported)
took 0.3 12.76