boml version 1.0.1
FAIL valid/array/array
     Malformed output from your encoder: key "dates" is not a datetime: "1987-7-5t17:45: 0.0+ 0: 0"

     input sent to parser-cmd (PID 16413):
       ints = [1, 2, 3, ]
       floats = [1.1, 2.1, 3.1]
       strings = ["a", "b", "c"]
       dates = [
       	1987-07-05T17:45:00Z,
       	1979-05-27T07:32:00,
       	2006-06-01,
       	11:00:00,
       ]
       comments = [
                1,
                2, #this is ok
       ]

     output from parser-cmd (PID 16413) (stdout):
       {
         "comments": [
           {"type": "integer", "value": "1"},
           {"type": "integer", "value": "2"}
         ],
         "dates": [
           {"type": "datetime", "value": "1987-7-5t17:45: 0.0+ 0: 0"},
           {"type": "datetime-local", "value": "1979-5-27t 7:32: 0.0"},
           {"type": "date-local", "value": "2006-6-1"},
           {"type": "time-local", "value": "11: 0: 0.0"}
         ],
         "floats": [
           {"type": "float", "value": "1.1"},
           {"type": "float", "value": "2.1"},
           {"type": "float", "value": "3.1"}
         ],
         "ints": [
           {"type": "integer", "value": "1"},
           {"type": "integer", "value": "2"},
           {"type": "integer", "value": "3"}
         ],
         "strings": [
           {"type": "string", "value": "a"},
           {"type": "string", "value": "b"},
           {"type": "string", "value": "c"}
         ]
       }

     want:
       {
           "comments": [
               {"type": "integer", "value": "1"},
               {"type": "integer", "value": "2"}
           ],
           "dates": [
               {"type": "datetime", "value": "1987-07-05T17:45:00Z"},
               {"type": "datetime-local", "value": "1979-05-27T07:32:00"},
               {"type": "date-local", "value": "2006-06-01"},
               {"type": "time-local", "value": "11:00:00"}
           ],
           "floats": [
               {"type": "float", "value": "1.1"},
               {"type": "float", "value": "2.1"},
               {"type": "float", "value": "3.1"}
           ],
           "ints": [
               {"type": "integer", "value": "1"},
               {"type": "integer", "value": "2"},
               {"type": "integer", "value": "3"}
           ],
           "strings": [
               {"type": "string", "value": "a"},
               {"type": "string", "value": "b"},
               {"type": "string", "value": "c"}
           ]
       }

FAIL valid/comment/everywhere
     Malformed output from your encoder: key "group.d" is not a datetime: "1979-5-27"

     input sent to parser-cmd (PID 16457):
       # Top comment.
         # Top comment.
       # Top comment.

       # [no-extraneous-groups-please]

       [group] # Comment
       answer = 42 # Comment
       # no-extraneous-keys-please = 999
       # Inbetween comment.
       more = [ # Comment
         # What about multiple # comments?
         # Can you handle it?
         #
                 # Evil.
       # Evil.
         42, 42, # Comments within arrays are fun.
         # What about multiple # comments?
         # Can you handle it?
         #
                 # Evil.
       # Evil.
       # ] Did I fool you?
       ] # Hopefully not.

       # Make sure the space between the datetime and "#" isn't lexed.
       dt = 1979-05-27T07:32:12-07:00  # c
       d = 1979-05-27 # Comment

       [[aot]] # Comment
       k = 98 # Comment
       [[aot]]# Comment
       k = 99# Comment

     output from parser-cmd (PID 16457) (stdout):
       {
         "aot": [
           {
             "k": {"type": "integer", "value": "98"}
           },
           {
             "k": {"type": "integer", "value": "99"}
           }
         ],
         "group": {
           "answer": {"type": "integer", "value": "42"},
           "d":      {"type": "date-local", "value": "1979-5-27"},
           "dt":     {"type": "datetime", "value": "1979-5-27t 7:32:12.0- 7: 0"},
           "more": [
             {"type": "integer", "value": "42"},
             {"type": "integer", "value": "42"}
           ]
         }
       }

     want:
       {
           "aot": [
               {
                   "k": {"type": "integer", "value": "98"}
               },
               {
                   "k": {"type": "integer", "value": "99"}
               }
           ],
           "group": {
               "answer": {"type": "integer", "value": "42"},
               "d":      {"type": "date-local", "value": "1979-05-27"},
               "dt":     {"type": "datetime", "value": "1979-05-27T07:32:12-07:00"},
               "more": [
                   {"type": "integer", "value": "42"},
                   {"type": "integer", "value": "42"}
               ]
           }
       }

FAIL valid/datetime/datetime
     Malformed output from your encoder: key "lower" is not a datetime: "1987-7-5t17:45: 0.0+ 0: 0"

     input sent to parser-cmd (PID 16450):
       space = 1987-07-05 17:45:00Z

       # ABNF is case-insensitive, both "Z" and "z" must be supported.
       lower = 1987-07-05t17:45:00z

     output from parser-cmd (PID 16450) (stdout):
       {
         "lower": {"type": "datetime", "value": "1987-7-5t17:45: 0.0+ 0: 0"},
         "space": {"type": "datetime", "value": "1987-7-5t17:45: 0.0+ 0: 0"}
       }

     want:
       {
           "lower": {"type": "datetime", "value": "1987-07-05T17:45:00Z"},
           "space": {"type": "datetime", "value": "1987-07-05T17:45:00Z"}
       }

FAIL valid/datetime/edge
     Malformed output from your encoder: key "first-date" is not a datetime: "1-1-1"

     input sent to parser-cmd (PID 16449):
       first-offset = 0001-01-01 00:00:00Z
       first-local  = 0001-01-01 00:00:00
       first-date   = 0001-01-01

       last-offset = 9999-12-31 23:59:59Z
       last-local  = 9999-12-31 23:59:59
       last-date   = 9999-12-31

     output from parser-cmd (PID 16449) (stdout):
       {
         "first-date":   {"type": "date-local", "value": "1-1-1"},
         "first-local":  {"type": "datetime-local", "value": "1-1-1t 0: 0: 0.0"},
         "first-offset": {"type": "datetime", "value": "1-1-1t 0: 0: 0.0+ 0: 0"},
         "last-date":    {"type": "date-local", "value": "9999-12-31"},
         "last-local":   {"type": "datetime-local", "value": "9999-12-31t23:59:59.0"},
         "last-offset":  {"type": "datetime", "value": "9999-12-31t23:59:59.0+ 0: 0"}
       }

     want:
       {
           "first-date":   {"type": "date-local", "value": "0001-01-01"},
           "first-local":  {"type": "datetime-local", "value": "0001-01-01T00:00:00"},
           "first-offset": {"type": "datetime", "value": "0001-01-01T00:00:00Z"},
           "last-date":    {"type": "date-local", "value": "9999-12-31"},
           "last-local":   {"type": "datetime-local", "value": "9999-12-31T23:59:59"},
           "last-offset":  {"type": "datetime", "value": "9999-12-31T23:59:59Z"}
       }

