Use a fork of the official toml-test repo for tests.
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..9c1a612
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "test/toml-test"]
+	path = test/toml-test
+	url = https://github.com/avakar/toml-test.git
diff --git a/test/invalid/array-mixed-types-arrays-and-ints.toml b/test/invalid/array-mixed-types-arrays-and-ints.toml
deleted file mode 100644
index 051ec73..0000000
--- a/test/invalid/array-mixed-types-arrays-and-ints.toml
+++ /dev/null
@@ -1 +0,0 @@
-arrays-and-ints =  [1, ["Arrays are not integers."]]
diff --git a/test/invalid/array-mixed-types-ints-and-floats.toml b/test/invalid/array-mixed-types-ints-and-floats.toml
deleted file mode 100644
index a5aa9b7..0000000
--- a/test/invalid/array-mixed-types-ints-and-floats.toml
+++ /dev/null
@@ -1 +0,0 @@
-ints-and-floats = [1, 1.1]
diff --git a/test/invalid/array-mixed-types-strings-and-ints.toml b/test/invalid/array-mixed-types-strings-and-ints.toml
deleted file mode 100644
index f348308..0000000
--- a/test/invalid/array-mixed-types-strings-and-ints.toml
+++ /dev/null
@@ -1 +0,0 @@
-strings-and-ints = ["hi", 42]
diff --git a/test/invalid/datetime-malformed-no-leads.toml b/test/invalid/datetime-malformed-no-leads.toml
deleted file mode 100644
index 123f173..0000000
--- a/test/invalid/datetime-malformed-no-leads.toml
+++ /dev/null
@@ -1 +0,0 @@
-no-leads = 1987-7-05T17:45:00Z
diff --git a/test/invalid/datetime-malformed-no-secs.toml b/test/invalid/datetime-malformed-no-secs.toml
deleted file mode 100644
index ba93900..0000000
--- a/test/invalid/datetime-malformed-no-secs.toml
+++ /dev/null
@@ -1 +0,0 @@
-no-secs = 1987-07-05T17:45Z
diff --git a/test/invalid/datetime-malformed-no-t.toml b/test/invalid/datetime-malformed-no-t.toml
deleted file mode 100644
index 617e3c5..0000000
--- a/test/invalid/datetime-malformed-no-t.toml
+++ /dev/null
@@ -1 +0,0 @@
-no-t = 1987-07-0517:45:00Z
diff --git a/test/invalid/datetime-malformed-no-z.toml b/test/invalid/datetime-malformed-no-z.toml
deleted file mode 100644
index cf66b1e..0000000
--- a/test/invalid/datetime-malformed-no-z.toml
+++ /dev/null
@@ -1 +0,0 @@
-no-z = 1987-07-05T17:45:00
diff --git a/test/invalid/datetime-malformed-with-milli.toml b/test/invalid/datetime-malformed-with-milli.toml
deleted file mode 100644
index eef792f..0000000
--- a/test/invalid/datetime-malformed-with-milli.toml
+++ /dev/null
@@ -1 +0,0 @@
-with-milli = 1987-07-5T17:45:00.12Z
diff --git a/test/invalid/duplicate-key-table.toml b/test/invalid/duplicate-key-table.toml
deleted file mode 100644
index cedf05f..0000000
--- a/test/invalid/duplicate-key-table.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-[fruit]
-type = "apple"
-
-[fruit.type]
-apple = "yes"
diff --git a/test/invalid/duplicate-keys.toml b/test/invalid/duplicate-keys.toml
deleted file mode 100644
index 9b5aee0..0000000
--- a/test/invalid/duplicate-keys.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-dupe = false
-dupe = true
diff --git a/test/invalid/duplicate-tables.toml b/test/invalid/duplicate-tables.toml
deleted file mode 100644
index 8ddf49b..0000000
--- a/test/invalid/duplicate-tables.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[a]
-[a]
diff --git a/test/invalid/empty-implicit-table.toml b/test/invalid/empty-implicit-table.toml
deleted file mode 100644
index 0cc36d0..0000000
--- a/test/invalid/empty-implicit-table.toml
+++ /dev/null
@@ -1 +0,0 @@
-[naughty..naughty]
diff --git a/test/invalid/empty-table.toml b/test/invalid/empty-table.toml
deleted file mode 100644
index fe51488..0000000
--- a/test/invalid/empty-table.toml
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/test/invalid/float-no-leading-zero.toml b/test/invalid/float-no-leading-zero.toml
deleted file mode 100644
index cab76bf..0000000
--- a/test/invalid/float-no-leading-zero.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-answer = .12345
-neganswer = -.12345
diff --git a/test/invalid/float-no-trailing-digits.toml b/test/invalid/float-no-trailing-digits.toml
deleted file mode 100644
index cbff2d0..0000000
--- a/test/invalid/float-no-trailing-digits.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-answer = 1.
-neganswer = -1.
diff --git a/test/invalid/key-after-table.toml b/test/invalid/key-after-table.toml
deleted file mode 100644
index 6886784..0000000
--- a/test/invalid/key-after-table.toml
+++ /dev/null
@@ -1 +0,0 @@
-[error] this = "should not be here"
diff --git a/test/invalid/key-empty.toml b/test/invalid/key-empty.toml
deleted file mode 100644
index 09f998f..0000000
--- a/test/invalid/key-empty.toml
+++ /dev/null
@@ -1 +0,0 @@
- = 1
diff --git a/test/invalid/key-hash.toml b/test/invalid/key-hash.toml
deleted file mode 100644
index e321b1f..0000000
--- a/test/invalid/key-hash.toml
+++ /dev/null
@@ -1 +0,0 @@
-a# = 1
diff --git a/test/invalid/key-newline.toml b/test/invalid/key-newline.toml
deleted file mode 100644
index 707aad5..0000000
--- a/test/invalid/key-newline.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-a
-= 1
diff --git a/test/invalid/key-no-eol.toml b/test/invalid/key-no-eol.toml
deleted file mode 100644
index 3c58eee..0000000
--- a/test/invalid/key-no-eol.toml
+++ /dev/null
@@ -1 +0,0 @@
-a = 1 b = 2
diff --git a/test/invalid/key-open-bracket.toml b/test/invalid/key-open-bracket.toml
deleted file mode 100644
index f0aeb16..0000000
--- a/test/invalid/key-open-bracket.toml
+++ /dev/null
@@ -1 +0,0 @@
-[abc = 1
diff --git a/test/invalid/key-single-open-bracket.toml b/test/invalid/key-single-open-bracket.toml
deleted file mode 100644
index 8e2f0be..0000000
--- a/test/invalid/key-single-open-bracket.toml
+++ /dev/null
@@ -1 +0,0 @@
-[
\ No newline at end of file
diff --git a/test/invalid/key-space.toml b/test/invalid/key-space.toml
deleted file mode 100644
index 201806d..0000000
--- a/test/invalid/key-space.toml
+++ /dev/null
@@ -1 +0,0 @@
-a b = 1
\ No newline at end of file
diff --git a/test/invalid/key-start-bracket.toml b/test/invalid/key-start-bracket.toml
deleted file mode 100644
index e0597ae..0000000
--- a/test/invalid/key-start-bracket.toml
+++ /dev/null
@@ -1,3 +0,0 @@
-[a]
-[xyz = 5
-[b]
diff --git a/test/invalid/key-two-equals.toml b/test/invalid/key-two-equals.toml
deleted file mode 100644
index 25a0378..0000000
--- a/test/invalid/key-two-equals.toml
+++ /dev/null
@@ -1 +0,0 @@
-key= = 1
diff --git a/test/invalid/llbrace.toml b/test/invalid/llbrace.toml
deleted file mode 100644
index 047978e..0000000
--- a/test/invalid/llbrace.toml
+++ /dev/null
@@ -1 +0,0 @@
-[ [table]]
diff --git a/test/invalid/rrbrace.toml b/test/invalid/rrbrace.toml
deleted file mode 100644
index 3a4dee4..0000000
--- a/test/invalid/rrbrace.toml
+++ /dev/null
@@ -1 +0,0 @@
-[[table] ]
diff --git a/test/invalid/string-bad-byte-escape.toml b/test/invalid/string-bad-byte-escape.toml
deleted file mode 100644
index 4c7be59..0000000
--- a/test/invalid/string-bad-byte-escape.toml
+++ /dev/null
@@ -1 +0,0 @@
-naughty = "\xAg"
diff --git a/test/invalid/string-bad-escape.toml b/test/invalid/string-bad-escape.toml
deleted file mode 100644
index 60acb0c..0000000
--- a/test/invalid/string-bad-escape.toml
+++ /dev/null
@@ -1 +0,0 @@
-invalid-escape = "This string has a bad \a escape character."
diff --git a/test/invalid/string-byte-escapes.toml b/test/invalid/string-byte-escapes.toml
deleted file mode 100644
index e94452a..0000000
--- a/test/invalid/string-byte-escapes.toml
+++ /dev/null
@@ -1 +0,0 @@
-answer = "\x33"
diff --git a/test/invalid/string-no-close.toml b/test/invalid/string-no-close.toml
deleted file mode 100644
index 0c292fc..0000000
--- a/test/invalid/string-no-close.toml
+++ /dev/null
@@ -1 +0,0 @@
-no-ending-quote = "One time, at band camp
diff --git a/test/invalid/table-array-implicit.toml b/test/invalid/table-array-implicit.toml
deleted file mode 100644
index 05f2507..0000000
--- a/test/invalid/table-array-implicit.toml
+++ /dev/null
@@ -1,14 +0,0 @@
-# This test is a bit tricky. It should fail because the first use of
-# `[[albums.songs]]` without first declaring `albums` implies that `albums`
-# must be a table. The alternative would be quite weird. Namely, it wouldn't
-# comply with the TOML spec: "Each double-bracketed sub-table will belong to 
-# the most *recently* defined table element *above* it."
-#
-# This is in contrast to the *valid* test, table-array-implicit where
-# `[[albums.songs]]` works by itself, so long as `[[albums]]` isn't declared
-# later. (Although, `[albums]` could be.)
-[[albums.songs]]
-name = "Glory Days"
-
-[[albums]]
-name = "Born in the USA"
diff --git a/test/invalid/table-array-malformed-bracket.toml b/test/invalid/table-array-malformed-bracket.toml
deleted file mode 100644
index 39c73b0..0000000
--- a/test/invalid/table-array-malformed-bracket.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[[albums]
-name = "Born to Run"
diff --git a/test/invalid/table-array-malformed-empty.toml b/test/invalid/table-array-malformed-empty.toml
deleted file mode 100644
index a470ca3..0000000
--- a/test/invalid/table-array-malformed-empty.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[[]]
-name = "Born to Run"
diff --git a/test/invalid/table-empty.toml b/test/invalid/table-empty.toml
deleted file mode 100644
index fe51488..0000000
--- a/test/invalid/table-empty.toml
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/test/invalid/table-nested-brackets-close.toml b/test/invalid/table-nested-brackets-close.toml
deleted file mode 100644
index c8b5a67..0000000
--- a/test/invalid/table-nested-brackets-close.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[a]b]
-zyx = 42
diff --git a/test/invalid/table-nested-brackets-open.toml b/test/invalid/table-nested-brackets-open.toml
deleted file mode 100644
index 246d7e9..0000000
--- a/test/invalid/table-nested-brackets-open.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[a[b]
-zyx = 42
diff --git a/test/invalid/table-whitespace.toml b/test/invalid/table-whitespace.toml
deleted file mode 100644
index 79bbcb1..0000000
--- a/test/invalid/table-whitespace.toml
+++ /dev/null
@@ -1 +0,0 @@
-[invalid key]
\ No newline at end of file
diff --git a/test/invalid/table-with-pound.toml b/test/invalid/table-with-pound.toml
deleted file mode 100644
index 0d8edb5..0000000
--- a/test/invalid/table-with-pound.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[key#group]
-answer = 42
\ No newline at end of file
diff --git a/test/invalid/text-after-array-entries.toml b/test/invalid/text-after-array-entries.toml
deleted file mode 100644
index 1a72890..0000000
--- a/test/invalid/text-after-array-entries.toml
+++ /dev/null
@@ -1,4 +0,0 @@
-array = [
-  "Is there life after an array separator?", No
-  "Entry"
-]
diff --git a/test/invalid/text-after-integer.toml b/test/invalid/text-after-integer.toml
deleted file mode 100644
index 42de7af..0000000
--- a/test/invalid/text-after-integer.toml
+++ /dev/null
@@ -1 +0,0 @@
-answer = 42 the ultimate answer?
diff --git a/test/invalid/text-after-string.toml b/test/invalid/text-after-string.toml
deleted file mode 100644
index c92a6f1..0000000
--- a/test/invalid/text-after-string.toml
+++ /dev/null
@@ -1 +0,0 @@
-string = "Is there life after strings?" No.
diff --git a/test/invalid/text-after-table.toml b/test/invalid/text-after-table.toml
deleted file mode 100644
index 87da9db..0000000
--- a/test/invalid/text-after-table.toml
+++ /dev/null
@@ -1 +0,0 @@
-[error] this shouldn't be here
diff --git a/test/invalid/text-before-array-separator.toml b/test/invalid/text-before-array-separator.toml
deleted file mode 100644
index 9b06a39..0000000
--- a/test/invalid/text-before-array-separator.toml
+++ /dev/null
@@ -1,4 +0,0 @@
-array = [
-  "Is there life before an array separator?" No,
-  "Entry"
-]
diff --git a/test/invalid/text-in-array.toml b/test/invalid/text-in-array.toml
deleted file mode 100644
index a6a6c42..0000000
--- a/test/invalid/text-in-array.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-array = [
-  "Entry 1",
-  I don't belong,
-  "Entry 2",
-]
diff --git a/test/test.py b/test/test.py
index 5372cae..9df75ff 100644
--- a/test/test.py
+++ b/test/test.py
@@ -15,7 +15,7 @@
     succeeded = []
     failed = []
 
-    for top, dirnames, fnames in os.walk('.'):
+    for top, dirnames, fnames in os.walk('./toml-test/tests'):
         for fname in fnames:
             if not fname.endswith('.toml'):
                 continue
diff --git a/test/toml-test b/test/toml-test
new file mode 160000
index 0000000..60b47f4
--- /dev/null
+++ b/test/toml-test
@@ -0,0 +1 @@
+Subproject commit 60b47f4164e6b2d4c4fd771a00a3003d79b7dc9b
diff --git a/test/valid/array-empty.json b/test/valid/array-empty.json
deleted file mode 100644
index 2fbf256..0000000
--- a/test/valid/array-empty.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-    "thevoid": { "type": "array", "value": [
-        {"type": "array", "value": [
-            {"type": "array", "value": [
-                {"type": "array", "value": [
-                    {"type": "array", "value": []}
-                ]}
-            ]}
-        ]}
-    ]}
-}
diff --git a/test/valid/array-empty.toml b/test/valid/array-empty.toml
deleted file mode 100644
index fa58dc6..0000000
--- a/test/valid/array-empty.toml
+++ /dev/null
@@ -1 +0,0 @@
-thevoid = [[[[[]]]]]
diff --git a/test/valid/array-nospaces.json b/test/valid/array-nospaces.json
deleted file mode 100644
index 1833d61..0000000
--- a/test/valid/array-nospaces.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-    "ints": {
-        "type": "array",
-        "value": [
-            {"type": "integer", "value": "1"},
-            {"type": "integer", "value": "2"},
-            {"type": "integer", "value": "3"}
-        ]
-    }
-}
diff --git a/test/valid/array-nospaces.toml b/test/valid/array-nospaces.toml
deleted file mode 100644
index 6618936..0000000
--- a/test/valid/array-nospaces.toml
+++ /dev/null
@@ -1 +0,0 @@
-ints = [1,2,3]
diff --git a/test/valid/arrays-hetergeneous.json b/test/valid/arrays-hetergeneous.json
deleted file mode 100644
index 478fa5c..0000000
--- a/test/valid/arrays-hetergeneous.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "mixed": {
-        "type": "array",
-        "value": [
-            {"type": "array", "value": [
-                {"type": "integer", "value": "1"},
-                {"type": "integer", "value": "2"}
-            ]},
-            {"type": "array", "value": [
-                {"type": "string", "value": "a"},
-                {"type": "string", "value": "b"}
-            ]},
-            {"type": "array", "value": [
-                {"type": "float", "value": "1.1"},
-                {"type": "float", "value": "2.1"}
-            ]}
-        ]
-    }
-}
diff --git a/test/valid/arrays-hetergeneous.toml b/test/valid/arrays-hetergeneous.toml
deleted file mode 100644
index a246fcf..0000000
--- a/test/valid/arrays-hetergeneous.toml
+++ /dev/null
@@ -1 +0,0 @@
-mixed = [[1, 2], ["a", "b"], [1.1, 2.1]]
diff --git a/test/valid/arrays-nested.json b/test/valid/arrays-nested.json
deleted file mode 100644
index d21920c..0000000
--- a/test/valid/arrays-nested.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-    "nest": {
-        "type": "array",
-        "value": [
-            {"type": "array", "value": [
-                {"type": "string", "value": "a"}
-            ]},
-            {"type": "array", "value": [
-                {"type": "string", "value": "b"}
-            ]}
-        ]
-    }
-}
diff --git a/test/valid/arrays-nested.toml b/test/valid/arrays-nested.toml
deleted file mode 100644
index ce33022..0000000
--- a/test/valid/arrays-nested.toml
+++ /dev/null
@@ -1 +0,0 @@
-nest = [["a"], ["b"]]
diff --git a/test/valid/arrays.json b/test/valid/arrays.json
deleted file mode 100644
index 58aedbc..0000000
--- a/test/valid/arrays.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "ints": {
-        "type": "array",
-        "value": [
-            {"type": "integer", "value": "1"},
-            {"type": "integer", "value": "2"},
-            {"type": "integer", "value": "3"}
-        ]
-    },
-    "floats": {
-        "type": "array",
-        "value": [
-            {"type": "float", "value": "1.1"},
-            {"type": "float", "value": "2.1"},
-            {"type": "float", "value": "3.1"}
-        ]
-    },
-    "strings": {
-        "type": "array",
-        "value": [
-            {"type": "string", "value": "a"},
-            {"type": "string", "value": "b"},
-            {"type": "string", "value": "c"}
-        ]
-    },
-    "dates": {
-        "type": "array",
-        "value": [
-            {"type": "datetime", "value": "1987-07-05T17:45:00Z"},
-            {"type": "datetime", "value": "1979-05-27T07:32:00Z"},
-            {"type": "datetime", "value": "2006-06-01T11:00:00Z"}
-        ]
-    }
-}
diff --git a/test/valid/arrays.toml b/test/valid/arrays.toml
deleted file mode 100644
index c435f57..0000000
--- a/test/valid/arrays.toml
+++ /dev/null
@@ -1,8 +0,0 @@
-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:00Z,
-  2006-06-01T11:00:00Z,
-]
diff --git a/test/valid/bool.json b/test/valid/bool.json
deleted file mode 100644
index ae368e9..0000000
--- a/test/valid/bool.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "f": {"type": "bool", "value": "false"},
-    "t": {"type": "bool", "value": "true"}
-}
diff --git a/test/valid/bool.toml b/test/valid/bool.toml
deleted file mode 100644
index a8a829b..0000000
--- a/test/valid/bool.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-t = true
-f = false
diff --git a/test/valid/comments-everywhere.json b/test/valid/comments-everywhere.json
deleted file mode 100644
index e69a2e9..0000000
--- a/test/valid/comments-everywhere.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-    "group": {
-        "answer": {"type": "integer", "value": "42"},
-        "more": {
-            "type": "array",
-            "value": [
-                {"type": "integer", "value": "42"},
-                {"type": "integer", "value": "42"}
-            ]
-        }
-    }
-}
diff --git a/test/valid/comments-everywhere.toml b/test/valid/comments-everywhere.toml
deleted file mode 100644
index 3dca74c..0000000
--- a/test/valid/comments-everywhere.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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.
diff --git a/test/valid/datetime.json b/test/valid/datetime.json
deleted file mode 100644
index 2ca93ce..0000000
--- a/test/valid/datetime.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "bestdayever": {"type": "datetime", "value": "1987-07-05T17:45:00Z"}
-}
diff --git a/test/valid/datetime.toml b/test/valid/datetime.toml
deleted file mode 100644
index 2e99340..0000000
--- a/test/valid/datetime.toml
+++ /dev/null
@@ -1 +0,0 @@
-bestdayever = 1987-07-05T17:45:00Z
diff --git a/test/valid/empty.json b/test/valid/empty.json
deleted file mode 100644
index 0967ef4..0000000
--- a/test/valid/empty.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/test/valid/empty.toml b/test/valid/empty.toml
deleted file mode 100644
index e69de29..0000000
--- a/test/valid/empty.toml
+++ /dev/null
diff --git a/test/valid/example.json b/test/valid/example.json
deleted file mode 100644
index 48aa907..0000000
--- a/test/valid/example.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "best-day-ever": {"type": "datetime", "value": "1987-07-05T17:45:00Z"},
-  "numtheory": {
-    "boring": {"type": "bool", "value": "false"},
-    "perfection": {
-      "type": "array",
-      "value": [
-        {"type": "integer", "value": "6"},
-        {"type": "integer", "value": "28"},
-        {"type": "integer", "value": "496"}
-      ]
-    }
-  }
-}
diff --git a/test/valid/example.toml b/test/valid/example.toml
deleted file mode 100644
index 8cb02e0..0000000
--- a/test/valid/example.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-best-day-ever = 1987-07-05T17:45:00Z
-
-[numtheory]
-boring = false
-perfection = [6, 28, 496]
diff --git a/test/valid/float.json b/test/valid/float.json
deleted file mode 100644
index b8a2e97..0000000
--- a/test/valid/float.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "pi": {"type": "float", "value": "3.14"},
-    "negpi": {"type": "float", "value": "-3.14"}
-}
diff --git a/test/valid/float.toml b/test/valid/float.toml
deleted file mode 100644
index 7c528d2..0000000
--- a/test/valid/float.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-pi = 3.14
-negpi = -3.14
diff --git a/test/valid/implicit-and-explicit-after.json b/test/valid/implicit-and-explicit-after.json
deleted file mode 100644
index 374bd09..0000000
--- a/test/valid/implicit-and-explicit-after.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-    "a": {
-        "better": {"type": "integer", "value": "43"},
-        "b": {
-            "c": {
-                "answer": {"type": "integer", "value": "42"}
-            }
-        }
-    }
-}
diff --git a/test/valid/implicit-and-explicit-after.toml b/test/valid/implicit-and-explicit-after.toml
deleted file mode 100644
index c0e8865..0000000
--- a/test/valid/implicit-and-explicit-after.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-[a.b.c]
-answer = 42
-
-[a]
-better = 43
diff --git a/test/valid/implicit-and-explicit-before.json b/test/valid/implicit-and-explicit-before.json
deleted file mode 100644
index 374bd09..0000000
--- a/test/valid/implicit-and-explicit-before.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-    "a": {
-        "better": {"type": "integer", "value": "43"},
-        "b": {
-            "c": {
-                "answer": {"type": "integer", "value": "42"}
-            }
-        }
-    }
-}
diff --git a/test/valid/implicit-and-explicit-before.toml b/test/valid/implicit-and-explicit-before.toml
deleted file mode 100644
index eee68ff..0000000
--- a/test/valid/implicit-and-explicit-before.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-[a]
-better = 43
-
-[a.b.c]
-answer = 42
diff --git a/test/valid/implicit-groups.json b/test/valid/implicit-groups.json
deleted file mode 100644
index fbae7fc..0000000
--- a/test/valid/implicit-groups.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-    "a": {
-        "b": {
-            "c": {
-                "answer": {"type": "integer", "value": "42"}
-            }
-        }
-    }
-}
diff --git a/test/valid/implicit-groups.toml b/test/valid/implicit-groups.toml
deleted file mode 100644
index b6333e4..0000000
--- a/test/valid/implicit-groups.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[a.b.c]
-answer = 42
diff --git a/test/valid/inline-table.json b/test/valid/inline-table.json
deleted file mode 100644
index 6172b18..0000000
--- a/test/valid/inline-table.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-    "simple": { "a": {"type": "integer", "value": "1"} },
-    "str-key": { "a": {"type": "integer", "value": "1"} },
-    "table-array": {
-        "type": "array",
-        "value": [
-            { "a": {"type": "integer", "value": "1"} },
-            { "b": {"type": "integer", "value": "2"} }
-        ]
-    }
-}
diff --git a/test/valid/inline-table.toml b/test/valid/inline-table.toml
deleted file mode 100644
index 424b304..0000000
--- a/test/valid/inline-table.toml
+++ /dev/null
@@ -1,3 +0,0 @@
-simple = { a = 1 }
-str-key = { "a" = 1 }
-table-array = [{ "a" = 1 }, { "b" = 2 }]
diff --git a/test/valid/integer.json b/test/valid/integer.json
deleted file mode 100644
index 61985a1..0000000
--- a/test/valid/integer.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "answer": {"type": "integer", "value": "42"},
-    "neganswer": {"type": "integer", "value": "-42"}
-}
diff --git a/test/valid/integer.toml b/test/valid/integer.toml
deleted file mode 100644
index c4f6297..0000000
--- a/test/valid/integer.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-answer = 42
-neganswer = -42
diff --git a/test/valid/key-equals-nospace.json b/test/valid/key-equals-nospace.json
deleted file mode 100644
index 1f8709a..0000000
--- a/test/valid/key-equals-nospace.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "answer": {"type": "integer", "value": "42"}
-}
diff --git a/test/valid/key-equals-nospace.toml b/test/valid/key-equals-nospace.toml
deleted file mode 100644
index 560901c..0000000
--- a/test/valid/key-equals-nospace.toml
+++ /dev/null
@@ -1 +0,0 @@
-answer=42
diff --git a/test/valid/key-numeric.json b/test/valid/key-numeric.json
deleted file mode 100644
index 862f8cb..0000000
--- a/test/valid/key-numeric.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "1": {"type": "integer", "value": "1"}
-}
diff --git a/test/valid/key-numeric.toml b/test/valid/key-numeric.toml
deleted file mode 100644
index 532356f..0000000
--- a/test/valid/key-numeric.toml
+++ /dev/null
@@ -1 +0,0 @@
-1 = 1
diff --git a/test/valid/key-space.json b/test/valid/key-space.json
deleted file mode 100644
index 9d1f769..0000000
--- a/test/valid/key-space.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "a b": {"type": "integer", "value": "1"}
-}
diff --git a/test/valid/key-space.toml b/test/valid/key-space.toml
deleted file mode 100644
index f4f36c4..0000000
--- a/test/valid/key-space.toml
+++ /dev/null
@@ -1 +0,0 @@
-"a b" = 1
diff --git a/test/valid/key-special-chars.json b/test/valid/key-special-chars.json
deleted file mode 100644
index 3585b2c..0000000
--- a/test/valid/key-special-chars.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "~!@$^&*()_+-`1234567890[]|/?><.,;:'": {
-        "type": "integer", "value": "1"
-    }
-}
diff --git a/test/valid/key-special-chars.toml b/test/valid/key-special-chars.toml
deleted file mode 100644
index cc572be..0000000
--- a/test/valid/key-special-chars.toml
+++ /dev/null
@@ -1 +0,0 @@
-"~!@$^&*()_+-`1234567890[]|/?><.,;:'" = 1
diff --git a/test/valid/long-float.json b/test/valid/long-float.json
deleted file mode 100644
index 8ceed47..0000000
--- a/test/valid/long-float.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "longpi": {"type": "float", "value": "3.141592653589793"},
-    "neglongpi": {"type": "float", "value": "-3.141592653589793"}
-}
diff --git a/test/valid/long-float.toml b/test/valid/long-float.toml
deleted file mode 100644
index 9558ae4..0000000
--- a/test/valid/long-float.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-longpi = 3.141592653589793
-neglongpi = -3.141592653589793
diff --git a/test/valid/long-integer.json b/test/valid/long-integer.json
deleted file mode 100644
index 16c331e..0000000
--- a/test/valid/long-integer.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "answer": {"type": "integer", "value": "9223372036854775807"},
-    "neganswer": {"type": "integer", "value": "-9223372036854775808"}
-}
diff --git a/test/valid/long-integer.toml b/test/valid/long-integer.toml
deleted file mode 100644
index 424a13a..0000000
--- a/test/valid/long-integer.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-answer = 9223372036854775807
-neganswer = -9223372036854775808
diff --git a/test/valid/multiline-string.json b/test/valid/multiline-string.json
deleted file mode 100644
index 075bf50..0000000
--- a/test/valid/multiline-string.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-    "multiline_empty_one": {
-        "type": "string",
-        "value": ""
-    },
-    "multiline_empty_two": {
-        "type": "string",
-        "value": ""
-    },
-    "multiline_empty_three": {
-        "type": "string",
-        "value": ""
-    },
-    "multiline_empty_four": {
-        "type": "string",
-        "value": ""
-    },
-    "equivalent_one": {
-        "type": "string",
-        "value": "The quick brown fox jumps over the lazy dog."
-    },
-    "equivalent_two": {
-        "type": "string",
-        "value": "The quick brown fox jumps over the lazy dog."
-    },
-    "equivalent_three": {
-        "type": "string",
-        "value": "The quick brown fox jumps over the lazy dog."
-    }
-}
diff --git a/test/valid/multiline-string.toml b/test/valid/multiline-string.toml
deleted file mode 100644
index 15b1143..0000000
--- a/test/valid/multiline-string.toml
+++ /dev/null
@@ -1,23 +0,0 @@
-multiline_empty_one = """"""
-multiline_empty_two = """
-"""
-multiline_empty_three = """\
-    """
-multiline_empty_four = """\
-   \
-   \
-   """
-
-equivalent_one = "The quick brown fox jumps over the lazy dog."
-equivalent_two = """
-The quick brown \
-
-
-  fox jumps over \
-    the lazy dog."""
-
-equivalent_three = """\
-       The quick brown \
-       fox jumps over \
-       the lazy dog.\
-       """
diff --git a/test/valid/raw-multiline-string.json b/test/valid/raw-multiline-string.json
deleted file mode 100644
index b43cce5..0000000
--- a/test/valid/raw-multiline-string.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-    "oneline": {
-        "type": "string",
-        "value": "This string has a ' quote character."
-    },
-    "firstnl": {
-        "type": "string",
-        "value": "This string has a ' quote character."
-    },
-    "multiline": {
-        "type": "string",
-        "value": "This string\nhas ' a quote character\nand more than\none newline\nin it."
-    }
-}
diff --git a/test/valid/raw-multiline-string.toml b/test/valid/raw-multiline-string.toml
deleted file mode 100644
index 8094c03..0000000
--- a/test/valid/raw-multiline-string.toml
+++ /dev/null
@@ -1,9 +0,0 @@
-oneline = '''This string has a ' quote character.'''
-firstnl = '''
-This string has a ' quote character.'''
-multiline = '''
-This string
-has ' a quote character
-and more than
-one newline
-in it.'''
diff --git a/test/valid/raw-string.json b/test/valid/raw-string.json
deleted file mode 100644
index 693ab9b..0000000
--- a/test/valid/raw-string.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-    "backspace": {
-        "type": "string",
-        "value": "This string has a \\b backspace character."
-    },
-    "tab": {
-        "type": "string",
-        "value": "This string has a \\t tab character."
-    },
-    "newline": {
-        "type": "string",
-        "value": "This string has a \\n new line character."
-    },
-    "formfeed": {
-        "type": "string",
-        "value": "This string has a \\f form feed character."
-    },
-    "carriage": {
-        "type": "string",
-        "value": "This string has a \\r carriage return character."
-    },
-    "slash": {
-        "type": "string",
-        "value": "This string has a \\/ slash character."
-    },
-    "backslash": {
-        "type": "string",
-        "value": "This string has a \\\\ backslash character."
-    }
-}
diff --git a/test/valid/raw-string.toml b/test/valid/raw-string.toml
deleted file mode 100644
index 92acd25..0000000
--- a/test/valid/raw-string.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-backspace = 'This string has a \b backspace character.'
-tab = 'This string has a \t tab character.'
-newline = 'This string has a \n new line character.'
-formfeed = 'This string has a \f form feed character.'
-carriage = 'This string has a \r carriage return character.'
-slash = 'This string has a \/ slash character.'
-backslash = 'This string has a \\ backslash character.'
diff --git a/test/valid/string-empty.json b/test/valid/string-empty.json
deleted file mode 100644
index 6c26d69..0000000
--- a/test/valid/string-empty.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "answer": {
-        "type": "string",
-        "value": ""
-    }
-}
diff --git a/test/valid/string-empty.toml b/test/valid/string-empty.toml
deleted file mode 100644
index e37e681..0000000
--- a/test/valid/string-empty.toml
+++ /dev/null
@@ -1 +0,0 @@
-answer = ""
diff --git a/test/valid/string-escapes.json b/test/valid/string-escapes.json
deleted file mode 100644
index 98e2c82..0000000
--- a/test/valid/string-escapes.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-    "backspace": {
-        "type": "string",
-        "value": "This string has a \u0008 backspace character."
-    },
-    "tab": {
-        "type": "string",
-        "value": "This string has a \u0009 tab character."
-    },
-    "newline": {
-        "type": "string",
-        "value": "This string has a \u000A new line character."
-    },
-    "formfeed": {
-        "type": "string",
-        "value": "This string has a \u000C form feed character."
-    },
-    "carriage": {
-        "type": "string",
-        "value": "This string has a \u000D carriage return character."
-    },
-    "quote": {
-        "type": "string",
-        "value": "This string has a \u0022 quote character."
-    },
-    "backslash": {
-        "type": "string",
-        "value": "This string has a \u005C backslash character."
-    },
-    "notunicode1": {
-        "type": "string",
-        "value": "This string does not have a unicode \\u escape."
-    },
-    "notunicode2": {
-        "type": "string",
-        "value": "This string does not have a unicode \u005Cu escape."
-    },
-    "notunicode3": {
-        "type": "string",
-        "value": "This string does not have a unicode \\u0075 escape."
-    },
-    "notunicode4": {
-        "type": "string",
-        "value": "This string does not have a unicode \\\u0075 escape."
-    }
-}
diff --git a/test/valid/string-escapes.toml b/test/valid/string-escapes.toml
deleted file mode 100644
index 6d554e4..0000000
--- a/test/valid/string-escapes.toml
+++ /dev/null
@@ -1,11 +0,0 @@
-backspace = "This string has a \b backspace character."
-tab = "This string has a \t tab character."
-newline = "This string has a \n new line character."
-formfeed = "This string has a \f form feed character."
-carriage = "This string has a \r carriage return character."
-quote = "This string has a \" quote character."
-backslash = "This string has a \\ backslash character."
-notunicode1 = "This string does not have a unicode \\u escape."
-notunicode2 = "This string does not have a unicode \u005Cu escape."
-notunicode3 = "This string does not have a unicode \\u0075 escape."
-notunicode4 = "This string does not have a unicode \\\u0075 escape."
diff --git a/test/valid/string-simple.json b/test/valid/string-simple.json
deleted file mode 100644
index 2e05f99..0000000
--- a/test/valid/string-simple.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "answer": {
-        "type": "string",
-        "value": "You are not drinking enough whisky."
-    }
-}
diff --git a/test/valid/string-simple.toml b/test/valid/string-simple.toml
deleted file mode 100644
index e17ade6..0000000
--- a/test/valid/string-simple.toml
+++ /dev/null
@@ -1 +0,0 @@
-answer = "You are not drinking enough whisky."
diff --git a/test/valid/string-with-pound.json b/test/valid/string-with-pound.json
deleted file mode 100644
index 33cdc9c..0000000
--- a/test/valid/string-with-pound.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "pound": {"type": "string", "value": "We see no # comments here."},
-    "poundcomment": {
-        "type": "string",
-        "value": "But there are # some comments here."
-    }
-}
diff --git a/test/valid/string-with-pound.toml b/test/valid/string-with-pound.toml
deleted file mode 100644
index 5fd8746..0000000
--- a/test/valid/string-with-pound.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-pound = "We see no # comments here."
-poundcomment = "But there are # some comments here." # Did I # mess you up?
diff --git a/test/valid/table-array-implicit.json b/test/valid/table-array-implicit.json
deleted file mode 100644
index 32e4640..0000000
--- a/test/valid/table-array-implicit.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "albums": {
-       "songs": [
-           {"name": {"type": "string", "value": "Glory Days"}}
-       ]
-    }
-}
diff --git a/test/valid/table-array-implicit.toml b/test/valid/table-array-implicit.toml
deleted file mode 100644
index 3157ac9..0000000
--- a/test/valid/table-array-implicit.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[[albums.songs]]
-name = "Glory Days"
diff --git a/test/valid/table-array-many.json b/test/valid/table-array-many.json
deleted file mode 100644
index 84df2da..0000000
--- a/test/valid/table-array-many.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-    "people": [
-        {
-            "first_name": {"type": "string", "value": "Bruce"},
-            "last_name": {"type": "string", "value": "Springsteen"}
-        },
-        {
-            "first_name": {"type": "string", "value": "Eric"},
-            "last_name": {"type": "string", "value": "Clapton"}
-        },
-        {
-            "first_name": {"type": "string", "value": "Bob"},
-            "last_name": {"type": "string", "value": "Seger"}
-        }
-    ]
-}
diff --git a/test/valid/table-array-many.toml b/test/valid/table-array-many.toml
deleted file mode 100644
index 46062be..0000000
--- a/test/valid/table-array-many.toml
+++ /dev/null
@@ -1,11 +0,0 @@
-[[people]]
-first_name = "Bruce"
-last_name = "Springsteen"
-
-[[people]]
-first_name = "Eric"
-last_name = "Clapton"
-
-[[people]]
-first_name = "Bob"
-last_name = "Seger"
diff --git a/test/valid/table-array-nest.json b/test/valid/table-array-nest.json
deleted file mode 100644
index c117afa..0000000
--- a/test/valid/table-array-nest.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-    "albums": [
-        {
-            "name": {"type": "string", "value": "Born to Run"},
-            "songs": [
-                {"name": {"type": "string", "value": "Jungleland"}},
-                {"name": {"type": "string", "value": "Meeting Across the River"}}
-            ]
-        },
-        {
-            "name": {"type": "string", "value": "Born in the USA"},
-            "songs": [
-                {"name": {"type": "string", "value": "Glory Days"}},
-                {"name": {"type": "string", "value": "Dancing in the Dark"}}
-            ]
-        }
-    ]
-}
diff --git a/test/valid/table-array-nest.toml b/test/valid/table-array-nest.toml
deleted file mode 100644
index d659a3d..0000000
--- a/test/valid/table-array-nest.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-[[albums]]
-name = "Born to Run"
-
-  [[albums.songs]]
-  name = "Jungleland"
-
-  [[albums.songs]]
-  name = "Meeting Across the River"
-
-[[albums]]
-name = "Born in the USA"
-  
-  [[albums.songs]]
-  name = "Glory Days"
-
-  [[albums.songs]]
-  name = "Dancing in the Dark"
diff --git a/test/valid/table-array-one.json b/test/valid/table-array-one.json
deleted file mode 100644
index d75faae..0000000
--- a/test/valid/table-array-one.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "people": [
-        {
-            "first_name": {"type": "string", "value": "Bruce"},
-            "last_name": {"type": "string", "value": "Springsteen"}
-        }
-    ]
-}
diff --git a/test/valid/table-array-one.toml b/test/valid/table-array-one.toml
deleted file mode 100644
index cd7e1b6..0000000
--- a/test/valid/table-array-one.toml
+++ /dev/null
@@ -1,3 +0,0 @@
-[[people]]
-first_name = "Bruce"
-last_name = "Springsteen"
diff --git a/test/valid/table-empty.json b/test/valid/table-empty.json
deleted file mode 100644
index 6f3873a..0000000
--- a/test/valid/table-empty.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "a": {}
-}
diff --git a/test/valid/table-empty.toml b/test/valid/table-empty.toml
deleted file mode 100644
index 8bb6a0a..0000000
--- a/test/valid/table-empty.toml
+++ /dev/null
@@ -1 +0,0 @@
-[a]
diff --git a/test/valid/table-no-eol.json b/test/valid/table-no-eol.json
deleted file mode 100644
index 11fa444..0000000
--- a/test/valid/table-no-eol.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "table": {} }
diff --git a/test/valid/table-no-eol.toml b/test/valid/table-no-eol.toml
deleted file mode 100644
index 741b2d1..0000000
--- a/test/valid/table-no-eol.toml
+++ /dev/null
@@ -1 +0,0 @@
-[table]
\ No newline at end of file
diff --git a/test/valid/table-sub-empty.json b/test/valid/table-sub-empty.json
deleted file mode 100644
index 9787770..0000000
--- a/test/valid/table-sub-empty.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "a": { "b": {} }
-}
diff --git a/test/valid/table-sub-empty.toml b/test/valid/table-sub-empty.toml
deleted file mode 100644
index 70b7fe1..0000000
--- a/test/valid/table-sub-empty.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[a]
-[a.b]
diff --git a/test/valid/table-whitespace.json b/test/valid/table-whitespace.json
deleted file mode 100644
index 3a73ec8..0000000
--- a/test/valid/table-whitespace.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "valid key": {}
-}
diff --git a/test/valid/table-whitespace.toml b/test/valid/table-whitespace.toml
deleted file mode 100644
index daf881d..0000000
--- a/test/valid/table-whitespace.toml
+++ /dev/null
@@ -1 +0,0 @@
-["valid key"]
diff --git a/test/valid/table-with-pound.json b/test/valid/table-with-pound.json
deleted file mode 100644
index 5e594e4..0000000
--- a/test/valid/table-with-pound.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "key#group": {
-        "answer": {"type": "integer", "value": "42"}
-    }
-}
diff --git a/test/valid/table-with-pound.toml b/test/valid/table-with-pound.toml
deleted file mode 100644
index 33f2c4f..0000000
--- a/test/valid/table-with-pound.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-["key#group"]
-answer = 42
diff --git a/test/valid/unicode-escape.json b/test/valid/unicode-escape.json
deleted file mode 100644
index 216f8f7..0000000
--- a/test/valid/unicode-escape.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "answer4": {"type": "string", "value": "\u03B4"},
-    "answer8": {"type": "string", "value": "\u03B4"}
-}
diff --git a/test/valid/unicode-escape.toml b/test/valid/unicode-escape.toml
deleted file mode 100644
index 82faecb..0000000
--- a/test/valid/unicode-escape.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-answer4 = "\u03B4"
-answer8 = "\U000003B4"
diff --git a/test/valid/unicode-literal.json b/test/valid/unicode-literal.json
deleted file mode 100644
index 00aa2f8..0000000
--- a/test/valid/unicode-literal.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-    "answer": {"type": "string", "value": "δ"}
-}
diff --git a/test/valid/unicode-literal.toml b/test/valid/unicode-literal.toml
deleted file mode 100644
index c65723c..0000000
--- a/test/valid/unicode-literal.toml
+++ /dev/null
@@ -1 +0,0 @@
-answer = "δ"