summaryrefslogtreecommitdiffstats
path: root/tests/data/extras
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:27:32 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:27:32 +0000
commit88857376d837c86ee4cbbe6ff3c9a22ab2113ffe (patch)
treeefe8d5d117c400fef855ba85e3c181cd0d4bd501 /tests/data/extras
parentInitial commit. (diff)
downloadpython-tomli-w-88857376d837c86ee4cbbe6ff3c9a22ab2113ffe.tar.xz
python-tomli-w-88857376d837c86ee4cbbe6ff3c9a22ab2113ffe.zip
Adding upstream version 1.0.0.upstream/1.0.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/data/extras')
-rw-r--r--tests/data/extras/valid/apostrophes-in-literal-string.toml3
-rw-r--r--tests/data/extras/valid/array/array-subtables.toml7
-rw-r--r--tests/data/extras/valid/array/open-parent-table.toml3
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-empty.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-hetergeneous.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-nested-inline-table.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-nested.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-nospaces.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-string-quote-comma-2.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-string-quote-comma.toml4
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-string-with-comma.toml4
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array-table-array-string-backslash.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/array.toml12
-rw-r--r--tests/data/extras/valid/burntsushi-repo/arrays-hetergeneous.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/arrays-nested.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/arrays.toml12
-rw-r--r--tests/data/extras/valid/burntsushi-repo/bool.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/comment-at-eof.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/comment-at-eof2.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/comment-everywhere.toml24
-rw-r--r--tests/data/extras/valid/burntsushi-repo/comment-tricky.toml31
-rw-r--r--tests/data/extras/valid/burntsushi-repo/comments-at-eof.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/comments-at-eof2.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/comments-everywhere.toml24
-rw-r--r--tests/data/extras/valid/burntsushi-repo/datetime-local-date.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/datetime-local-time.toml3
-rw-r--r--tests/data/extras/valid/burntsushi-repo/datetime-local.toml3
-rw-r--r--tests/data/extras/valid/burntsushi-repo/datetime-timezone.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/datetime.toml4
-rw-r--r--tests/data/extras/valid/burntsushi-repo/double-quote-escape.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/empty-file.toml0
-rw-r--r--tests/data/extras/valid/burntsushi-repo/empty.toml0
-rw-r--r--tests/data/extras/valid/burntsushi-repo/escaped-escape.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/example.toml5
-rw-r--r--tests/data/extras/valid/burntsushi-repo/exponent-part-float.toml3
-rw-r--r--tests/data/extras/valid/burntsushi-repo/float-exponent.toml8
-rw-r--r--tests/data/extras/valid/burntsushi-repo/float-inf-and-nan.toml8
-rw-r--r--tests/data/extras/valid/burntsushi-repo/float-long.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/float-underscore.toml3
-rw-r--r--tests/data/extras/valid/burntsushi-repo/float.toml4
-rw-r--r--tests/data/extras/valid/burntsushi-repo/implicit-and-explicit-after.toml5
-rw-r--r--tests/data/extras/valid/burntsushi-repo/implicit-and-explicit-before.toml5
-rw-r--r--tests/data/extras/valid/burntsushi-repo/implicit-groups.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/inline-table-array.toml3
-rw-r--r--tests/data/extras/valid/burntsushi-repo/inline-table-empty.toml6
-rw-r--r--tests/data/extras/valid/burntsushi-repo/inline-table-end-in-bool.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/inline-table-multiline.toml4
-rw-r--r--tests/data/extras/valid/burntsushi-repo/inline-table-nest.toml10
-rw-r--r--tests/data/extras/valid/burntsushi-repo/inline-table.toml5
-rw-r--r--tests/data/extras/valid/burntsushi-repo/integer-literals.toml6
-rw-r--r--tests/data/extras/valid/burntsushi-repo/integer-long.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/integer-underscore.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/integer.toml4
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-alphanum.toml14
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-case-sensitive.toml13
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-dotted.toml5
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-empty.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-equals-nospace.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-escapes.toml10
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-numeric.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-quoted-dots.toml10
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-space.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-special-chars.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/key-special-word.toml5
-rw-r--r--tests/data/extras/valid/burntsushi-repo/keys-with-dots.toml10
-rw-r--r--tests/data/extras/valid/burntsushi-repo/long-float.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/long-integer.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/multiline-string-accidental-whitespace.toml5
-rw-r--r--tests/data/extras/valid/burntsushi-repo/multiline-string-quotes.toml10
-rw-r--r--tests/data/extras/valid/burntsushi-repo/multiline-string.toml23
-rw-r--r--tests/data/extras/valid/burntsushi-repo/nested-inline-table-array.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/newline-crlf.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/newline-lf.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/raw-multiline-string.toml9
-rw-r--r--tests/data/extras/valid/burntsushi-repo/raw-string.toml7
-rw-r--r--tests/data/extras/valid/burntsushi-repo/right-curly-brace-after-boolean.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/spec-example-1-compact.toml23
-rw-r--r--tests/data/extras/valid/burntsushi-repo/spec-example-1.toml33
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-double-quote-escape.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-empty.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-escape-tricky.toml15
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-escaped-escape.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-escapes.toml13
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-nl.toml6
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-simple.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-unicode-escape.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-unicode-literal.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/string-with-pound.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-array-implicit.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-array-many.toml11
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-array-nest.toml17
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-array-one.toml3
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-array-table-array.toml7
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-empty.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-no-eol.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-sub-empty.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-whitespace.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-with-literal-string.toml4
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-with-pound.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-with-single-quotes.toml4
-rw-r--r--tests/data/extras/valid/burntsushi-repo/table-without-super.toml5
-rw-r--r--tests/data/extras/valid/burntsushi-repo/underscored-float.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/underscored-integer.toml1
-rw-r--r--tests/data/extras/valid/burntsushi-repo/unicode-escape.toml2
-rw-r--r--tests/data/extras/valid/burntsushi-repo/unicode-literal.toml1
-rw-r--r--tests/data/extras/valid/empty-inline-table.toml1
-rw-r--r--tests/data/extras/valid/five-quotes.toml3
-rw-r--r--tests/data/extras/valid/multiline-basic-str/ends-in-whitespace-escape.toml6
-rw-r--r--tests/data/extras/valid/no-newlines.toml1
109 files changed, 555 insertions, 0 deletions
diff --git a/tests/data/extras/valid/apostrophes-in-literal-string.toml b/tests/data/extras/valid/apostrophes-in-literal-string.toml
new file mode 100644
index 0000000..4288d08
--- /dev/null
+++ b/tests/data/extras/valid/apostrophes-in-literal-string.toml
@@ -0,0 +1,3 @@
+this-str-has-apostrophes='''' there's one already
+'' two more
+'''''
diff --git a/tests/data/extras/valid/array/array-subtables.toml b/tests/data/extras/valid/array/array-subtables.toml
new file mode 100644
index 0000000..7075307
--- /dev/null
+++ b/tests/data/extras/valid/array/array-subtables.toml
@@ -0,0 +1,7 @@
+[[arr]]
+[arr.subtab]
+val=1
+
+[[arr]]
+[arr.subtab]
+val=2
diff --git a/tests/data/extras/valid/array/open-parent-table.toml b/tests/data/extras/valid/array/open-parent-table.toml
new file mode 100644
index 0000000..1ae8587
--- /dev/null
+++ b/tests/data/extras/valid/array/open-parent-table.toml
@@ -0,0 +1,3 @@
+[[parent-table.arr]]
+[parent-table]
+not-arr = 1
diff --git a/tests/data/extras/valid/burntsushi-repo/array-empty.toml b/tests/data/extras/valid/burntsushi-repo/array-empty.toml
new file mode 100644
index 0000000..fa58dc6
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-empty.toml
@@ -0,0 +1 @@
+thevoid = [[[[[]]]]]
diff --git a/tests/data/extras/valid/burntsushi-repo/array-hetergeneous.toml b/tests/data/extras/valid/burntsushi-repo/array-hetergeneous.toml
new file mode 100644
index 0000000..a246fcf
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-hetergeneous.toml
@@ -0,0 +1 @@
+mixed = [[1, 2], ["a", "b"], [1.1, 2.1]]
diff --git a/tests/data/extras/valid/burntsushi-repo/array-nested-inline-table.toml b/tests/data/extras/valid/burntsushi-repo/array-nested-inline-table.toml
new file mode 100644
index 0000000..e1e24f6
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-nested-inline-table.toml
@@ -0,0 +1 @@
+a = [ { b = {} } ]
diff --git a/tests/data/extras/valid/burntsushi-repo/array-nested.toml b/tests/data/extras/valid/burntsushi-repo/array-nested.toml
new file mode 100644
index 0000000..ce33022
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-nested.toml
@@ -0,0 +1 @@
+nest = [["a"], ["b"]]
diff --git a/tests/data/extras/valid/burntsushi-repo/array-nospaces.toml b/tests/data/extras/valid/burntsushi-repo/array-nospaces.toml
new file mode 100644
index 0000000..6618936
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-nospaces.toml
@@ -0,0 +1 @@
+ints = [1,2,3]
diff --git a/tests/data/extras/valid/burntsushi-repo/array-string-quote-comma-2.toml b/tests/data/extras/valid/burntsushi-repo/array-string-quote-comma-2.toml
new file mode 100644
index 0000000..4758ddc
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-string-quote-comma-2.toml
@@ -0,0 +1 @@
+title = [ " \", ",]
diff --git a/tests/data/extras/valid/burntsushi-repo/array-string-quote-comma.toml b/tests/data/extras/valid/burntsushi-repo/array-string-quote-comma.toml
new file mode 100644
index 0000000..6b458e1
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-string-quote-comma.toml
@@ -0,0 +1,4 @@
+title = [
+"Client: \"XXXX\", Job: XXXX",
+"Code: XXXX"
+]
diff --git a/tests/data/extras/valid/burntsushi-repo/array-string-with-comma.toml b/tests/data/extras/valid/burntsushi-repo/array-string-with-comma.toml
new file mode 100644
index 0000000..655c40e
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-string-with-comma.toml
@@ -0,0 +1,4 @@
+title = [
+"Client: XXXX, Job: XXXX",
+"Code: XXXX"
+]
diff --git a/tests/data/extras/valid/burntsushi-repo/array-table-array-string-backslash.toml b/tests/data/extras/valid/burntsushi-repo/array-table-array-string-backslash.toml
new file mode 100644
index 0000000..f0de81e
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array-table-array-string-backslash.toml
@@ -0,0 +1 @@
+foo = [ { bar="\"{{baz}}\""} ]
diff --git a/tests/data/extras/valid/burntsushi-repo/array.toml b/tests/data/extras/valid/burntsushi-repo/array.toml
new file mode 100644
index 0000000..db1c400
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/array.toml
@@ -0,0 +1,12 @@
+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,
+]
+comments = [
+ 1,
+ 2, #this is ok
+]
diff --git a/tests/data/extras/valid/burntsushi-repo/arrays-hetergeneous.toml b/tests/data/extras/valid/burntsushi-repo/arrays-hetergeneous.toml
new file mode 100644
index 0000000..a246fcf
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/arrays-hetergeneous.toml
@@ -0,0 +1 @@
+mixed = [[1, 2], ["a", "b"], [1.1, 2.1]]
diff --git a/tests/data/extras/valid/burntsushi-repo/arrays-nested.toml b/tests/data/extras/valid/burntsushi-repo/arrays-nested.toml
new file mode 100644
index 0000000..ce33022
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/arrays-nested.toml
@@ -0,0 +1 @@
+nest = [["a"], ["b"]]
diff --git a/tests/data/extras/valid/burntsushi-repo/arrays.toml b/tests/data/extras/valid/burntsushi-repo/arrays.toml
new file mode 100644
index 0000000..db1c400
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/arrays.toml
@@ -0,0 +1,12 @@
+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,
+]
+comments = [
+ 1,
+ 2, #this is ok
+]
diff --git a/tests/data/extras/valid/burntsushi-repo/bool.toml b/tests/data/extras/valid/burntsushi-repo/bool.toml
new file mode 100644
index 0000000..a8a829b
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/bool.toml
@@ -0,0 +1,2 @@
+t = true
+f = false
diff --git a/tests/data/extras/valid/burntsushi-repo/comment-at-eof.toml b/tests/data/extras/valid/burntsushi-repo/comment-at-eof.toml
new file mode 100644
index 0000000..090b474
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/comment-at-eof.toml
@@ -0,0 +1,2 @@
+# This is a full-line comment
+key = "value" # This is a comment at the end of a line
diff --git a/tests/data/extras/valid/burntsushi-repo/comment-at-eof2.toml b/tests/data/extras/valid/burntsushi-repo/comment-at-eof2.toml
new file mode 100644
index 0000000..090b474
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/comment-at-eof2.toml
@@ -0,0 +1,2 @@
+# This is a full-line comment
+key = "value" # This is a comment at the end of a line
diff --git a/tests/data/extras/valid/burntsushi-repo/comment-everywhere.toml b/tests/data/extras/valid/burntsushi-repo/comment-everywhere.toml
new file mode 100644
index 0000000..3dca74c
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/comment-everywhere.toml
@@ -0,0 +1,24 @@
+# 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/tests/data/extras/valid/burntsushi-repo/comment-tricky.toml b/tests/data/extras/valid/burntsushi-repo/comment-tricky.toml
new file mode 100644
index 0000000..c95f94d
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/comment-tricky.toml
@@ -0,0 +1,31 @@
+[section]#attached comment
+#[notsection]
+one = "11"#cmt
+two = "22#"
+three = '#'
+
+four = """# no comment
+# nor this
+#also not comment"""#is_comment
+
+five = 5.5#66
+six = 6#7
+8 = "eight"
+#nine = 99
+ten = 10e2#1
+eleven = 1.11e1#23
+
+["hash#tag"]
+"#!" = "hash bang"
+arr3 = [ "#", '#', """###""" ]
+arr4 = [ 1,# 9, 9,
+2#,9
+,#9
+3#]
+,4]
+arr5 = [[[[#["#"],
+["#"]]]]#]
+]
+tbl1 = { "#" = '}#'}#}}
+
+
diff --git a/tests/data/extras/valid/burntsushi-repo/comments-at-eof.toml b/tests/data/extras/valid/burntsushi-repo/comments-at-eof.toml
new file mode 100644
index 0000000..090b474
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/comments-at-eof.toml
@@ -0,0 +1,2 @@
+# This is a full-line comment
+key = "value" # This is a comment at the end of a line
diff --git a/tests/data/extras/valid/burntsushi-repo/comments-at-eof2.toml b/tests/data/extras/valid/burntsushi-repo/comments-at-eof2.toml
new file mode 100644
index 0000000..026c93a
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/comments-at-eof2.toml
@@ -0,0 +1,2 @@
+# This is a full-line comment
+key = "value" # This is a comment at the end of a line \ No newline at end of file
diff --git a/tests/data/extras/valid/burntsushi-repo/comments-everywhere.toml b/tests/data/extras/valid/burntsushi-repo/comments-everywhere.toml
new file mode 100644
index 0000000..3dca74c
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/comments-everywhere.toml
@@ -0,0 +1,24 @@
+# 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/tests/data/extras/valid/burntsushi-repo/datetime-local-date.toml b/tests/data/extras/valid/burntsushi-repo/datetime-local-date.toml
new file mode 100644
index 0000000..1be4a5f
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/datetime-local-date.toml
@@ -0,0 +1 @@
+bestdayever = 1987-07-05
diff --git a/tests/data/extras/valid/burntsushi-repo/datetime-local-time.toml b/tests/data/extras/valid/burntsushi-repo/datetime-local-time.toml
new file mode 100644
index 0000000..01a56a5
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/datetime-local-time.toml
@@ -0,0 +1,3 @@
+besttimeever = 17:45:00
+milliseconds = 10:32:00.555
+
diff --git a/tests/data/extras/valid/burntsushi-repo/datetime-local.toml b/tests/data/extras/valid/burntsushi-repo/datetime-local.toml
new file mode 100644
index 0000000..cb62ef3
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/datetime-local.toml
@@ -0,0 +1,3 @@
+bestdayever = 1987-07-05T17:45:00
+milliseconds = 1977-12-21T10:32:00.555
+bestdayever_with_space = 1987-07-05 17:45:00
diff --git a/tests/data/extras/valid/burntsushi-repo/datetime-timezone.toml b/tests/data/extras/valid/burntsushi-repo/datetime-timezone.toml
new file mode 100644
index 0000000..e59cb84
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/datetime-timezone.toml
@@ -0,0 +1 @@
+bestdayever = 2017-06-06T12:34:56-05:00
diff --git a/tests/data/extras/valid/burntsushi-repo/datetime.toml b/tests/data/extras/valid/burntsushi-repo/datetime.toml
new file mode 100644
index 0000000..5fa9888
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/datetime.toml
@@ -0,0 +1,4 @@
+bestdayever = 1987-07-05T17:45:00Z
+numoffset = 1977-06-28T07:32:00-05:00
+milliseconds = 1977-12-21T10:32:00.555+07:00
+bestdayever_with_space = 1987-07-05 17:45:00Z
diff --git a/tests/data/extras/valid/burntsushi-repo/double-quote-escape.toml b/tests/data/extras/valid/burntsushi-repo/double-quote-escape.toml
new file mode 100644
index 0000000..78e7e72
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/double-quote-escape.toml
@@ -0,0 +1 @@
+test = "\"one\""
diff --git a/tests/data/extras/valid/burntsushi-repo/empty-file.toml b/tests/data/extras/valid/burntsushi-repo/empty-file.toml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/empty-file.toml
diff --git a/tests/data/extras/valid/burntsushi-repo/empty.toml b/tests/data/extras/valid/burntsushi-repo/empty.toml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/empty.toml
diff --git a/tests/data/extras/valid/burntsushi-repo/escaped-escape.toml b/tests/data/extras/valid/burntsushi-repo/escaped-escape.toml
new file mode 100644
index 0000000..d575876
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/escaped-escape.toml
@@ -0,0 +1 @@
+answer = "\\x64"
diff --git a/tests/data/extras/valid/burntsushi-repo/example.toml b/tests/data/extras/valid/burntsushi-repo/example.toml
new file mode 100644
index 0000000..8cb02e0
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/example.toml
@@ -0,0 +1,5 @@
+best-day-ever = 1987-07-05T17:45:00Z
+
+[numtheory]
+boring = false
+perfection = [6, 28, 496]
diff --git a/tests/data/extras/valid/burntsushi-repo/exponent-part-float.toml b/tests/data/extras/valid/burntsushi-repo/exponent-part-float.toml
new file mode 100644
index 0000000..41bd282
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/exponent-part-float.toml
@@ -0,0 +1,3 @@
+million = 1e6
+minustenth = -1E-1
+beast = 6.66E2
diff --git a/tests/data/extras/valid/burntsushi-repo/float-exponent.toml b/tests/data/extras/valid/burntsushi-repo/float-exponent.toml
new file mode 100644
index 0000000..573e0a8
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/float-exponent.toml
@@ -0,0 +1,8 @@
+lower = 3e2
+upper = 3E2
+neg = 3e-2
+pos = 3E+2
+zero = 3e0
+pointlower = 3.1e2
+pointupper = 3.1E2
+minustenth = -1E-1
diff --git a/tests/data/extras/valid/burntsushi-repo/float-inf-and-nan.toml b/tests/data/extras/valid/burntsushi-repo/float-inf-and-nan.toml
new file mode 100644
index 0000000..c8f8459
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/float-inf-and-nan.toml
@@ -0,0 +1,8 @@
+# We don't encode +nan and -nan back with the signs; many languages don't
+# support a sign on NaN (it doesn't really make much sense).
+nan = nan
+nan_neg = -nan
+nan_plus = +nan
+infinity = inf
+infinity_neg = -inf
+infinity_plus = +inf
diff --git a/tests/data/extras/valid/burntsushi-repo/float-long.toml b/tests/data/extras/valid/burntsushi-repo/float-long.toml
new file mode 100644
index 0000000..9558ae4
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/float-long.toml
@@ -0,0 +1,2 @@
+longpi = 3.141592653589793
+neglongpi = -3.141592653589793
diff --git a/tests/data/extras/valid/burntsushi-repo/float-underscore.toml b/tests/data/extras/valid/burntsushi-repo/float-underscore.toml
new file mode 100644
index 0000000..343353a
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/float-underscore.toml
@@ -0,0 +1,3 @@
+before = 3_141.5927
+after = 3141.592_7
+exponent = 3e1_4
diff --git a/tests/data/extras/valid/burntsushi-repo/float.toml b/tests/data/extras/valid/burntsushi-repo/float.toml
new file mode 100644
index 0000000..5f02322
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/float.toml
@@ -0,0 +1,4 @@
+pi = 3.14
+pospi = +3.14
+negpi = -3.14
+zero-intpart = 0.123
diff --git a/tests/data/extras/valid/burntsushi-repo/implicit-and-explicit-after.toml b/tests/data/extras/valid/burntsushi-repo/implicit-and-explicit-after.toml
new file mode 100644
index 0000000..c0e8865
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/implicit-and-explicit-after.toml
@@ -0,0 +1,5 @@
+[a.b.c]
+answer = 42
+
+[a]
+better = 43
diff --git a/tests/data/extras/valid/burntsushi-repo/implicit-and-explicit-before.toml b/tests/data/extras/valid/burntsushi-repo/implicit-and-explicit-before.toml
new file mode 100644
index 0000000..eee68ff
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/implicit-and-explicit-before.toml
@@ -0,0 +1,5 @@
+[a]
+better = 43
+
+[a.b.c]
+answer = 42
diff --git a/tests/data/extras/valid/burntsushi-repo/implicit-groups.toml b/tests/data/extras/valid/burntsushi-repo/implicit-groups.toml
new file mode 100644
index 0000000..b6333e4
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/implicit-groups.toml
@@ -0,0 +1,2 @@
+[a.b.c]
+answer = 42
diff --git a/tests/data/extras/valid/burntsushi-repo/inline-table-array.toml b/tests/data/extras/valid/burntsushi-repo/inline-table-array.toml
new file mode 100644
index 0000000..3fa60d6
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/inline-table-array.toml
@@ -0,0 +1,3 @@
+people = [{first_name = "Bruce", last_name = "Springsteen"},
+ {first_name = "Eric", last_name = "Clapton"},
+ {first_name = "Bob", last_name = "Seger"}]
diff --git a/tests/data/extras/valid/burntsushi-repo/inline-table-empty.toml b/tests/data/extras/valid/burntsushi-repo/inline-table-empty.toml
new file mode 100644
index 0000000..910d458
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/inline-table-empty.toml
@@ -0,0 +1,6 @@
+empty1 = {}
+empty2 = { }
+empty_in_array = [ { not_empty = 1 }, {} ]
+empty_in_array2 = [{},{not_empty=1}]
+many_empty = [{},{},{}]
+nested_empty = {"empty"={}}
diff --git a/tests/data/extras/valid/burntsushi-repo/inline-table-end-in-bool.toml b/tests/data/extras/valid/burntsushi-repo/inline-table-end-in-bool.toml
new file mode 100644
index 0000000..94e5651
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/inline-table-end-in-bool.toml
@@ -0,0 +1 @@
+black = { python=">3.6", version=">=18.9b0", allow_prereleases=true }
diff --git a/tests/data/extras/valid/burntsushi-repo/inline-table-multiline.toml b/tests/data/extras/valid/burntsushi-repo/inline-table-multiline.toml
new file mode 100644
index 0000000..a653b18
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/inline-table-multiline.toml
@@ -0,0 +1,4 @@
+tbl_multiline = { a = 1, b = """
+multiline
+""", c = """and yet
+another line""", d = 4 }
diff --git a/tests/data/extras/valid/burntsushi-repo/inline-table-nest.toml b/tests/data/extras/valid/burntsushi-repo/inline-table-nest.toml
new file mode 100644
index 0000000..2624c1d
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/inline-table-nest.toml
@@ -0,0 +1,10 @@
+tbl_tbl_empty = { tbl_0 = {} }
+tbl_tbl_val = { tbl_1 = { one = 1 } }
+tbl_arr_tbl = { arr_tbl = [ { one = 1 } ] }
+arr_tbl_tbl = [ { tbl = { one = 1 } } ]
+
+# Array-of-array-of-table is interesting because it can only
+# be represented in inline form.
+arr_arr_tbl_empty = [ [ {} ] ]
+arr_arr_tbl_val = [ [ { one = 1 } ] ]
+arr_arr_tbls = [ [ { one = 1 }, { two = 2 } ] ]
diff --git a/tests/data/extras/valid/burntsushi-repo/inline-table.toml b/tests/data/extras/valid/burntsushi-repo/inline-table.toml
new file mode 100644
index 0000000..257047e
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/inline-table.toml
@@ -0,0 +1,5 @@
+name = { first = "Tom", last = "Preston-Werner" }
+point = { x = 1, y = 2 }
+simple = { a = 1 }
+str-key = { "a" = 1 }
+table-array = [{ "a" = 1 }, { "b" = 2 }]
diff --git a/tests/data/extras/valid/burntsushi-repo/integer-literals.toml b/tests/data/extras/valid/burntsushi-repo/integer-literals.toml
new file mode 100644
index 0000000..6929c43
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/integer-literals.toml
@@ -0,0 +1,6 @@
+bin1 = 0b11010110
+oct1 = 0o01234567
+oct2 = 0o755
+hex1 = 0xDEADBEEF
+hex2 = 0xdeadbeef
+hex3 = 0xdead_beef
diff --git a/tests/data/extras/valid/burntsushi-repo/integer-long.toml b/tests/data/extras/valid/burntsushi-repo/integer-long.toml
new file mode 100644
index 0000000..424a13a
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/integer-long.toml
@@ -0,0 +1,2 @@
+answer = 9223372036854775807
+neganswer = -9223372036854775808
diff --git a/tests/data/extras/valid/burntsushi-repo/integer-underscore.toml b/tests/data/extras/valid/burntsushi-repo/integer-underscore.toml
new file mode 100644
index 0000000..45eb4f7
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/integer-underscore.toml
@@ -0,0 +1 @@
+kilo = 1_000
diff --git a/tests/data/extras/valid/burntsushi-repo/integer.toml b/tests/data/extras/valid/burntsushi-repo/integer.toml
new file mode 100644
index 0000000..b62de30
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/integer.toml
@@ -0,0 +1,4 @@
+answer = 42
+posanswer = +42
+neganswer = -42
+zero = 0
diff --git a/tests/data/extras/valid/burntsushi-repo/key-alphanum.toml b/tests/data/extras/valid/burntsushi-repo/key-alphanum.toml
new file mode 100644
index 0000000..0632e9c
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-alphanum.toml
@@ -0,0 +1,14 @@
+alpha = "a"
+123 = "num"
+000111 = "leading"
+10e3 = "false float"
+one1two2 = "mixed"
+with-dash = "dashed"
+under_score = "___"
+34-11 = 23
+
+[2018_10]
+001 = 1
+
+[a-a-a]
+_ = false
diff --git a/tests/data/extras/valid/burntsushi-repo/key-case-sensitive.toml b/tests/data/extras/valid/burntsushi-repo/key-case-sensitive.toml
new file mode 100644
index 0000000..e02b3a5
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-case-sensitive.toml
@@ -0,0 +1,13 @@
+sectioN = "NN"
+
+[section]
+name = "lower"
+NAME = "upper"
+Name = "capitalized"
+
+[Section]
+name = "different section!!"
+"μ" = "greek small letter mu"
+"Μ" = "greek capital letter MU"
+M = "latin letter M"
+
diff --git a/tests/data/extras/valid/burntsushi-repo/key-dotted.toml b/tests/data/extras/valid/burntsushi-repo/key-dotted.toml
new file mode 100644
index 0000000..f969273
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-dotted.toml
@@ -0,0 +1,5 @@
+name.first = "Tom"
+name.last = "Preston-Werner"
+point.x = 1
+point.y = 2
+l1.l2.l3 = {l4.l5.l6 = 42}
diff --git a/tests/data/extras/valid/burntsushi-repo/key-empty.toml b/tests/data/extras/valid/burntsushi-repo/key-empty.toml
new file mode 100644
index 0000000..0a1640d
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-empty.toml
@@ -0,0 +1 @@
+"" = "blank"
diff --git a/tests/data/extras/valid/burntsushi-repo/key-equals-nospace.toml b/tests/data/extras/valid/burntsushi-repo/key-equals-nospace.toml
new file mode 100644
index 0000000..560901c
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-equals-nospace.toml
@@ -0,0 +1 @@
+answer=42
diff --git a/tests/data/extras/valid/burntsushi-repo/key-escapes.toml b/tests/data/extras/valid/burntsushi-repo/key-escapes.toml
new file mode 100644
index 0000000..aac3c0a
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-escapes.toml
@@ -0,0 +1,10 @@
+"\n" = "newline"
+"\u00c0" = "latin capital letter A with grave"
+"\"" = "just a quote"
+
+["backsp\b\b"]
+
+["\"quoted\""]
+quote = true
+
+["a.b"."\u00c0"]
diff --git a/tests/data/extras/valid/burntsushi-repo/key-numeric.toml b/tests/data/extras/valid/burntsushi-repo/key-numeric.toml
new file mode 100644
index 0000000..532356f
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-numeric.toml
@@ -0,0 +1 @@
+1 = 1
diff --git a/tests/data/extras/valid/burntsushi-repo/key-quoted-dots.toml b/tests/data/extras/valid/burntsushi-repo/key-quoted-dots.toml
new file mode 100644
index 0000000..65fcddf
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-quoted-dots.toml
@@ -0,0 +1,10 @@
+plain = 1
+"with.dot" = 2
+
+[plain_table]
+plain = 3
+"with.dot" = 4
+
+[table.withdot]
+plain = 5
+"key.with.dots" = 6
diff --git a/tests/data/extras/valid/burntsushi-repo/key-space.toml b/tests/data/extras/valid/burntsushi-repo/key-space.toml
new file mode 100644
index 0000000..f4f36c4
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-space.toml
@@ -0,0 +1 @@
+"a b" = 1
diff --git a/tests/data/extras/valid/burntsushi-repo/key-special-chars.toml b/tests/data/extras/valid/burntsushi-repo/key-special-chars.toml
new file mode 100644
index 0000000..cc572be
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-special-chars.toml
@@ -0,0 +1 @@
+"~!@$^&*()_+-`1234567890[]|/?><.,;:'" = 1
diff --git a/tests/data/extras/valid/burntsushi-repo/key-special-word.toml b/tests/data/extras/valid/burntsushi-repo/key-special-word.toml
new file mode 100644
index 0000000..0b836f1
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/key-special-word.toml
@@ -0,0 +1,5 @@
+false = false
+true = 1
+inf = 100000000
+nan = "ceci n'est pas un nombre"
+
diff --git a/tests/data/extras/valid/burntsushi-repo/keys-with-dots.toml b/tests/data/extras/valid/burntsushi-repo/keys-with-dots.toml
new file mode 100644
index 0000000..2490592
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/keys-with-dots.toml
@@ -0,0 +1,10 @@
+plain = 1
+"with.dot" = 2
+
+[plain_table]
+plain = 3
+"with.dot" = 4
+
+[table.withdot]
+plain = 5
+"key.with.dots" = 6 \ No newline at end of file
diff --git a/tests/data/extras/valid/burntsushi-repo/long-float.toml b/tests/data/extras/valid/burntsushi-repo/long-float.toml
new file mode 100644
index 0000000..9558ae4
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/long-float.toml
@@ -0,0 +1,2 @@
+longpi = 3.141592653589793
+neglongpi = -3.141592653589793
diff --git a/tests/data/extras/valid/burntsushi-repo/long-integer.toml b/tests/data/extras/valid/burntsushi-repo/long-integer.toml
new file mode 100644
index 0000000..424a13a
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/long-integer.toml
@@ -0,0 +1,2 @@
+answer = 9223372036854775807
+neganswer = -9223372036854775808
diff --git a/tests/data/extras/valid/burntsushi-repo/multiline-string-accidental-whitespace.toml b/tests/data/extras/valid/burntsushi-repo/multiline-string-accidental-whitespace.toml
new file mode 100644
index 0000000..88c0452
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/multiline-string-accidental-whitespace.toml
@@ -0,0 +1,5 @@
+three_lines = """\
+ The quick brown \
+ fox jumps over \
+ the lazy dog.\
+ """
diff --git a/tests/data/extras/valid/burntsushi-repo/multiline-string-quotes.toml b/tests/data/extras/valid/burntsushi-repo/multiline-string-quotes.toml
new file mode 100644
index 0000000..a71a2ed
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/multiline-string-quotes.toml
@@ -0,0 +1,10 @@
+lit_one = ''''one quote''''
+lit_one_space = ''' 'one quote' '''
+lit_two = '''''two quotes'''''
+lit_two_space = ''' ''two quotes'' '''
+mismatch1 = """aaa'''bbb"""
+mismatch2 = '''aaa"""bbb'''
+one = """"one quote""""
+one_space = """ "one quote" """
+two = """""two quotes"""""
+two_space = """ ""two quotes"" """
diff --git a/tests/data/extras/valid/burntsushi-repo/multiline-string.toml b/tests/data/extras/valid/burntsushi-repo/multiline-string.toml
new file mode 100644
index 0000000..15b1143
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/multiline-string.toml
@@ -0,0 +1,23 @@
+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/tests/data/extras/valid/burntsushi-repo/nested-inline-table-array.toml b/tests/data/extras/valid/burntsushi-repo/nested-inline-table-array.toml
new file mode 100644
index 0000000..e1e24f6
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/nested-inline-table-array.toml
@@ -0,0 +1 @@
+a = [ { b = {} } ]
diff --git a/tests/data/extras/valid/burntsushi-repo/newline-crlf.toml b/tests/data/extras/valid/burntsushi-repo/newline-crlf.toml
new file mode 100644
index 0000000..0030024
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/newline-crlf.toml
@@ -0,0 +1,2 @@
+os = "DOS"
+newline = "crlf"
diff --git a/tests/data/extras/valid/burntsushi-repo/newline-lf.toml b/tests/data/extras/valid/burntsushi-repo/newline-lf.toml
new file mode 100644
index 0000000..0f3377c
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/newline-lf.toml
@@ -0,0 +1,2 @@
+os = "unix"
+newline = "lf"
diff --git a/tests/data/extras/valid/burntsushi-repo/raw-multiline-string.toml b/tests/data/extras/valid/burntsushi-repo/raw-multiline-string.toml
new file mode 100644
index 0000000..8094c03
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/raw-multiline-string.toml
@@ -0,0 +1,9 @@
+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/tests/data/extras/valid/burntsushi-repo/raw-string.toml b/tests/data/extras/valid/burntsushi-repo/raw-string.toml
new file mode 100644
index 0000000..92acd25
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/raw-string.toml
@@ -0,0 +1,7 @@
+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/tests/data/extras/valid/burntsushi-repo/right-curly-brace-after-boolean.toml b/tests/data/extras/valid/burntsushi-repo/right-curly-brace-after-boolean.toml
new file mode 100644
index 0000000..94e5651
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/right-curly-brace-after-boolean.toml
@@ -0,0 +1 @@
+black = { python=">3.6", version=">=18.9b0", allow_prereleases=true }
diff --git a/tests/data/extras/valid/burntsushi-repo/spec-example-1-compact.toml b/tests/data/extras/valid/burntsushi-repo/spec-example-1-compact.toml
new file mode 100644
index 0000000..15e2b84
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/spec-example-1-compact.toml
@@ -0,0 +1,23 @@
+#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"
+]
diff --git a/tests/data/extras/valid/burntsushi-repo/spec-example-1.toml b/tests/data/extras/valid/burntsushi-repo/spec-example-1.toml
new file mode 100644
index 0000000..52fd1e8
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/spec-example-1.toml
@@ -0,0 +1,33 @@
+# 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"
+]
diff --git a/tests/data/extras/valid/burntsushi-repo/string-double-quote-escape.toml b/tests/data/extras/valid/burntsushi-repo/string-double-quote-escape.toml
new file mode 100644
index 0000000..78e7e72
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-double-quote-escape.toml
@@ -0,0 +1 @@
+test = "\"one\""
diff --git a/tests/data/extras/valid/burntsushi-repo/string-empty.toml b/tests/data/extras/valid/burntsushi-repo/string-empty.toml
new file mode 100644
index 0000000..e37e681
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-empty.toml
@@ -0,0 +1 @@
+answer = ""
diff --git a/tests/data/extras/valid/burntsushi-repo/string-escape-tricky.toml b/tests/data/extras/valid/burntsushi-repo/string-escape-tricky.toml
new file mode 100644
index 0000000..dc204cb
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-escape-tricky.toml
@@ -0,0 +1,15 @@
+end_esc = "String does not end here\" but ends here\\"
+lit_end_esc = 'String ends here\'
+
+multiline_unicode = """
+\u00a0"""
+
+multiline_not_unicode = """
+\\u0041"""
+
+multiline_end_esc = """When will it end? \"""...""\" should be here\""""
+
+lit_multiline_not_unicode = '''
+\u007f'''
+
+lit_multiline_end = '''There is no escape\'''
diff --git a/tests/data/extras/valid/burntsushi-repo/string-escaped-escape.toml b/tests/data/extras/valid/burntsushi-repo/string-escaped-escape.toml
new file mode 100644
index 0000000..d575876
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-escaped-escape.toml
@@ -0,0 +1 @@
+answer = "\\x64"
diff --git a/tests/data/extras/valid/burntsushi-repo/string-escapes.toml b/tests/data/extras/valid/burntsushi-repo/string-escapes.toml
new file mode 100644
index 0000000..78f7ebd
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-escapes.toml
@@ -0,0 +1,13 @@
+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."
+delete = "This string has a \u007F delete control code."
+unitseparator = "This string has a \u001F unit separator control code."
diff --git a/tests/data/extras/valid/burntsushi-repo/string-nl.toml b/tests/data/extras/valid/burntsushi-repo/string-nl.toml
new file mode 100644
index 0000000..1e09a8b
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-nl.toml
@@ -0,0 +1,6 @@
+nl_mid = "val\nue"
+nl_end = """value\n"""
+
+lit_nl_end = '''value\n'''
+lit_nl_mid = 'val\nue'
+lit_nl_uni = 'val\ue'
diff --git a/tests/data/extras/valid/burntsushi-repo/string-simple.toml b/tests/data/extras/valid/burntsushi-repo/string-simple.toml
new file mode 100644
index 0000000..e17ade6
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-simple.toml
@@ -0,0 +1 @@
+answer = "You are not drinking enough whisky."
diff --git a/tests/data/extras/valid/burntsushi-repo/string-unicode-escape.toml b/tests/data/extras/valid/burntsushi-repo/string-unicode-escape.toml
new file mode 100644
index 0000000..82faecb
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-unicode-escape.toml
@@ -0,0 +1,2 @@
+answer4 = "\u03B4"
+answer8 = "\U000003B4"
diff --git a/tests/data/extras/valid/burntsushi-repo/string-unicode-literal.toml b/tests/data/extras/valid/burntsushi-repo/string-unicode-literal.toml
new file mode 100644
index 0000000..c65723c
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-unicode-literal.toml
@@ -0,0 +1 @@
+answer = "δ"
diff --git a/tests/data/extras/valid/burntsushi-repo/string-with-pound.toml b/tests/data/extras/valid/burntsushi-repo/string-with-pound.toml
new file mode 100644
index 0000000..5fd8746
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/string-with-pound.toml
@@ -0,0 +1,2 @@
+pound = "We see no # comments here."
+poundcomment = "But there are # some comments here." # Did I # mess you up?
diff --git a/tests/data/extras/valid/burntsushi-repo/table-array-implicit.toml b/tests/data/extras/valid/burntsushi-repo/table-array-implicit.toml
new file mode 100644
index 0000000..3157ac9
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-array-implicit.toml
@@ -0,0 +1,2 @@
+[[albums.songs]]
+name = "Glory Days"
diff --git a/tests/data/extras/valid/burntsushi-repo/table-array-many.toml b/tests/data/extras/valid/burntsushi-repo/table-array-many.toml
new file mode 100644
index 0000000..46062be
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-array-many.toml
@@ -0,0 +1,11 @@
+[[people]]
+first_name = "Bruce"
+last_name = "Springsteen"
+
+[[people]]
+first_name = "Eric"
+last_name = "Clapton"
+
+[[people]]
+first_name = "Bob"
+last_name = "Seger"
diff --git a/tests/data/extras/valid/burntsushi-repo/table-array-nest.toml b/tests/data/extras/valid/burntsushi-repo/table-array-nest.toml
new file mode 100644
index 0000000..d659a3d
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-array-nest.toml
@@ -0,0 +1,17 @@
+[[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/tests/data/extras/valid/burntsushi-repo/table-array-one.toml b/tests/data/extras/valid/burntsushi-repo/table-array-one.toml
new file mode 100644
index 0000000..cd7e1b6
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-array-one.toml
@@ -0,0 +1,3 @@
+[[people]]
+first_name = "Bruce"
+last_name = "Springsteen"
diff --git a/tests/data/extras/valid/burntsushi-repo/table-array-table-array.toml b/tests/data/extras/valid/burntsushi-repo/table-array-table-array.toml
new file mode 100644
index 0000000..a07b0c7
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-array-table-array.toml
@@ -0,0 +1,7 @@
+[[a]]
+ [[a.b]]
+ [a.b.c]
+ d = "val0"
+ [[a.b]]
+ [a.b.c]
+ d = "val1"
diff --git a/tests/data/extras/valid/burntsushi-repo/table-empty.toml b/tests/data/extras/valid/burntsushi-repo/table-empty.toml
new file mode 100644
index 0000000..8bb6a0a
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-empty.toml
@@ -0,0 +1 @@
+[a]
diff --git a/tests/data/extras/valid/burntsushi-repo/table-no-eol.toml b/tests/data/extras/valid/burntsushi-repo/table-no-eol.toml
new file mode 100644
index 0000000..f1098fd
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-no-eol.toml
@@ -0,0 +1 @@
+[table]
diff --git a/tests/data/extras/valid/burntsushi-repo/table-sub-empty.toml b/tests/data/extras/valid/burntsushi-repo/table-sub-empty.toml
new file mode 100644
index 0000000..70b7fe1
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-sub-empty.toml
@@ -0,0 +1,2 @@
+[a]
+[a.b]
diff --git a/tests/data/extras/valid/burntsushi-repo/table-whitespace.toml b/tests/data/extras/valid/burntsushi-repo/table-whitespace.toml
new file mode 100644
index 0000000..daf881d
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-whitespace.toml
@@ -0,0 +1 @@
+["valid key"]
diff --git a/tests/data/extras/valid/burntsushi-repo/table-with-literal-string.toml b/tests/data/extras/valid/burntsushi-repo/table-with-literal-string.toml
new file mode 100644
index 0000000..b81643d
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-with-literal-string.toml
@@ -0,0 +1,4 @@
+['a']
+[a.'"b"']
+[a.'"b"'.c]
+answer = 42
diff --git a/tests/data/extras/valid/burntsushi-repo/table-with-pound.toml b/tests/data/extras/valid/burntsushi-repo/table-with-pound.toml
new file mode 100644
index 0000000..33f2c4f
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-with-pound.toml
@@ -0,0 +1,2 @@
+["key#group"]
+answer = 42
diff --git a/tests/data/extras/valid/burntsushi-repo/table-with-single-quotes.toml b/tests/data/extras/valid/burntsushi-repo/table-with-single-quotes.toml
new file mode 100644
index 0000000..56e52cc
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-with-single-quotes.toml
@@ -0,0 +1,4 @@
+['a']
+[a.'b']
+[a.'b'.c]
+answer = 42
diff --git a/tests/data/extras/valid/burntsushi-repo/table-without-super.toml b/tests/data/extras/valid/burntsushi-repo/table-without-super.toml
new file mode 100644
index 0000000..73ed68b
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/table-without-super.toml
@@ -0,0 +1,5 @@
+# [x] you
+# [x.y] don't
+# [x.y.z] need these
+[x.y.z.w] # for this to work
+[x] # defining a super-table afterwards is ok
diff --git a/tests/data/extras/valid/burntsushi-repo/underscored-float.toml b/tests/data/extras/valid/burntsushi-repo/underscored-float.toml
new file mode 100644
index 0000000..025b02a
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/underscored-float.toml
@@ -0,0 +1 @@
+electron_mass = 9_109.109_383e-3_4
diff --git a/tests/data/extras/valid/burntsushi-repo/underscored-integer.toml b/tests/data/extras/valid/burntsushi-repo/underscored-integer.toml
new file mode 100644
index 0000000..6be8b51
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/underscored-integer.toml
@@ -0,0 +1 @@
+million = 1_000_000
diff --git a/tests/data/extras/valid/burntsushi-repo/unicode-escape.toml b/tests/data/extras/valid/burntsushi-repo/unicode-escape.toml
new file mode 100644
index 0000000..82faecb
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/unicode-escape.toml
@@ -0,0 +1,2 @@
+answer4 = "\u03B4"
+answer8 = "\U000003B4"
diff --git a/tests/data/extras/valid/burntsushi-repo/unicode-literal.toml b/tests/data/extras/valid/burntsushi-repo/unicode-literal.toml
new file mode 100644
index 0000000..c65723c
--- /dev/null
+++ b/tests/data/extras/valid/burntsushi-repo/unicode-literal.toml
@@ -0,0 +1 @@
+answer = "δ"
diff --git a/tests/data/extras/valid/empty-inline-table.toml b/tests/data/extras/valid/empty-inline-table.toml
new file mode 100644
index 0000000..d2d15ab
--- /dev/null
+++ b/tests/data/extras/valid/empty-inline-table.toml
@@ -0,0 +1 @@
+empty ={ }#nothing here
diff --git a/tests/data/extras/valid/five-quotes.toml b/tests/data/extras/valid/five-quotes.toml
new file mode 100644
index 0000000..9616c6c
--- /dev/null
+++ b/tests/data/extras/valid/five-quotes.toml
@@ -0,0 +1,3 @@
+five-quotes = """
+Closing with five quotes
+"""""
diff --git a/tests/data/extras/valid/multiline-basic-str/ends-in-whitespace-escape.toml b/tests/data/extras/valid/multiline-basic-str/ends-in-whitespace-escape.toml
new file mode 100644
index 0000000..ac24f45
--- /dev/null
+++ b/tests/data/extras/valid/multiline-basic-str/ends-in-whitespace-escape.toml
@@ -0,0 +1,6 @@
+beee = """
+heeee
+geeee\
+
+
+ """
diff --git a/tests/data/extras/valid/no-newlines.toml b/tests/data/extras/valid/no-newlines.toml
new file mode 100644
index 0000000..4b87f4c
--- /dev/null
+++ b/tests/data/extras/valid/no-newlines.toml
@@ -0,0 +1 @@
+#no newlines at all here \ No newline at end of file