FAIL valid/datetime/leap-year
     Malformed output from your encoder: key "2000-date" is not a datetime: "2000-2-29"

     input sent to parser-cmd (PID 16459):
       2000-datetime       = 2000-02-29 15:15:15Z
       2000-datetime-local = 2000-02-29 15:15:15
       2000-date           = 2000-02-29

       2024-datetime       = 2024-02-29 15:15:15Z
       2024-datetime-local = 2024-02-29 15:15:15
       2024-date           = 2024-02-29

     output from parser-cmd (PID 16459) (stdout):
       {
         "2000-date":           {"type": "date-local", "value": "2000-2-29"},
         "2000-datetime":       {"type": "datetime", "value": "2000-2-29t15:15:15.0+ 0: 0"},
         "2000-datetime-local": {"type": "datetime-local", "value": "2000-2-29t15:15:15.0"},
         "2024-date":           {"type": "date-local", "value": "2024-2-29"},
         "2024-datetime":       {"type": "datetime", "value": "2024-2-29t15:15:15.0+ 0: 0"},
         "2024-datetime-local": {"type": "datetime-local", "value": "2024-2-29t15:15:15.0"}
       }

     want:
       {
           "2000-date":           {"type": "date-local", "value": "2000-02-29"},
           "2000-datetime":       {"type": "datetime", "value": "2000-02-29T15:15:15Z"},
           "2000-datetime-local": {"type": "datetime-local", "value": "2000-02-29T15:15:15"},
           "2024-date":           {"type": "date-local", "value": "2024-02-29"},
           "2024-datetime":       {"type": "datetime", "value": "2024-02-29T15:15:15Z"},
           "2024-datetime-local": {"type": "datetime-local", "value": "2024-02-29T15:15:15"}
       }

FAIL valid/datetime/local
     Malformed output from your encoder: key "local" is not a datetime: "1987-7-5t17:45: 0.0"

     input sent to parser-cmd (PID 16469):
       local = 1987-07-05T17:45:00
       milli = 1977-12-21T10:32:00.555
       space = 1987-07-05 17:45:00

     output from parser-cmd (PID 16469) (stdout):
       {
         "local": {"type": "datetime-local", "value": "1987-7-5t17:45: 0.0"},
         "milli": {"type": "datetime-local", "value": "1977-12-21t10:32: 0.555000000"},
         "space": {"type": "datetime-local", "value": "1987-7-5t17:45: 0.0"}
       }

     want:
       {
           "local": {"type": "datetime-local", "value": "1987-07-05T17:45:00"},
           "milli": {"type": "datetime-local", "value": "1977-12-21T10:32:00.555"},
           "space": {"type": "datetime-local", "value": "1987-07-05T17:45:00"}
       }

FAIL valid/datetime/local-date
     Malformed output from your encoder: key "bestdayever" is not a datetime: "1987-7-5"

     input sent to parser-cmd (PID 16467):
       bestdayever = 1987-07-05

     output from parser-cmd (PID 16467) (stdout):
       {
         "bestdayever": {"type": "date-local", "value": "1987-7-5"}
       }

     want:
       {
           "bestdayever": {"type": "date-local", "value": "1987-07-05"}
       }

FAIL valid/datetime/local-time
     Malformed output from your encoder: key "besttimeever" is not a datetime: "17:45: 0.0"

     input sent to parser-cmd (PID 16468):
       besttimeever = 17:45:00
       milliseconds = 10:32:00.555

     output from parser-cmd (PID 16468) (stdout):
       {
         "besttimeever": {"type": "time-local", "value": "17:45: 0.0"},
         "milliseconds": {"type": "time-local", "value": "10:32: 0.555000000"}
       }

     want:
       {
           "besttimeever": {"type": "time-local", "value": "17:45:00"},
           "milliseconds": {"type": "time-local", "value": "10:32:00.555"}
       }

FAIL valid/datetime/milliseconds
     Malformed output from your encoder: key "utc1" is not a datetime: "1987-7-5t17:45:56.123000000+ 0: 0"

     input sent to parser-cmd (PID 16470):
       utc1  = 1987-07-05T17:45:56.123Z
       utc2  = 1987-07-05T17:45:56.6Z
       wita1 = 1987-07-05T17:45:56.123+08:00
       wita2 = 1987-07-05T17:45:56.6+08:00

     output from parser-cmd (PID 16470) (stdout):
       {
         "utc1":  {"type": "datetime", "value": "1987-7-5t17:45:56.123000000+ 0: 0"},
         "utc2":  {"type": "datetime", "value": "1987-7-5t17:45:56.600000000+ 0: 0"},
         "wita1": {"type": "datetime", "value": "1987-7-5t17:45:56.123000000+ 8: 0"},
         "wita2": {"type": "datetime", "value": "1987-7-5t17:45:56.600000000+ 8: 0"}
       }

     want:
       {
           "utc1":  {"type": "datetime", "value": "1987-07-05T17:45:56.123Z"},
           "utc2":  {"type": "datetime", "value": "1987-07-05T17:45:56.600Z"},
           "wita1": {"type": "datetime", "value": "1987-07-05T17:45:56.123+08:00"},
           "wita2": {"type": "datetime", "value": "1987-07-05T17:45:56.600+08:00"}
       }

FAIL valid/datetime/timezone
     Malformed output from your encoder: key "nzdt" is not a datetime: "1987-7-5t17:45:56.0+13: 0"

     input sent to parser-cmd (PID 16471):
       utc  = 1987-07-05T17:45:56Z
       pdt  = 1987-07-05T17:45:56-05:00
       nzst = 1987-07-05T17:45:56+12:00
       nzdt = 1987-07-05T17:45:56+13:00  # DST

     output from parser-cmd (PID 16471) (stdout):
       {
         "nzdt": {"type": "datetime", "value": "1987-7-5t17:45:56.0+13: 0"},
         "nzst": {"type": "datetime", "value": "1987-7-5t17:45:56.0+12: 0"},
         "pdt":  {"type": "datetime", "value": "1987-7-5t17:45:56.0- 5: 0"},
         "utc":  {"type": "datetime", "value": "1987-7-5t17:45:56.0+ 0: 0"}
       }

     want:
       {
           "nzdt": {"type": "datetime", "value": "1987-07-05T17:45:56+13:00"},
           "nzst": {"type": "datetime", "value": "1987-07-05T17:45:56+12:00"},
           "pdt":  {"type": "datetime", "value": "1987-07-05T17:45:56-05:00"},
           "utc":  {"type": "datetime", "value": "1987-07-05T17:45:56Z"}
       }

FAIL valid/example
     Malformed output from your encoder: key "best-day-ever" is not a datetime: "1987-7-5t17:45: 0.0+ 0: 0"

     input sent to parser-cmd (PID 16462):
       best-day-ever = 1987-07-05T17:45:00Z

       [numtheory]
       boring = false
       perfection = [6, 28, 496]

     output from parser-cmd (PID 16462) (stdout):
       {
         "best-day-ever": {"type": "datetime", "value": "1987-7-5t17:45: 0.0+ 0: 0"},
         "numtheory": {
           "boring": {"type": "bool", "value": "false"},
           "perfection": [
             {"type": "integer", "value": "6"},
             {"type": "integer", "value": "28"},
             {"type": "integer", "value": "496"}
           ]
         }
       }

     want:
       {
           "best-day-ever": {"type": "datetime", "value": "1987-07-05T17:45:00Z"},
           "numtheory": {
               "boring": {"type": "bool", "value": "false"},
               "perfection": [
                   {"type": "integer", "value": "6"},
                   {"type": "integer", "value": "28"},
                   {"type": "integer", "value": "496"}
               ]
           }
       }

FAIL valid/multibyte
     signal: aborted

     input sent to parser-cmd (PID 16535):
       # Test multibyte throughout

       # Tèƨƭ ƒïℓè ƒôř TÓM£
       # Óñℓ¥ ƭλïƨ ôñè ƭřïèƨ ƭô è₥úℓáƭè á TÓM£ ƒïℓè ωřïƭƭèñ β¥ á úƨèř ôƒ ƭλè ƙïñδ ôƒ ƥářƨèř ωřïƭèřƨ ƥřôβáβℓ¥ λáƭè

       ['𝐭𝐛𝐥']
       string = "𝓼𝓽𝓻𝓲𝓷𝓰 - #"          # " 𝓼𝓽𝓻𝓲𝓷𝓰
       	['𝐭𝐛𝐥'.sub]
       	'𝕒𝕣𝕣𝕒𝕪' = [ "] ", " # "]      # ] 𝓪𝓻𝓻𝓪𝔂
       	'𝕒𝕣𝕣𝕒𝕪𝟚' = [ "Tèƨƭ #11 ]ƥřôƲèδ ƭλáƭ", "Éжƥèřï₥èñƭ #9 ωáƨ á ƨúççèƨƨ" ]
       	# Ýôú δïδñ'ƭ ƭλïñƙ ïƭ'δ áƨ èáƨ¥ áƨ çλúçƙïñϱ ôúƭ ƭλè ℓáƨƭ #, δïδ ¥ôú?
       	another_test_string = "§á₥è ƭλïñϱ, βúƭ ωïƭλ á ƨƭřïñϱ #"
       	escapes = " Âñδ ωλèñ \"'ƨ ářè ïñ ƭλè ƨƭřïñϱ, áℓôñϱ ωïƭλ # \""   # "áñδ çô₥₥èñƭƨ ářè ƭλèřè ƭôô"
       	# Tλïñϱƨ ωïℓℓ ϱèƭ λářδèř
       		['𝐭𝐛𝐥'.sub."βïƭ#"]
       		"ωλáƭ?" = "Ýôú δôñ'ƭ ƭλïñƙ ƨô₥è úƨèř ωôñ'ƭ δô ƭλáƭ?"
       		multi_line_array = [
       			"]",
       			# ] Óλ ¥èƨ Ì δïδ
       			]

     output from parser-cmd (PID 16535) (stderr):
       thread 'main' panicked at /home/martin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/boml-1.0.1/src/text.rs:210:26:
       byte index 287 is not a char boundary; it is inside '𝓼' (bytes 285..289) of `# Test multibyte throughout

       # Tèƨƭ ƒïℓè ƒôř TÓM£
       # Óñℓ¥ ƭλïƨ ôñè ƭřïèƨ ƭô è₥úℓáƭè á TÓM£ ƒïℓè ωřïƭƭèñ β¥ á úƨèř ôƒ ƭλè ƙïñδ ôƒ ƥářƨèř ωřïƭèřƨ ƥřôβáβℓ¥ λáƭè`[...]
       note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

     want:
          

FAIL valid/spec-1.0.0/local-date-0
     Malformed output from your encoder: key "ld1" is not a datetime: "1979-5-27"

     input sent to parser-cmd (PID 16567):
       ld1 = 1979-05-27

     output from parser-cmd (PID 16567) (stdout):
       {
         "ld1": {"type": "date-local", "value": "1979-5-27"}
       }

     want:
       {
           "ld1": {"type": "date-local", "value": "1979-05-27"}
       }

FAIL valid/spec-1.0.0/local-date-time-0
     Malformed output from your encoder: key "ldt1" is not a datetime: "1979-5-27t 7:32: 0.0"

     input sent to parser-cmd (PID 16557):
       ldt1 = 1979-05-27T07:32:00
       ldt2 = 1979-05-27T00:32:00.999

     output from parser-cmd (PID 16557) (stdout):
       {
         "ldt1": {"type": "datetime-local", "value": "1979-5-27t 7:32: 0.0"},
         "ldt2": {"type": "datetime-local", "value": "1979-5-27t 0:32: 0.999000000"}
       }

     want:
       {
           "ldt1": {"type": "datetime-local", "value": "1979-05-27T07:32:00"},
           "ldt2": {"type": "datetime-local", "value": "1979-05-27T00:32:00.999"}
       }

FAIL valid/spec-1.0.0/local-time-0
     Malformed output from your encoder: key "lt1" is not a datetime: " 7:32: 0.0"

     input sent to parser-cmd (PID 16558):
       lt1 = 07:32:00
       lt2 = 00:32:00.999

     output from parser-cmd (PID 16558) (stdout):
       {
         "lt1": {"type": "time-local", "value": " 7:32: 0.0"},
         "lt2": {"type": "time-local", "value": " 0:32: 0.999000000"}
       }

     want:
       {
           "lt1": {"type": "time-local", "value": "07:32:00"},
           "lt2": {"type": "time-local", "value": "00:32:00.999"}
       }

FAIL valid/spec-1.0.0/offset-date-time-0
     Malformed output from your encoder: key "odt1" is not a datetime: "1979-5-27t 7:32: 0.0+ 0: 0"

     input sent to parser-cmd (PID 16559):
       odt1 = 1979-05-27T07:32:00Z
       odt2 = 1979-05-27T00:32:00-07:00
       odt3 = 1979-05-27T00:32:00.999-07:00

     output from parser-cmd (PID 16559) (stdout):
       {
         "odt1": {"type": "datetime", "value": "1979-5-27t 7:32: 0.0+ 0: 0"},
         "odt2": {"type": "datetime", "value": "1979-5-27t 0:32: 0.0- 7: 0"},
         "odt3": {"type": "datetime", "value": "1979-5-27t 0:32: 0.999000000- 7: 0"}
       }

     want:
       {
           "odt1": {"type": "datetime", "value": "1979-05-27T07:32:00Z"},
           "odt2": {"type": "datetime", "value": "1979-05-27T00:32:00-07:00"},
           "odt3": {"type": "datetime", "value": "1979-05-27T00:32:00.999-07:00"}
       }

FAIL valid/spec-1.0.0/offset-date-time-1
     Malformed output from your encoder: key "odt4" is not a datetime: "1979-5-27t 7:32: 0.0+ 0: 0"

     input sent to parser-cmd (PID 16560):
       odt4 = 1979-05-27 07:32:00Z

     output from parser-cmd (PID 16560) (stdout):
       {
         "odt4": {"type": "datetime", "value": "1979-5-27t 7:32: 0.0+ 0: 0"}
       }

     want:
       {
           "odt4": {"type": "datetime", "value": "1979-05-27T07:32:00Z"}
       }

FAIL valid/spec-1.0.0/table-7
     Malformed output from your encoder: key "owner.member_since" is not a datetime: "1999-8-4"

     input sent to parser-cmd (PID 16584):
       # Top-level table begins.
       name = "Fido"
       breed = "pug"

       # Top-level table ends.
       [owner]
       name = "Regina Dogman"
       member_since = 1999-08-04

     output from parser-cmd (PID 16584) (stdout):
       {
         "breed": {"type": "string", "value": "pug"},
         "name":  {"type": "string", "value": "Fido"},
         "owner": {
           "member_since": {"type": "date-local", "value": "1999-8-4"},
           "name":         {"type": "string", "value": "Regina Dogman"}
         }
       }

     want:
       {
           "breed": {"type": "string", "value": "pug"},
           "name":  {"type": "string", "value": "Fido"},
           "owner": {
               "member_since": {"type": "date-local", "value": "1999-08-04"},
               "name":         {"type": "string", "value": "Regina Dogman"}
           }
       }

FAIL valid/spec-example-1
     Malformed output from your encoder: key "owner.dob" is not a datetime: "1979-5-27t 7:32: 0.0- 8: 0"

     input sent to parser-cmd (PID 16588):
       # This is a TOML document. Boom.

       title = "TOML Example"

       [owner]
       name = "Lance Uppercut"
       dob = 1979-05-27T07:32:00-08:00 # First class dates? Why not?

       [database]
       server = "192.168.1.1"
       ports = [ 8001, 8001, 8002 ]
       connection_max = 5000
       enabled = true

       [servers]

         # You can indent as you please. Tabs or spaces. TOML don't care.
         [servers.alpha]
         ip = "10.0.0.1"
         dc = "eqdc10"

         [servers.beta]
         ip = "10.0.0.2"
         dc = "eqdc10"

       [clients]
       data = [ ["gamma", "delta"], [1, 2] ]

       # Line breaks are OK when inside arrays
       hosts = [
         "alpha",
         "omega"
       ]

     output from parser-cmd (PID 16588) (stdout):
       {
         "title": {"type": "string", "value": "TOML Example"},
         "clients": {
           "data": [
             [
               {"type": "string", "value": "gamma"},
               {"type": "string", "value": "delta"}
             ],
             [
               {"type": "integer", "value": "1"},
               {"type": "integer", "value": "2"}
             ]
           ],
           "hosts": [
             {"type": "string", "value": "alpha"},
             {"type": "string", "value": "omega"}
           ]
         },
         "database": {
           "connection_max": {"type": "integer", "value": "5000"},
           "enabled":        {"type": "bool", "value": "true"},
           "server":         {"type": "string", "value": "192.168.1.1"},
           "ports": [
             {"type": "integer", "value": "8001"},
             {"type": "integer", "value": "8001"},
             {"type": "integer", "value": "8002"}
           ]
         },
         "owner": {
           "dob":  {"type": "datetime", "value": "1979-5-27t 7:32: 0.0- 8: 0"},
           "name": {"type": "string", "value": "Lance Uppercut"}
         },
         "servers": {
           "alpha": {
             "dc": {"type": "string", "value": "eqdc10"},
             "ip": {"type": "string", "value": "10.0.0.1"}
           },
           "beta": {
             "dc": {"type": "string", "value": "eqdc10"},
             "ip": {"type": "string", "value": "10.0.0.2"}
           }
         }
       }

     want:
       {
           "title": {"type": "string", "value": "TOML Example"},
           "clients": {
               "data": [
                   [
                       {"type": "string", "value": "gamma"},
                       {"type": "string", "value": "delta"}
                   ],
                   [
                       {"type": "integer", "value": "1"},
                       {"type": "integer", "value": "2"}
                   ]
               ],
               "hosts": [
                   {"type": "string", "value": "alpha"},
                   {"type": "string", "value": "omega"}
               ]
           },
           "database": {
               "connection_max": {"type": "integer", "value": "5000"},
               "enabled":        {"type": "bool", "value": "true"},
               "server":         {"type": "string", "value": "192.168.1.1"},
               "ports": [
                   {"type": "integer", "value": "8001"},
                   {"type": "integer", "value": "8001"},
                   {"type": "integer", "value": "8002"}
               ]
           },
           "owner": {
               "dob":  {"type": "datetime", "value": "1979-05-27T07:32:00-08:00"},
               "name": {"type": "string", "value": "Lance Uppercut"}
           },
           "servers": {
               "alpha": {
                   "dc": {"type": "string", "value": "eqdc10"},
                   "ip": {"type": "string", "value": "10.0.0.1"}
               },
               "beta": {
                   "dc": {"type": "string", "value": "eqdc10"},
                   "ip": {"type": "string", "value": "10.0.0.2"}
               }
           }
       }

FAIL valid/spec-example-1-compact
     Malformed output from your encoder: key "owner.dob" is not a datetime: "1979-5-27t 7:32: 0.0- 8: 0"

     input sent to parser-cmd (PID 16585):
       #Useless spaces eliminated.
       title="TOML Example"
       [owner]
       name="Lance Uppercut"
       dob=1979-05-27T07:32:00-08:00#First class dates
       [database]
       server="192.168.1.1"
       ports=[8001,8001,8002]
       connection_max=5000
       enabled=true
       [servers]
       [servers.alpha]
       ip="10.0.0.1"
       dc="eqdc10"
       [servers.beta]
       ip="10.0.0.2"
       dc="eqdc10"
       [clients]
       data=[["gamma","delta"],[1,2]]
       hosts=[
       "alpha",
       "omega"
       ]

     output from parser-cmd (PID 16585) (stdout):
       {
         "title": {"type": "string", "value": "TOML Example"},
         "clients": {
           "data": [
             [
               {"type": "string", "value": "gamma"},
               {"type": "string", "value": "delta"}
             ],
             [
               {"type": "integer", "value": "1"},
               {"type": "integer", "value": "2"}
             ]
           ],
           "hosts": [
             {"type": "string", "value": "alpha"},
             {"type": "string", "value": "omega"}
           ]
         },
         "database": {
           "connection_max": {"type": "integer", "value": "5000"},
           "enabled":        {"type": "bool", "value": "true"},
           "server":         {"type": "string", "value": "192.168.1.1"},
           "ports": [
             {"type": "integer", "value": "8001"},
             {"type": "integer", "value": "8001"},
             {"type": "integer", "value": "8002"}
           ]
         },
         "owner": {
           "dob":  {"type": "datetime", "value": "1979-5-27t 7:32: 0.0- 8: 0"},
           "name": {"type": "string", "value": "Lance Uppercut"}
         },
         "servers": {
           "alpha": {
             "dc": {"type": "string", "value": "eqdc10"},
             "ip": {"type": "string", "value": "10.0.0.1"}
           },
           "beta": {
             "dc": {"type": "string", "value": "eqdc10"},
             "ip": {"type": "string", "value": "10.0.0.2"}
           }
         }
       }

     want:
       {
           "title": {"type": "string", "value": "TOML Example"},
           "clients": {
               "data": [
                   [
                       {"type": "string", "value": "gamma"},
                       {"type": "string", "value": "delta"}
                   ],
                   [
                       {"type": "integer", "value": "1"},
                       {"type": "integer", "value": "2"}
                   ]
               ],
               "hosts": [
                   {"type": "string", "value": "alpha"},
                   {"type": "string", "value": "omega"}
               ]
           },
           "database": {
               "connection_max": {"type": "integer", "value": "5000"},
               "enabled":        {"type": "bool", "value": "true"},
               "server":         {"type": "string", "value": "192.168.1.1"},
               "ports": [
                   {"type": "integer", "value": "8001"},
                   {"type": "integer", "value": "8001"},
                   {"type": "integer", "value": "8002"}
               ]
           },
           "owner": {
               "dob":  {"type": "datetime", "value": "1979-05-27T07:32:00-08:00"},
               "name": {"type": "string", "value": "Lance Uppercut"}
           },
           "servers": {
               "alpha": {
                   "dc": {"type": "string", "value": "eqdc10"},
                   "ip": {"type": "string", "value": "10.0.0.1"}
               },
               "beta": {
                   "dc": {"type": "string", "value": "eqdc10"},
                   "ip": {"type": "string", "value": "10.0.0.2"}
               }
           }
       }

FAIL invalid/array/extend-defined-aot
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16640):
       [[tab.arr]]
       [tab]
       arr.val1=1

     output from parser-cmd (PID 16640) (stdout):
       {
         "tab": {"arr": [{
           "val1": {"type": "integer", "value": "1"}
         }]}
       }

     want:
       Exit code 1

FAIL invalid/array/tables-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16668):
       # INVALID TOML DOC
       fruit = []

       [[fruit]] # Not allowed

     output from parser-cmd (PID 16668) (stdout):
       {
         "fruit": [{}]
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16692) (stdout):
       {}

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16696) (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 (PID 16701):
       comment-del  = "0x7f"   # 

     output from parser-cmd (PID 16701) (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 (PID 16699):
       comment-ff   = "0x7f"   # 

     output from parser-cmd (PID 16699) (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 (PID 16703):
       comment-lf   = "ctrl-P" # 

     output from parser-cmd (PID 16703) (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 (PID 16700):
       comment-null = "null"   # 

     output from parser-cmd (PID 16700) (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 (PID 16702):
       comment-us   = "ctrl-_" # 

     output from parser-cmd (PID 16702) (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 (PID 16698):
       multi-cr   = """null
"""

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16704):
       multi-del  = """null"""

     output from parser-cmd (PID 16704) (stdout):
       {
         "multi-del": {"type": "string", "value": "null"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16705):
       multi-lf   = """null"""

     output from parser-cmd (PID 16705) (stdout):
       {
         "multi-lf": {"type": "string", "value": "null\u0010"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16706):
       multi-null = """null"""

     output from parser-cmd (PID 16706) (stdout):
       {
         "multi-null": {"type": "string", "value": "null\u0000"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16707):
       multi-us   = """null"""

     output from parser-cmd (PID 16707) (stdout):
       {
         "multi-us": {"type": "string", "value": "null\u001f"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16711):
       rawmulti-cr   = '''null
'''

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16712):
       rawmulti-del  = '''null'''

     output from parser-cmd (PID 16712) (stdout):
       {
         "rawmulti-del": {"type": "string", "value": "null"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16713):
       rawmulti-lf   = '''null'''

     output from parser-cmd (PID 16713) (stdout):
       {
         "rawmulti-lf": {"type": "string", "value": "null\u0010"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16714):
       rawmulti-null = '''null'''

     output from parser-cmd (PID 16714) (stdout):
       {
         "rawmulti-null": {"type": "string", "value": "null\u0000"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16715):
       rawmulti-us   = '''null'''

     output from parser-cmd (PID 16715) (stdout):
       {
         "rawmulti-us": {"type": "string", "value": "null\u001f"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16727):
       rawstring-cr   = 'null
'

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16716):
       rawstring-del  = 'null'

     output from parser-cmd (PID 16716) (stdout):
       {
         "rawstring-del": {"type": "string", "value": "null"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16728):
       rawstring-lf   = 'null'

     output from parser-cmd (PID 16728) (stdout):
       {
         "rawstring-lf": {"type": "string", "value": "null\u0010"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16719):
       rawstring-null = 'null'

     output from parser-cmd (PID 16719) (stdout):
       {
         "rawstring-null": {"type": "string", "value": "null\u0000"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16718):
       rawstring-us   = 'null'

     output from parser-cmd (PID 16718) (stdout):
       {
         "rawstring-us": {"type": "string", "value": "null\u001f"}
       }

     want:
       Exit code 1

FAIL invalid/control/string-bs
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16717):
       string-bs   = "backspace"

     output from parser-cmd (PID 16717) (stdout):
       {
         "string-bs": {"type": "string", "value": "backspace\b"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16720):
       string-cr   = "null
"

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16723):
       string-del  = "null"

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16722):
       string-lf   = "null"

     output from parser-cmd (PID 16722) (stdout):
       {
         "string-lf": {"type": "string", "value": "null\u0010"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16721):
       string-null = "null"

     output from parser-cmd (PID 16721) (stdout):
       {
         "string-null": {"type": "string", "value": "null\u0000"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16725):
       string-us   = "null"

     output from parser-cmd (PID 16725) (stdout):
       {
         "string-us": {"type": "string", "value": "null\u001f"}
       }

     want:
       Exit code 1

FAIL invalid/datetime/day-zero
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16724):
       foo = 1997-09-00T09:09:09.09Z

     output from parser-cmd (PID 16724) (stdout):
       {
         "foo": {"type": "datetime", "value": "1997-9-0t 9: 9: 9.90000000+ 0: 0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16726) (stdout):
       {
         "not a leap year": {"type": "datetime", "value": "2100-2-29t15:15:15.0+ 0: 0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16729) (stdout):
       {
         "only 28 or 29 days in february": {"type": "datetime", "value": "1988-2-30t15:15:15.0+ 0: 0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16731) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-1-1t24: 0: 0.0+ 0: 0"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16730):
       # 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 (PID 16730) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-1-32t 0: 0: 0.0+ 0: 0"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16735):
       # 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 (PID 16735) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-1-0t 0: 0: 0.0+ 0: 0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16734) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-1-1t 0:60: 0.0+ 0: 0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16733) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-13-1t 0: 0: 0.0+ 0: 0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16736) (stdout):
       {
         "d": {"type": "datetime", "value": "2007-0-1t 0: 0: 0.0+ 0: 0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16748) (stdout):
       {
         "d": {"type": "datetime", "value": "1985-6-18t17: 4: 7.0+25: 0"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16749):
       # 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 (PID 16749) (stdout):
       {
         "d": {"type": "datetime", "value": "1985-6-18t17: 4: 7.0+12:61"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16756):
       # 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 (PID 16756) (stdout):
       {
         "d": {"type": "datetime", "value": "2006-1-1t 0: 0:61.0+ 0: 0"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16758):
       foo = 1997-09-09T09:09:09.

     output from parser-cmd (PID 16758) (stdout):
       {
         "foo": {"type": "datetime-local", "value": "1997-9-9t 9: 9: 9.0"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16757):
       foo = 2016-09-09T09:09:09.Z

     output from parser-cmd (PID 16757) (stdout):
       {
         "foo": {"type": "datetime", "value": "2016-9-9t 9: 9: 9.0+ 0: 0"}
       }

     want:
       Exit code 1

FAIL invalid/encoding/ideographic-space
     signal: aborted

     input sent to parser-cmd (PID 16773):
       # First on next line is U+3000 IDEOGRAPHIC SPACE
        foo = "bar"

     output from parser-cmd (PID 16773) (stderr):
       thread 'main' panicked at /home/martin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/boml-1.0.1/src/text.rs:215:21:
       byte index 50 is not a char boundary; it is inside '\u{3000}' (bytes 49..52) of `# First on next line is U+3000 IDEOGRAPHIC SPACE
        foo = "bar"
       `
       note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

     want:
       Exit code 1

FAIL invalid/float/exp-dot-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16782):
       exp-point-2 = 1.e2

     output from parser-cmd (PID 16782) (stdout):
       {
         "exp-point-2": {"type": "float", "value": "100.0"}
       }

     want:
       Exit code 1

FAIL invalid/float/exp-dot-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16783):
       exp-point-3 = 3.e+20

     output from parser-cmd (PID 16783) (stdout):
       {
         "exp-point-3": {"type": "float", "value": "3e20"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16788):
       exp-double-us = 1e__23

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16789):
       exp-leading-us = 1e_23

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16791):
       exp-point-2 = 1.e2

     output from parser-cmd (PID 16791) (stdout):
       {
         "exp-point-2": {"type": "float", "value": "100.0"}
       }

     want:
       Exit code 1

FAIL invalid/float/exp-point-3
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16792):
       exp-point-3 = 3.e+20

     output from parser-cmd (PID 16792) (stdout):
       {
         "exp-point-3": {"type": "float", "value": "3e20"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16797):
       exp-trailing-us = 1e23_

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16793):
       exp-trailing-us-1 = 1_e2

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16794):
       exp-trailing-us-2 = 1.2_e2

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16795):
       exp-trailing-us-1 = 1_e2

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16796):
       exp-trailing-us-2 = 1.2_e2

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

     want:
       Exit code 1

FAIL invalid/float/leading-dot-neg
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16805):
       leading-point-neg = -.12345

     output from parser-cmd (PID 16805) (stdout):
       {
         "leading-point-neg": {"type": "float", "value": "-0.12345"}
       }

     want:
       Exit code 1

FAIL invalid/float/leading-dot-plus
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16811):
       leading-point-plus = +.12345

     output from parser-cmd (PID 16811) (stdout):
       {
         "leading-point-plus": {"type": "float", "value": "0.12345"}
       }

     want:
       Exit code 1

FAIL invalid/float/leading-point-neg
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16806):
       leading-point-neg = -.12345

     output from parser-cmd (PID 16806) (stdout):
       {
         "leading-point-neg": {"type": "float", "value": "-0.12345"}
       }

     want:
       Exit code 1

FAIL invalid/float/leading-point-plus
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16808):
       leading-point-plus = +.12345

     output from parser-cmd (PID 16808) (stdout):
       {
         "leading-point-plus": {"type": "float", "value": "0.12345"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-dot-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16827):
       trailing-point = 1.

     output from parser-cmd (PID 16827) (stdout):
       {
         "trailing-point": {"type": "float", "value": "1.0"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-dot-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16829):
       a = 1.
       b = 2

     output from parser-cmd (PID 16829) (stdout):
       {
         "a": {"type": "float", "value": "1.0"},
         "b": {"type": "integer", "value": "2"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-dot-min
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16834):
       trailing-point-min = -1.

     output from parser-cmd (PID 16834) (stdout):
       {
         "trailing-point-min": {"type": "float", "value": "-1.0"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-dot-plus
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16824):
       trailing-point-plus = +1.

     output from parser-cmd (PID 16824) (stdout):
       {
         "trailing-point-plus": {"type": "float", "value": "1.0"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-point
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16833):
       trailing-point = 1.

     output from parser-cmd (PID 16833) (stdout):
       {
         "trailing-point": {"type": "float", "value": "1.0"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-point-min
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16831):
       trailing-point-min = -1.

     output from parser-cmd (PID 16831) (stdout):
       {
         "trailing-point-min": {"type": "float", "value": "-1.0"}
       }

     want:
       Exit code 1

FAIL invalid/float/trailing-point-plus
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16832):
       trailing-point-plus = +1.

     output from parser-cmd (PID 16832) (stdout):
       {
         "trailing-point-plus": {"type": "float", "value": "1.0"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16837):
       trailing-us = 1.2_

     output from parser-cmd (PID 16837) (stdout):
       {
         "trailing-us": {"type": "float", "value": "1.2"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16835):
       trailing-us-exp-1 = 1_e2

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16836):
       trailing-us-exp-2 = 1.2_e2

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

     want:
       Exit code 1

FAIL invalid/float/us-after-dot
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16839):
       us-after-point = 1._2

     output from parser-cmd (PID 16839) (stdout):
       {
         "us-after-point": {"type": "float", "value": "1.2"}
       }

     want:
       Exit code 1

FAIL invalid/float/us-after-point
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16838):
       us-after-point = 1._2

     output from parser-cmd (PID 16838) (stdout):
       {
         "us-after-point": {"type": "float", "value": "1.2"}
       }

     want:
       Exit code 1

FAIL invalid/float/us-before-dot
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16840):
       us-before-point = 1_.2

     output from parser-cmd (PID 16840) (stdout):
       {
         "us-before-point": {"type": "float", "value": "1.2"}
       }

     want:
       Exit code 1

FAIL invalid/float/us-before-point
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16842):
       us-before-point = 1_.2

     output from parser-cmd (PID 16842) (stdout):
       {
         "us-before-point": {"type": "float", "value": "1.2"}
       }

     want:
       Exit code 1

FAIL invalid/inline-table/duplicate-key-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16844):
       tbl = { fruit = { apple.color = "red" }, fruit.apple.texture = { smooth = true } }

     output from parser-cmd (PID 16844) (stdout):
       {
         "tbl": {
           "fruit": {
             "apple": {
               "color": {"type": "string", "value": "red"},
               "texture": {
                 "smooth": {"type": "bool", "value": "true"}
               }
             }
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/inline-table/linebreak-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16849):
       # No newlines are allowed between the curly braces unless they are valid within
       # a value.
       simple = { a = 1
       }

     output from parser-cmd (PID 16849) (stdout):
       {
         "simple": {
           "a": {"type": "integer", "value": "1"}
         }
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16848):
       t = {a=1,
       b=2}

     output from parser-cmd (PID 16848) (stdout):
       {
         "t": {
           "a": {"type": "integer", "value": "1"},
           "b": {"type": "integer", "value": "2"}
         }
       }

     want:
       Exit code 1

FAIL invalid/inline-table/linebreak-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16854):
       t = {a=1
       ,b=2}

     output from parser-cmd (PID 16854) (stdout):
       {
         "t": {
           "a": {"type": "integer", "value": "1"},
           "b": {"type": "integer", "value": "2"}
         }
       }

     want:
       Exit code 1

FAIL invalid/inline-table/linebreak-04
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16851):
       json_like = {
                 first = "Tom",
                 last = "Preston-Werner"
       }

     output from parser-cmd (PID 16851) (stdout):
       {
         "json_like": {
           "first": {"type": "string", "value": "Tom"},
           "last":  {"type": "string", "value": "Preston-Werner"}
         }
       }

     want:
       Exit code 1

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

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

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16863):
       inline-t = { nest = {} }

       [inline-t.nest]

     output from parser-cmd (PID 16863) (stdout):
       {
         "inline-t": {
           "nest": {}
         }
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16866):
       tab = { inner = { dog = "best" }, inner.cat = "worst" }

     output from parser-cmd (PID 16866) (stdout):
       {
         "tab": {
           "inner": {
             "cat": {"type": "string", "value": "worst"},
             "dog": {"type": "string", "value": "best"}
           }
         }
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16869):
       # 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 (PID 16869) (stdout):
       {
         "abc": {
           "abc": {"type": "integer", "value": "123"}
         }
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16880):
       double-us = 1__23

     output from parser-cmd (PID 16880) (stdout):
       {
         "double-us": {"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 (PID 16882):
       incomplete-bin = 0b

     output from parser-cmd (PID 16882) (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 (PID 16881):
       incomplete-hex = 0x

     output from parser-cmd (PID 16881) (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 (PID 16876):
       incomplete-oct = 0o

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16877):
       invalid-bin = 0b0012

     output from parser-cmd (PID 16877) (stdout):
       {
         "invalid-bin": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16879):
       invalid-hex-1 = 0xaafz

     output from parser-cmd (PID 16879) (stdout):
       {
         "invalid-hex-1": {"type": "integer", "value": "2735"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16875):
       invalid-hex-2 = 0xgabba00f1

     output from parser-cmd (PID 16875) (stdout):
       {
         "invalid-hex-2": {"type": "integer", "value": "2881093873"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16883):
       a = 0x-1

     output from parser-cmd (PID 16883) (stdout):
       {
         "a": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16878):
       invalid-hex-1 = 0xaafz

     output from parser-cmd (PID 16878) (stdout):
       {
         "invalid-hex-1": {"type": "integer", "value": "2735"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16884):
       invalid-hex-2 = 0xgabba00f1

     output from parser-cmd (PID 16884) (stdout):
       {
         "invalid-hex-2": {"type": "integer", "value": "2881093873"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16885):
       invalid-oct = 0o778

     output from parser-cmd (PID 16885) (stdout):
       {
         "invalid-oct": {"type": "integer", "value": "63"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16903):
       negative-bin = -0b11010110

     output from parser-cmd (PID 16903) (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 (PID 16902):
       negative-hex = -0xff

     output from parser-cmd (PID 16902) (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 (PID 16905):
       negative-oct = -0o755

     output from parser-cmd (PID 16905) (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 (PID 16904):
       positive-bin = +0b11010110

     output from parser-cmd (PID 16904) (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 (PID 16906):
       positive-hex = +0xff

     output from parser-cmd (PID 16906) (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 (PID 16907):
       positive-oct = +0o755

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16912):
       trailing-us = 123_

     output from parser-cmd (PID 16912) (stdout):
       {
         "trailing-us": {"type": "integer", "value": "123"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16910):
       trailing-us-bin = 0b1_

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16909):
       trailing-us-hex = 0x1_

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16911):
       trailing-us-oct = 0o1_

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

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16915):
       us-after-bin = 0b_1

     output from parser-cmd (PID 16915) (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 (PID 16913):
       us-after-hex = 0x_1

     output from parser-cmd (PID 16913) (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 (PID 16914):
       us-after-oct = 0o_1

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

     want:
       Exit code 1

FAIL invalid/key/after-array
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16916):
       [[agencies]] owner = "S Cjelli"

     output from parser-cmd (PID 16916) (stdout):
       {
         "agencies": [{
           "owner": {"type": "string", "value": "S Cjelli"}
         }]
       }

     want:
       Exit code 1

FAIL invalid/key/after-table
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16917):
       [error] this = "should not be here"

     output from parser-cmd (PID 16917) (stdout):
       {
         "error": {
           "this": {"type": "string", "value": "should not be here"}
         }
       }

     want:
       Exit code 1

FAIL invalid/key/after-value
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16918):
       first = "Tom" last = "Preston-Werner" # INVALID

     output from parser-cmd (PID 16918) (stdout):
       {
         "first": {"type": "string", "value": "Tom"},
         "last":  {"type": "string", "value": "Preston-Werner"}
       }

     want:
       Exit code 1

FAIL invalid/key/newline-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16941):
       barekey
          = 1

     output from parser-cmd (PID 16941) (stdout):
       {
         "barekey": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/key/newline-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16940):
       "quoted
       key" = 1

     output from parser-cmd (PID 16940) (stdout):
       {
         "quoted\nkey": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/key/newline-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16942):
       'quoted
       key' = 1

     output from parser-cmd (PID 16942) (stdout):
       {
         "quoted\nkey": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/key/newline-06
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16950):
       key =
       1

     output from parser-cmd (PID 16950) (stdout):
       {
         "key": {"type": "integer", "value": "1"}
       }

     want:
       Exit code 1

FAIL invalid/key/no-eol-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16954):
       a = 1 b = 2

     output from parser-cmd (PID 16954) (stdout):
       {
         "a": {"type": "integer", "value": "1"},
         "b": {"type": "integer", "value": "2"}
       }

     want:
       Exit code 1

FAIL invalid/key/no-eol-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16953):
       0=""o=""m=""r=""00="0"q="""0"""e="""0"""

     output from parser-cmd (PID 16953) (stdout):
       {
         "0":  {"type": "string", "value": ""},
         "00": {"type": "string", "value": "0"},
         "e":  {"type": "string", "value": "0"},
         "m":  {"type": "string", "value": ""},
         "o":  {"type": "string", "value": ""},
         "q":  {"type": "string", "value": "0"},
         "r":  {"type": "string", "value": ""}
       }

     want:
       Exit code 1

FAIL invalid/key/no-eol-04
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16945):
       [[0000l0]]
       0="0"[[0000l0]]
       0="0"[[0000l0]]
       0="0"l="0"

     output from parser-cmd (PID 16945) (stdout):
       {
         "0000l0": [
           {
             "0": {"type": "string", "value": "0"}
           },
           {
             "0": {"type": "string", "value": "0"}
           },
           {
             "0": {"type": "string", "value": "0"},
             "l": {"type": "string", "value": "0"}
           }
         ]
       }

     want:
       Exit code 1

FAIL invalid/key/no-eol-05
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16952):
       0=[0]00=[0,0,0]t=["0","0","0"]s=[1000-00-00T00:00:00Z,2000-00-00T00:00:00Z]

     output from parser-cmd (PID 16952) (stdout):
       {
         "0": [{"type": "integer", "value": "0"}],
         "00": [
           {"type": "integer", "value": "0"},
           {"type": "integer", "value": "0"},
           {"type": "integer", "value": "0"}
         ],
         "s": [
           {"type": "datetime", "value": "1000-0-0t 0: 0: 0.0+ 0: 0"},
           {"type": "datetime", "value": "2000-0-0t 0: 0: 0.0+ 0: 0"}
         ],
         "t": [
           {"type": "string", "value": "0"},
           {"type": "string", "value": "0"},
           {"type": "string", "value": "0"}
         ]
       }

     want:
       Exit code 1

FAIL invalid/key/special-character
     signal: aborted

     input sent to parser-cmd (PID 16962):
       μ = "greek small letter mu"

     output from parser-cmd (PID 16962) (stderr):
       thread 'main' panicked at /home/martin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/boml-1.0.1/src/text.rs:215:21:
       byte index 1 is not a char boundary; it is inside 'μ' (bytes 0..2) of `μ = "greek small letter mu"
       `
       note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

     want:
       Exit code 1

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

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

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

     want:
       Exit code 1

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

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

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

     want:
       Exit code 1

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

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

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

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16977) (stdout):
       {
         "d": {"type": "date-local", "value": "2006-1-0"}
       }

     want:
       Exit code 1

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

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

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

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16983) (stdout):
       {
         "d": {"type": "date-local", "value": "2007-0-1"}
       }

     want:
       Exit code 1

FAIL invalid/local-date/trailing-t
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 16984):
       # Date cannot end with trailing T
       d = 2006-01-30T

     output from parser-cmd (PID 16984) (stdout):
       {
         "d": {"type": "date-local", "value": "2006-1-30"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16985) (stdout):
       {
         "not a leap year": {"type": "datetime-local", "value": "2100-2-29t15:15:15.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 17002) (stdout):
       {
         "only 28 or 29 days in february": {"type": "datetime-local", "value": "1988-2-30t15:15:15.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16988) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-1-1t24: 0: 0.0"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16990):
       # 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 (PID 16990) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-1-32t 0: 0: 0.0"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 16992):
       # 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 (PID 16992) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-1-0t 0: 0: 0.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16996) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-1-1t 0:60: 0.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16989) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-13-1t 0: 0: 0.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16991) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2007-0-1t 0: 0: 0.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 16997) (stdout):
       {
         "d": {"type": "datetime-local", "value": "2006-1-1t 0: 0:61.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 17001) (stdout):
       {
         "d": {"type": "time-local", "value": "24: 0: 0.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 17003) (stdout):
       {
         "d": {"type": "time-local", "value": " 0:60: 0.0"}
       }

     want:
       Exit code 1

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

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

     output from parser-cmd (PID 17005) (stdout):
       {
         "d": {"type": "time-local", "value": " 0: 0:61.0"}
       }

     want:
       Exit code 1

FAIL invalid/local-time/trailing-dot
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17007):
       t = 12:13:14.

     output from parser-cmd (PID 17007) (stdout):
       {
         "t": {"type": "time-local", "value": "12:13:14.0"}
       }

     want:
       Exit code 1

FAIL invalid/spec-1.0.0/inline-table-2-0
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17015):
       [product]
       type = { name = "Nail" }
       type.edible = false  # INVALID

     output from parser-cmd (PID 17015) (stdout):
       {
         "product": {
           "type": {
             "edible": {"type": "bool", "value": "false"},
             "name":   {"type": "string", "value": "Nail"}
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/spec-1.0.0/table-9-0
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17013):
       [fruit]
       apple.color = "red"
       apple.taste.sweet = true

       [fruit.apple]  # INVALID
       # [fruit.apple.taste]  # INVALID

       [fruit.apple.texture]  # you can add sub-tables
       smooth = true

     output from parser-cmd (PID 17013) (stdout):
       {
         "fruit": {
           "apple": {
             "color": {"type": "string", "value": "red"},
             "taste": {
               "sweet": {"type": "bool", "value": "true"}
             },
             "texture": {
               "smooth": {"type": "bool", "value": "true"}
             }
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/spec-1.0.0/table-9-1
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17014):
       [fruit]
       apple.color = "red"
       apple.taste.sweet = true

       # [fruit.apple]  # INVALID
       [fruit.apple.taste]  # INVALID

       [fruit.apple.texture]  # you can add sub-tables
       smooth = true

     output from parser-cmd (PID 17014) (stdout):
       {
         "fruit": {
           "apple": {
             "color": {"type": "string", "value": "red"},
             "taste": {
               "sweet": {"type": "bool", "value": "true"}
             },
             "texture": {
               "smooth": {"type": "bool", "value": "true"}
             }
           }
         }
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 17028):
       multi = "first line
       second line"

     output from parser-cmd (PID 17028) (stdout):
       {
         "multi": {"type": "string", "value": "first line\nsecond line"}
       }

     want:
       Exit code 1

FAIL invalid/string/multiline-bad-escape-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17068):
       # \ is not a valid escape.
       k = """t\ t"""

     output from parser-cmd (PID 17068) (stdout):
       {
         "k": {"type": "string", "value": "tt"}
       }

     want:
       Exit code 1

FAIL invalid/string/multiline-bad-escape-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17072):
       # \ is not a valid escape.
       k = """t\ """

     output from parser-cmd (PID 17072) (stdout):
       {
         "k": {"type": "string", "value": "t"}
       }

     want:
       Exit code 1

FAIL invalid/string/multiline-escape-space-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17073):
       a = """
         foo \ \n
         bar"""

     output from parser-cmd (PID 17073) (stdout):
       {
         "a": {"type": "string", "value": "  foo \n\n  bar"}
       }

     want:
       Exit code 1

FAIL invalid/string/multiline-escape-space-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17074):
       bee = """
       hee \

       gee \   """

     output from parser-cmd (PID 17074) (stdout):
       {
         "bee": {"type": "string", "value": "hee gee "}
       }

     want:
       Exit code 1

FAIL invalid/string/no-close-09
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17092):
       # Newlines are not allowed in "-strings.
       a = "
       "

     output from parser-cmd (PID 17092) (stdout):
       {
         "a": {"type": "string", "value": "\n"}
       }

     want:
       Exit code 1

FAIL invalid/string/no-close-10
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17088):
       # Newlines are not allowed in '-strings.
       a = '
       '

     output from parser-cmd (PID 17088) (stdout):
       {
         "a": {"type": "string", "value": "\n"}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 17107):
       # 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 (PID 17107) (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-02
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17108):
       # 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 (PID 17108) (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

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

     input sent to parser-cmd (PID 17109):
       [[a.b]]

       [a]
       b.y = 2

     output from parser-cmd (PID 17109) (stdout):
       {
         "a": {"b": [{
           "y": {"type": "integer", "value": "2"}
         }]}
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 17110):
       [dependencies.foo]
       version = "0.16"

       [dependencies]
       libc = "0.2"

       [dependencies]
       rand = "0.3.14"

     output from parser-cmd (PID 17110) (stdout):
       {
         "dependencies": {
           "libc": {"type": "string", "value": "0.2"},
           "rand": {"type": "string", "value": "0.3.14"},
           "foo": {
             "version": {"type": "string", "value": "0.16"}
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/duplicate-key-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17124):
       [a]
       b = 1

       [a]
       c = 2

     output from parser-cmd (PID 17124) (stdout):
       {
         "a": {
           "b": {"type": "integer", "value": "1"},
           "c": {"type": "integer", "value": "2"}
         }
       }

     want:
       Exit code 1

FAIL invalid/table/duplicate-key-04
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17127):
       [fruit]
       apple.color = "red"

       [fruit.apple] # INVALID

     output from parser-cmd (PID 17127) (stdout):
       {
         "fruit": {
           "apple": {
             "color": {"type": "string", "value": "red"}
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/duplicate-key-05
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17125):
       [fruit]
       apple.taste.sweet = true

       [fruit.apple.taste] # INVALID

     output from parser-cmd (PID 17125) (stdout):
       {
         "fruit": {
           "apple": {
             "taste": {
               "sweet": {"type": "bool", "value": "true"}
             }
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/duplicate-key-09
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17145):
       [a]
       foo="bar"
       [a.b]
       foo="bar"
       [a]

     output from parser-cmd (PID 17145) (stdout):
       {
         "a": {
           "foo": {"type": "string", "value": "bar"},
           "b": {
             "foo": {"type": "string", "value": "bar"}
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/newline-01
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17137):
       [tbl
       ]
       k = 1

     output from parser-cmd (PID 17137) (stdout):
       {
         "tbl": {
           "k": {"type": "integer", "value": "1"}
         }
       }

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 17141):
       ["tbl
       "]
       k = 1

     output from parser-cmd (PID 17141) (stdout):
       {
         "tbl\n": {
           "k": {"type": "integer", "value": "1"}
         }
       }

     want:
       Exit code 1

FAIL invalid/table/newline-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17147):
       ["tbl"
       ]
       k = 1

     output from parser-cmd (PID 17147) (stdout):
       {
         "tbl": {
           "k": {"type": "integer", "value": "1"}
         }
       }

     want:
       Exit code 1

FAIL invalid/table/newline-05
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17144):
       [tbl
       .sub]
       k = 1

     output from parser-cmd (PID 17144) (stdout):
       {
         "tbl": {
           "sub": {
             "k": {"type": "integer", "value": "1"}
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/no-close-02
     signal: aborted

     input sent to parser-cmd (PID 17149):
       [closing-bracket.missingö
       blaa=2

     output from parser-cmd (PID 17149) (stderr):
       thread 'main' panicked at /home/martin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/boml-1.0.1/src/text.rs:215:21:
       byte index 25 is not a char boundary; it is inside 'ö' (bytes 24..26) of `[closing-bracket.missingö
       blaa=2
       `
       note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

     want:
       Exit code 1

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

     input sent to parser-cmd (PID 17162):
       [t1]
       t2.t3.v = 0
       [t1.t2]

     output from parser-cmd (PID 17162) (stdout):
       {
         "t1": {
           "t2": {
             "t3": {
               "v": {"type": "integer", "value": "0"}
             }
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/redefine-03
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17161):
       [t1]
       t2.t3.v = 0
       [t1.t2.t3]

     output from parser-cmd (PID 17161) (stdout):
       {
         "t1": {
           "t2": {
             "t3": {
               "v": {"type": "integer", "value": "0"}
             }
           }
         }
       }

     want:
       Exit code 1

FAIL invalid/table/super-twice
     Expected an error, but no error was reported.

     input sent to parser-cmd (PID 17164):
       [a.b]
       [a]
       [a]

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

     want:
       Exit code 1

toml-test v2025-04-23 [./scripts/target/release/boml-decoder]: using embedded tests
  valid tests: 185 passed, 20 failed
invalid tests: 364 passed, 165 failed

==> ENCODER TESTS
(not supported)
took 0.1 0.04