aboutsummaryrefslogtreecommitdiffstats
path: root/tests/tests-ttl
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-03-30 02:23:50 +0000
committerDavid Robillard <d@drobilla.net>2013-03-30 02:23:50 +0000
commitd9015f088eb9fe9b2eeea2c2508bd0e0d94f709f (patch)
treeeff6c04151f6a2e8f1d6d5ddbf864db5af61d03a /tests/tests-ttl
parent7c662143ede945ac5a96b95ed2d243580f00635a (diff)
downloadserd-d9015f088eb9fe9b2eeea2c2508bd0e0d94f709f.tar.gz
serd-d9015f088eb9fe9b2eeea2c2508bd0e0d94f709f.tar.bz2
serd-d9015f088eb9fe9b2eeea2c2508bd0e0d94f709f.zip
Add some missing tests from latest W3C test suite.
git-svn-id: http://svn.drobilla.net/serd/trunk@443 490d8e77-9747-427b-9fa3-0b8f29cee8a0
Diffstat (limited to 'tests/tests-ttl')
-rw-r--r--tests/tests-ttl/HYPHEN_MINUS_in_localName.nt1
-rw-r--r--tests/tests-ttl/HYPHEN_MINUS_in_localName.ttl2
-rw-r--r--tests/tests-ttl/IRIREF_datatype.nt1
-rw-r--r--tests/tests-ttl/IRIREF_datatype.ttl1
-rw-r--r--tests/tests-ttl/IRI_spo.nt1
-rw-r--r--tests/tests-ttl/IRI_subject.ttl1
-rw-r--r--tests/tests-ttl/IRI_with_all_punctuation.nt1
-rw-r--r--tests/tests-ttl/IRI_with_all_punctuation.ttl1
-rw-r--r--tests/tests-ttl/IRI_with_eight_digit_numeric_escape.ttl1
-rw-r--r--tests/tests-ttl/IRI_with_four_digit_numeric_escape.ttl1
-rw-r--r--tests/tests-ttl/LITERAL1.nt1
-rw-r--r--tests/tests-ttl/LITERAL1.ttl1
-rw-r--r--tests/tests-ttl/LITERAL2.ttl1
-rw-r--r--tests/tests-ttl/LITERAL_LONG1.ttl1
-rw-r--r--tests/tests-ttl/LITERAL_LONG1_with_1_squote.nt1
-rw-r--r--tests/tests-ttl/LITERAL_LONG1_with_1_squote.ttl1
-rw-r--r--tests/tests-ttl/LITERAL_LONG1_with_2_squotes.nt1
-rw-r--r--tests/tests-ttl/LITERAL_LONG1_with_2_squotes.ttl1
-rw-r--r--tests/tests-ttl/LITERAL_LONG2.ttl1
-rw-r--r--tests/tests-ttl/LITERAL_LONG2_with_1_squote.nt1
-rw-r--r--tests/tests-ttl/LITERAL_LONG2_with_1_squote.ttl1
-rw-r--r--tests/tests-ttl/LITERAL_LONG2_with_2_squotes.nt1
-rw-r--r--tests/tests-ttl/LITERAL_LONG2_with_2_squotes.ttl1
-rw-r--r--tests/tests-ttl/LITERAL_LONG2_with_REVERSE_SOLIDUS.nt1
-rw-r--r--tests/tests-ttl/LITERAL_LONG2_with_REVERSE_SOLIDUS.ttl3
-rw-r--r--tests/tests-ttl/anonymous_blank_node_object.nt1
-rw-r--r--tests/tests-ttl/anonymous_blank_node_object.ttl1
-rw-r--r--tests/tests-ttl/anonymous_blank_node_subject.nt1
-rw-r--r--tests/tests-ttl/anonymous_blank_node_subject.ttl1
-rw-r--r--tests/tests-ttl/bareword_a_predicate.nt1
-rw-r--r--tests/tests-ttl/bareword_a_predicate.ttl1
-rw-r--r--tests/tests-ttl/bareword_decimal.nt1
-rw-r--r--tests/tests-ttl/bareword_decimal.ttl1
-rw-r--r--tests/tests-ttl/bareword_double.nt1
-rw-r--r--tests/tests-ttl/bareword_double.ttl1
-rw-r--r--tests/tests-ttl/bareword_integer.ttl1
-rw-r--r--tests/tests-ttl/blankNodePropertyList_as_object.nt2
-rw-r--r--tests/tests-ttl/blankNodePropertyList_as_object.ttl1
-rw-r--r--tests/tests-ttl/blankNodePropertyList_as_subject.nt2
-rw-r--r--tests/tests-ttl/blankNodePropertyList_as_subject.ttl1
-rw-r--r--tests/tests-ttl/blankNodePropertyList_containing_collection.nt3
-rw-r--r--tests/tests-ttl/blankNodePropertyList_containing_collection.ttl1
-rw-r--r--tests/tests-ttl/blankNodePropertyList_with_multiple_triples.nt3
-rw-r--r--tests/tests-ttl/blankNodePropertyList_with_multiple_triples.ttl1
-rw-r--r--tests/tests-ttl/collection_object.nt3
-rw-r--r--tests/tests-ttl/collection_object.ttl1
-rw-r--r--tests/tests-ttl/collection_subject.nt3
-rw-r--r--tests/tests-ttl/collection_subject.ttl1
-rw-r--r--tests/tests-ttl/default_namespace_IRI.ttl2
-rw-r--r--tests/tests-ttl/double_lower_case_e.nt1
-rw-r--r--tests/tests-ttl/double_lower_case_e.ttl1
-rw-r--r--tests/tests-ttl/empty_collection.nt1
-rw-r--r--tests/tests-ttl/empty_collection.ttl1
-rw-r--r--tests/tests-ttl/first.nt7
-rw-r--r--tests/tests-ttl/first.ttl1
-rw-r--r--tests/tests-ttl/labeled_blank_node_object.nt1
-rw-r--r--tests/tests-ttl/labeled_blank_node_object.ttl1
-rw-r--r--tests/tests-ttl/labeled_blank_node_subject.nt1
-rw-r--r--tests/tests-ttl/labeled_blank_node_subject.ttl1
-rw-r--r--tests/tests-ttl/labeled_blank_node_with_leading_digit.nt1
-rw-r--r--tests/tests-ttl/labeled_blank_node_with_leading_digit.ttl1
-rw-r--r--tests/tests-ttl/labeled_blank_node_with_leading_underscore.nt1
-rw-r--r--tests/tests-ttl/labeled_blank_node_with_leading_underscore.ttl1
-rw-r--r--tests/tests-ttl/labeled_blank_node_with_non_leading_extras.ttl1
-rw-r--r--tests/tests-ttl/langtagged_LONG.ttl1
-rw-r--r--tests/tests-ttl/langtagged_non_LONG.nt1
-rw-r--r--tests/tests-ttl/langtagged_non_LONG.ttl1
-rw-r--r--tests/tests-ttl/lantag_with_subtag.nt1
-rw-r--r--tests/tests-ttl/lantag_with_subtag.ttl1
-rw-r--r--tests/tests-ttl/last.nt7
-rw-r--r--tests/tests-ttl/last.ttl1
-rw-r--r--tests/tests-ttl/literal_false.nt1
-rw-r--r--tests/tests-ttl/literal_false.ttl1
-rw-r--r--tests/tests-ttl/literal_true.nt1
-rw-r--r--tests/tests-ttl/literal_true.ttl1
-rw-r--r--tests/tests-ttl/literal_with_BACKSPACE.nt1
-rw-r--r--tests/tests-ttl/literal_with_BACKSPACE.ttl1
-rw-r--r--tests/tests-ttl/literal_with_CARRIAGE_RETURN.nt1
-rw-r--r--tests/tests-ttl/literal_with_CARRIAGE_RETURN.ttl1
-rw-r--r--tests/tests-ttl/literal_with_CHARACTER_TABULATION.nt1
-rw-r--r--tests/tests-ttl/literal_with_CHARACTER_TABULATION.ttl1
-rw-r--r--tests/tests-ttl/literal_with_FORM_FEED.nt1
-rw-r--r--tests/tests-ttl/literal_with_FORM_FEED.ttl1
-rw-r--r--tests/tests-ttl/literal_with_LINE_FEED.nt1
-rw-r--r--tests/tests-ttl/literal_with_LINE_FEED.ttl2
-rw-r--r--tests/tests-ttl/literal_with_REVERSE_SOLIDUS.nt1
-rw-r--r--tests/tests-ttl/literal_with_REVERSE_SOLIDUS.ttl1
-rw-r--r--tests/tests-ttl/literal_with_escaped_BACKSPACE.ttl1
-rw-r--r--tests/tests-ttl/literal_with_escaped_CARRIAGE_RETURN.ttl1
-rw-r--r--tests/tests-ttl/literal_with_escaped_CHARACTER_TABULATION.ttl1
-rw-r--r--tests/tests-ttl/literal_with_escaped_FORM_FEED.ttl1
-rw-r--r--tests/tests-ttl/literal_with_escaped_LINE_FEED.ttl1
-rw-r--r--tests/tests-ttl/literal_with_numeric_escape4.nt1
-rw-r--r--tests/tests-ttl/literal_with_numeric_escape4.ttl1
-rw-r--r--tests/tests-ttl/literal_with_numeric_escape8.ttl1
-rw-r--r--tests/tests-ttl/localName_with_leading_digit.nt1
-rw-r--r--tests/tests-ttl/localName_with_leading_digit.ttl2
-rw-r--r--tests/tests-ttl/localName_with_leading_underscore.nt1
-rw-r--r--tests/tests-ttl/localName_with_leading_underscore.ttl2
-rw-r--r--tests/tests-ttl/localname_with_COLON.nt1
-rw-r--r--tests/tests-ttl/localname_with_COLON.ttl2
-rw-r--r--tests/tests-ttl/manifest.ttl32
-rw-r--r--tests/tests-ttl/negative_numeric.nt1
-rw-r--r--tests/tests-ttl/negative_numeric.ttl1
-rw-r--r--tests/tests-ttl/nested_blankNodePropertyLists.nt3
-rw-r--r--tests/tests-ttl/nested_blankNodePropertyLists.ttl1
-rw-r--r--tests/tests-ttl/nested_collection.nt5
-rw-r--r--tests/tests-ttl/nested_collection.ttl1
-rw-r--r--tests/tests-ttl/numeric_with_leading_0.nt1
-rw-r--r--tests/tests-ttl/numeric_with_leading_0.ttl1
-rw-r--r--tests/tests-ttl/objectList_with_two_objects.nt2
-rw-r--r--tests/tests-ttl/objectList_with_two_objects.ttl1
-rw-r--r--tests/tests-ttl/old_style_base.ttl2
-rw-r--r--tests/tests-ttl/old_style_prefix.ttl2
-rw-r--r--tests/tests-ttl/percent_escaped_localName.nt1
-rw-r--r--tests/tests-ttl/percent_escaped_localName.ttl2
-rw-r--r--tests/tests-ttl/positive_numeric.nt1
-rw-r--r--tests/tests-ttl/positive_numeric.ttl1
-rw-r--r--tests/tests-ttl/predicateObjectList_with_two_objectLists.nt2
-rw-r--r--tests/tests-ttl/predicateObjectList_with_two_objectLists.ttl1
-rw-r--r--tests/tests-ttl/prefix_only_IRI.ttl2
-rw-r--r--tests/tests-ttl/prefix_reassigned_and_used.nt1
-rw-r--r--tests/tests-ttl/prefix_reassigned_and_used.ttl3
-rw-r--r--tests/tests-ttl/prefixed_IRI_object.ttl2
-rw-r--r--tests/tests-ttl/prefixed_IRI_predicate.ttl2
-rw-r--r--tests/tests-ttl/prefixed_name_datatype.ttl2
-rw-r--r--tests/tests-ttl/repeated_semis_at_end.ttl1
-rw-r--r--tests/tests-ttl/repeated_semis_not_at_end.nt1
-rw-r--r--tests/tests-ttl/repeated_semis_not_at_end.ttl1
-rw-r--r--tests/tests-ttl/sole_blankNodePropertyList.nt1
-rw-r--r--tests/tests-ttl/sole_blankNodePropertyList.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-LITERAL2_with_langtag_and_datatype.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-blank-label-dot-end.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-ln-dash-start.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-ln-escape-start.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-ln-escape.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-missing-ns-dot-end.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-missing-ns-dot-start.ttl1
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-ns-dot-end.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-ns-dot-start.ttl2
-rw-r--r--tests/tests-ttl/turtle-syntax-bad-number-dot-in-anon.ttl6
-rw-r--r--tests/tests-ttl/turtle-syntax-blank-label.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-ln-colons.ttl6
-rw-r--r--tests/tests-ttl/turtle-syntax-ln-dots.ttl4
-rw-r--r--tests/tests-ttl/turtle-syntax-ns-dots.ttl2
-rw-r--r--tests/tests-ttl/two_LITERAL_LONG2s.nt2
-rw-r--r--tests/tests-ttl/two_LITERAL_LONG2s.ttl4
-rw-r--r--tests/tests-ttl/underscore_in_localName.nt1
-rw-r--r--tests/tests-ttl/underscore_in_localName.ttl2
149 files changed, 255 insertions, 0 deletions
diff --git a/tests/tests-ttl/HYPHEN_MINUS_in_localName.nt b/tests/tests-ttl/HYPHEN_MINUS_in_localName.nt
new file mode 100644
index 00000000..25546b38
--- /dev/null
+++ b/tests/tests-ttl/HYPHEN_MINUS_in_localName.nt
@@ -0,0 +1 @@
+<http://a.example/s-> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/HYPHEN_MINUS_in_localName.ttl b/tests/tests-ttl/HYPHEN_MINUS_in_localName.ttl
new file mode 100644
index 00000000..0340b8c8
--- /dev/null
+++ b/tests/tests-ttl/HYPHEN_MINUS_in_localName.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+p:s- <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/IRIREF_datatype.nt b/tests/tests-ttl/IRIREF_datatype.nt
new file mode 100644
index 00000000..c333a5f6
--- /dev/null
+++ b/tests/tests-ttl/IRIREF_datatype.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/tests-ttl/IRIREF_datatype.ttl b/tests/tests-ttl/IRIREF_datatype.ttl
new file mode 100644
index 00000000..c333a5f6
--- /dev/null
+++ b/tests/tests-ttl/IRIREF_datatype.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/tests-ttl/IRI_spo.nt b/tests/tests-ttl/IRI_spo.nt
new file mode 100644
index 00000000..01125e50
--- /dev/null
+++ b/tests/tests-ttl/IRI_spo.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/IRI_subject.ttl b/tests/tests-ttl/IRI_subject.ttl
new file mode 100644
index 00000000..01125e50
--- /dev/null
+++ b/tests/tests-ttl/IRI_subject.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/IRI_with_all_punctuation.nt b/tests/tests-ttl/IRI_with_all_punctuation.nt
new file mode 100644
index 00000000..94158773
--- /dev/null
+++ b/tests/tests-ttl/IRI_with_all_punctuation.nt
@@ -0,0 +1 @@
+<scheme:!$%25&amp;'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/IRI_with_all_punctuation.ttl b/tests/tests-ttl/IRI_with_all_punctuation.ttl
new file mode 100644
index 00000000..94158773
--- /dev/null
+++ b/tests/tests-ttl/IRI_with_all_punctuation.ttl
@@ -0,0 +1 @@
+<scheme:!$%25&amp;'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/IRI_with_eight_digit_numeric_escape.ttl b/tests/tests-ttl/IRI_with_eight_digit_numeric_escape.ttl
new file mode 100644
index 00000000..434034e7
--- /dev/null
+++ b/tests/tests-ttl/IRI_with_eight_digit_numeric_escape.ttl
@@ -0,0 +1 @@
+<http://a.example/\U00000073> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/IRI_with_four_digit_numeric_escape.ttl b/tests/tests-ttl/IRI_with_four_digit_numeric_escape.ttl
new file mode 100644
index 00000000..4163636e
--- /dev/null
+++ b/tests/tests-ttl/IRI_with_four_digit_numeric_escape.ttl
@@ -0,0 +1 @@
+<http://a.example/\u0073> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/LITERAL1.nt b/tests/tests-ttl/LITERAL1.nt
new file mode 100644
index 00000000..3aba89e4
--- /dev/null
+++ b/tests/tests-ttl/LITERAL1.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x" .
diff --git a/tests/tests-ttl/LITERAL1.ttl b/tests/tests-ttl/LITERAL1.ttl
new file mode 100644
index 00000000..725a2403
--- /dev/null
+++ b/tests/tests-ttl/LITERAL1.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> 'x' .
diff --git a/tests/tests-ttl/LITERAL2.ttl b/tests/tests-ttl/LITERAL2.ttl
new file mode 100644
index 00000000..3aba89e4
--- /dev/null
+++ b/tests/tests-ttl/LITERAL2.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x" .
diff --git a/tests/tests-ttl/LITERAL_LONG1.ttl b/tests/tests-ttl/LITERAL_LONG1.ttl
new file mode 100644
index 00000000..ab6baa93
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG1.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '''x''' .
diff --git a/tests/tests-ttl/LITERAL_LONG1_with_1_squote.nt b/tests/tests-ttl/LITERAL_LONG1_with_1_squote.nt
new file mode 100644
index 00000000..acf7f58f
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG1_with_1_squote.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x'y" .
diff --git a/tests/tests-ttl/LITERAL_LONG1_with_1_squote.ttl b/tests/tests-ttl/LITERAL_LONG1_with_1_squote.ttl
new file mode 100644
index 00000000..3b93046b
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG1_with_1_squote.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '''x'y''' .
diff --git a/tests/tests-ttl/LITERAL_LONG1_with_2_squotes.nt b/tests/tests-ttl/LITERAL_LONG1_with_2_squotes.nt
new file mode 100644
index 00000000..8ddc52e8
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG1_with_2_squotes.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x''y" .
diff --git a/tests/tests-ttl/LITERAL_LONG1_with_2_squotes.ttl b/tests/tests-ttl/LITERAL_LONG1_with_2_squotes.ttl
new file mode 100644
index 00000000..1219bad3
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG1_with_2_squotes.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '''x''y''' .
diff --git a/tests/tests-ttl/LITERAL_LONG2.ttl b/tests/tests-ttl/LITERAL_LONG2.ttl
new file mode 100644
index 00000000..e37bf4a3
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG2.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> """x""" .
diff --git a/tests/tests-ttl/LITERAL_LONG2_with_1_squote.nt b/tests/tests-ttl/LITERAL_LONG2_with_1_squote.nt
new file mode 100644
index 00000000..05a1fd3a
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG2_with_1_squote.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x\"y" .
diff --git a/tests/tests-ttl/LITERAL_LONG2_with_1_squote.ttl b/tests/tests-ttl/LITERAL_LONG2_with_1_squote.ttl
new file mode 100644
index 00000000..80e389b8
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG2_with_1_squote.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> """x"y""" .
diff --git a/tests/tests-ttl/LITERAL_LONG2_with_2_squotes.nt b/tests/tests-ttl/LITERAL_LONG2_with_2_squotes.nt
new file mode 100644
index 00000000..3e69dc10
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG2_with_2_squotes.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "x\"\"y" .
diff --git a/tests/tests-ttl/LITERAL_LONG2_with_2_squotes.ttl b/tests/tests-ttl/LITERAL_LONG2_with_2_squotes.ttl
new file mode 100644
index 00000000..2f14f5b3
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG2_with_2_squotes.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> """x""y""" .
diff --git a/tests/tests-ttl/LITERAL_LONG2_with_REVERSE_SOLIDUS.nt b/tests/tests-ttl/LITERAL_LONG2_with_REVERSE_SOLIDUS.nt
new file mode 100644
index 00000000..586e364d
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG2_with_REVERSE_SOLIDUS.nt
@@ -0,0 +1 @@
+<http://example.org/ns#s> <http://example.org/ns#p1> "test-\\" .
diff --git a/tests/tests-ttl/LITERAL_LONG2_with_REVERSE_SOLIDUS.ttl b/tests/tests-ttl/LITERAL_LONG2_with_REVERSE_SOLIDUS.ttl
new file mode 100644
index 00000000..2206e33b
--- /dev/null
+++ b/tests/tests-ttl/LITERAL_LONG2_with_REVERSE_SOLIDUS.ttl
@@ -0,0 +1,3 @@
+@prefix : <http://example.org/ns#> .
+
+:s :p1 """test-\\""" .
diff --git a/tests/tests-ttl/anonymous_blank_node_object.nt b/tests/tests-ttl/anonymous_blank_node_object.nt
new file mode 100644
index 00000000..89e88f63
--- /dev/null
+++ b/tests/tests-ttl/anonymous_blank_node_object.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
diff --git a/tests/tests-ttl/anonymous_blank_node_object.ttl b/tests/tests-ttl/anonymous_blank_node_object.ttl
new file mode 100644
index 00000000..0b2ce436
--- /dev/null
+++ b/tests/tests-ttl/anonymous_blank_node_object.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> [] .
diff --git a/tests/tests-ttl/anonymous_blank_node_subject.nt b/tests/tests-ttl/anonymous_blank_node_subject.nt
new file mode 100644
index 00000000..b48df9a7
--- /dev/null
+++ b/tests/tests-ttl/anonymous_blank_node_subject.nt
@@ -0,0 +1 @@
+_:b1 <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/anonymous_blank_node_subject.ttl b/tests/tests-ttl/anonymous_blank_node_subject.ttl
new file mode 100644
index 00000000..17b378c2
--- /dev/null
+++ b/tests/tests-ttl/anonymous_blank_node_subject.ttl
@@ -0,0 +1 @@
+[] <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/bareword_a_predicate.nt b/tests/tests-ttl/bareword_a_predicate.nt
new file mode 100644
index 00000000..afe14252
--- /dev/null
+++ b/tests/tests-ttl/bareword_a_predicate.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://a.example/o> .
diff --git a/tests/tests-ttl/bareword_a_predicate.ttl b/tests/tests-ttl/bareword_a_predicate.ttl
new file mode 100644
index 00000000..66fa0d0c
--- /dev/null
+++ b/tests/tests-ttl/bareword_a_predicate.ttl
@@ -0,0 +1 @@
+<http://a.example/s> a <http://a.example/o> .
diff --git a/tests/tests-ttl/bareword_decimal.nt b/tests/tests-ttl/bareword_decimal.nt
new file mode 100644
index 00000000..e177a9c6
--- /dev/null
+++ b/tests/tests-ttl/bareword_decimal.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "1.0"^^<http://www.w3.org/2001/XMLSchema#decimal> .
diff --git a/tests/tests-ttl/bareword_decimal.ttl b/tests/tests-ttl/bareword_decimal.ttl
new file mode 100644
index 00000000..20955d51
--- /dev/null
+++ b/tests/tests-ttl/bareword_decimal.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> 1.0 .
diff --git a/tests/tests-ttl/bareword_double.nt b/tests/tests-ttl/bareword_double.nt
new file mode 100644
index 00000000..dd8be2fd
--- /dev/null
+++ b/tests/tests-ttl/bareword_double.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "1E0"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/tests/tests-ttl/bareword_double.ttl b/tests/tests-ttl/bareword_double.ttl
new file mode 100644
index 00000000..7ce25b11
--- /dev/null
+++ b/tests/tests-ttl/bareword_double.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> 1E0 .
diff --git a/tests/tests-ttl/bareword_integer.ttl b/tests/tests-ttl/bareword_integer.ttl
new file mode 100644
index 00000000..087e71b6
--- /dev/null
+++ b/tests/tests-ttl/bareword_integer.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> 1 .
diff --git a/tests/tests-ttl/blankNodePropertyList_as_object.nt b/tests/tests-ttl/blankNodePropertyList_as_object.nt
new file mode 100644
index 00000000..528bd844
--- /dev/null
+++ b/tests/tests-ttl/blankNodePropertyList_as_object.nt
@@ -0,0 +1,2 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
+_:b1 <http://a.example/p2> <http://a.example/o2> .
diff --git a/tests/tests-ttl/blankNodePropertyList_as_object.ttl b/tests/tests-ttl/blankNodePropertyList_as_object.ttl
new file mode 100644
index 00000000..aa85a746
--- /dev/null
+++ b/tests/tests-ttl/blankNodePropertyList_as_object.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> [ <http://a.example/p2> <http://a.example/o2> ] .
diff --git a/tests/tests-ttl/blankNodePropertyList_as_subject.nt b/tests/tests-ttl/blankNodePropertyList_as_subject.nt
new file mode 100644
index 00000000..f0768879
--- /dev/null
+++ b/tests/tests-ttl/blankNodePropertyList_as_subject.nt
@@ -0,0 +1,2 @@
+_:b1 <http://a.example/p> <http://a.example/o> .
+_:b1 <http://a.example/p2> <http://a.example/o2> .
diff --git a/tests/tests-ttl/blankNodePropertyList_as_subject.ttl b/tests/tests-ttl/blankNodePropertyList_as_subject.ttl
new file mode 100644
index 00000000..cb2e52aa
--- /dev/null
+++ b/tests/tests-ttl/blankNodePropertyList_as_subject.ttl
@@ -0,0 +1 @@
+[ <http://a.example/p> <http://a.example/o> ] <http://a.example/p2> <http://a.example/o2> .
diff --git a/tests/tests-ttl/blankNodePropertyList_containing_collection.nt b/tests/tests-ttl/blankNodePropertyList_containing_collection.nt
new file mode 100644
index 00000000..e590826b
--- /dev/null
+++ b/tests/tests-ttl/blankNodePropertyList_containing_collection.nt
@@ -0,0 +1,3 @@
+_:b1 <http://a.example/p1> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/tests/tests-ttl/blankNodePropertyList_containing_collection.ttl b/tests/tests-ttl/blankNodePropertyList_containing_collection.ttl
new file mode 100644
index 00000000..bf164c83
--- /dev/null
+++ b/tests/tests-ttl/blankNodePropertyList_containing_collection.ttl
@@ -0,0 +1 @@
+[ <http://a.example/p1> (1) ] .
diff --git a/tests/tests-ttl/blankNodePropertyList_with_multiple_triples.nt b/tests/tests-ttl/blankNodePropertyList_with_multiple_triples.nt
new file mode 100644
index 00000000..8f3fc507
--- /dev/null
+++ b/tests/tests-ttl/blankNodePropertyList_with_multiple_triples.nt
@@ -0,0 +1,3 @@
+_:b1 <http://a.example/p1> <http://a.example/o1> .
+_:b1 <http://a.example/p2> <http://a.example/o2> .
+_:b1 <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/blankNodePropertyList_with_multiple_triples.ttl b/tests/tests-ttl/blankNodePropertyList_with_multiple_triples.ttl
new file mode 100644
index 00000000..6153c13d
--- /dev/null
+++ b/tests/tests-ttl/blankNodePropertyList_with_multiple_triples.ttl
@@ -0,0 +1 @@
+[ <http://a.example/p1> <http://a.example/o1> ; <http://a.example/p2> <http://a.example/o2> ] <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/collection_object.nt b/tests/tests-ttl/collection_object.nt
new file mode 100644
index 00000000..391162e0
--- /dev/null
+++ b/tests/tests-ttl/collection_object.nt
@@ -0,0 +1,3 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/tests/tests-ttl/collection_object.ttl b/tests/tests-ttl/collection_object.ttl
new file mode 100644
index 00000000..6af34715
--- /dev/null
+++ b/tests/tests-ttl/collection_object.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> (1) .
diff --git a/tests/tests-ttl/collection_subject.nt b/tests/tests-ttl/collection_subject.nt
new file mode 100644
index 00000000..502768c8
--- /dev/null
+++ b/tests/tests-ttl/collection_subject.nt
@@ -0,0 +1,3 @@
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b1 <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/collection_subject.ttl b/tests/tests-ttl/collection_subject.ttl
new file mode 100644
index 00000000..00a4c0bc
--- /dev/null
+++ b/tests/tests-ttl/collection_subject.ttl
@@ -0,0 +1 @@
+(1) <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/default_namespace_IRI.ttl b/tests/tests-ttl/default_namespace_IRI.ttl
new file mode 100644
index 00000000..f1f83fd5
--- /dev/null
+++ b/tests/tests-ttl/default_namespace_IRI.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://a.example/>.
+:s <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/double_lower_case_e.nt b/tests/tests-ttl/double_lower_case_e.nt
new file mode 100644
index 00000000..49a792b9
--- /dev/null
+++ b/tests/tests-ttl/double_lower_case_e.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "1e0"^^<http://www.w3.org/2001/XMLSchema#double> .
diff --git a/tests/tests-ttl/double_lower_case_e.ttl b/tests/tests-ttl/double_lower_case_e.ttl
new file mode 100644
index 00000000..5f4552bf
--- /dev/null
+++ b/tests/tests-ttl/double_lower_case_e.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> 1e0 .
diff --git a/tests/tests-ttl/empty_collection.nt b/tests/tests-ttl/empty_collection.nt
new file mode 100644
index 00000000..82726a3f
--- /dev/null
+++ b/tests/tests-ttl/empty_collection.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/tests/tests-ttl/empty_collection.ttl b/tests/tests-ttl/empty_collection.ttl
new file mode 100644
index 00000000..02f9cc07
--- /dev/null
+++ b/tests/tests-ttl/empty_collection.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> () .
diff --git a/tests/tests-ttl/first.nt b/tests/tests-ttl/first.nt
new file mode 100644
index 00000000..d50539f6
--- /dev/null
+++ b/tests/tests-ttl/first.nt
@@ -0,0 +1,7 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/tests/tests-ttl/first.ttl b/tests/tests-ttl/first.ttl
new file mode 100644
index 00000000..44f496cb
--- /dev/null
+++ b/tests/tests-ttl/first.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> ((1) 2) .
diff --git a/tests/tests-ttl/labeled_blank_node_object.nt b/tests/tests-ttl/labeled_blank_node_object.nt
new file mode 100644
index 00000000..2645d4ee
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_object.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> _:o .
diff --git a/tests/tests-ttl/labeled_blank_node_object.ttl b/tests/tests-ttl/labeled_blank_node_object.ttl
new file mode 100644
index 00000000..2645d4ee
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_object.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> _:o .
diff --git a/tests/tests-ttl/labeled_blank_node_subject.nt b/tests/tests-ttl/labeled_blank_node_subject.nt
new file mode 100644
index 00000000..d0c7f458
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_subject.nt
@@ -0,0 +1 @@
+_:s <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/labeled_blank_node_subject.ttl b/tests/tests-ttl/labeled_blank_node_subject.ttl
new file mode 100644
index 00000000..d0c7f458
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_subject.ttl
@@ -0,0 +1 @@
+_:s <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/labeled_blank_node_with_leading_digit.nt b/tests/tests-ttl/labeled_blank_node_with_leading_digit.nt
new file mode 100644
index 00000000..7244d806
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_with_leading_digit.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> _:0 .
diff --git a/tests/tests-ttl/labeled_blank_node_with_leading_digit.ttl b/tests/tests-ttl/labeled_blank_node_with_leading_digit.ttl
new file mode 100644
index 00000000..7244d806
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_with_leading_digit.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> _:0 .
diff --git a/tests/tests-ttl/labeled_blank_node_with_leading_underscore.nt b/tests/tests-ttl/labeled_blank_node_with_leading_underscore.nt
new file mode 100644
index 00000000..15d9ffc8
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_with_leading_underscore.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> _:_ .
diff --git a/tests/tests-ttl/labeled_blank_node_with_leading_underscore.ttl b/tests/tests-ttl/labeled_blank_node_with_leading_underscore.ttl
new file mode 100644
index 00000000..15d9ffc8
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_with_leading_underscore.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> _:_ .
diff --git a/tests/tests-ttl/labeled_blank_node_with_non_leading_extras.ttl b/tests/tests-ttl/labeled_blank_node_with_non_leading_extras.ttl
new file mode 100644
index 00000000..5ae09b7c
--- /dev/null
+++ b/tests/tests-ttl/labeled_blank_node_with_non_leading_extras.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> _:a·̀ͯ‿.⁀ .
diff --git a/tests/tests-ttl/langtagged_LONG.ttl b/tests/tests-ttl/langtagged_LONG.ttl
new file mode 100644
index 00000000..2baefe5d
--- /dev/null
+++ b/tests/tests-ttl/langtagged_LONG.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> """chat"""@en .
diff --git a/tests/tests-ttl/langtagged_non_LONG.nt b/tests/tests-ttl/langtagged_non_LONG.nt
new file mode 100644
index 00000000..1bddb04e
--- /dev/null
+++ b/tests/tests-ttl/langtagged_non_LONG.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "chat"@en .
diff --git a/tests/tests-ttl/langtagged_non_LONG.ttl b/tests/tests-ttl/langtagged_non_LONG.ttl
new file mode 100644
index 00000000..1bddb04e
--- /dev/null
+++ b/tests/tests-ttl/langtagged_non_LONG.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "chat"@en .
diff --git a/tests/tests-ttl/lantag_with_subtag.nt b/tests/tests-ttl/lantag_with_subtag.nt
new file mode 100644
index 00000000..46c9d53a
--- /dev/null
+++ b/tests/tests-ttl/lantag_with_subtag.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "chat"@en-us .
diff --git a/tests/tests-ttl/lantag_with_subtag.ttl b/tests/tests-ttl/lantag_with_subtag.ttl
new file mode 100644
index 00000000..46c9d53a
--- /dev/null
+++ b/tests/tests-ttl/lantag_with_subtag.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "chat"@en-us .
diff --git a/tests/tests-ttl/last.nt b/tests/tests-ttl/last.nt
new file mode 100644
index 00000000..27c21b3d
--- /dev/null
+++ b/tests/tests-ttl/last.nt
@@ -0,0 +1,7 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b3 .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "2"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/tests/tests-ttl/last.ttl b/tests/tests-ttl/last.ttl
new file mode 100644
index 00000000..1254c261
--- /dev/null
+++ b/tests/tests-ttl/last.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> (1 (2)) .
diff --git a/tests/tests-ttl/literal_false.nt b/tests/tests-ttl/literal_false.nt
new file mode 100644
index 00000000..5bbbae84
--- /dev/null
+++ b/tests/tests-ttl/literal_false.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/tests/tests-ttl/literal_false.ttl b/tests/tests-ttl/literal_false.ttl
new file mode 100644
index 00000000..6a32e362
--- /dev/null
+++ b/tests/tests-ttl/literal_false.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> false .
diff --git a/tests/tests-ttl/literal_true.nt b/tests/tests-ttl/literal_true.nt
new file mode 100644
index 00000000..054b229f
--- /dev/null
+++ b/tests/tests-ttl/literal_true.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
diff --git a/tests/tests-ttl/literal_true.ttl b/tests/tests-ttl/literal_true.ttl
new file mode 100644
index 00000000..6c5bb742
--- /dev/null
+++ b/tests/tests-ttl/literal_true.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> true .
diff --git a/tests/tests-ttl/literal_with_BACKSPACE.nt b/tests/tests-ttl/literal_with_BACKSPACE.nt
new file mode 100644
index 00000000..7dba113b
--- /dev/null
+++ b/tests/tests-ttl/literal_with_BACKSPACE.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\u0008" .
diff --git a/tests/tests-ttl/literal_with_BACKSPACE.ttl b/tests/tests-ttl/literal_with_BACKSPACE.ttl
new file mode 100644
index 00000000..17b2880f
--- /dev/null
+++ b/tests/tests-ttl/literal_with_BACKSPACE.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '' .
diff --git a/tests/tests-ttl/literal_with_CARRIAGE_RETURN.nt b/tests/tests-ttl/literal_with_CARRIAGE_RETURN.nt
new file mode 100644
index 00000000..91b85c89
--- /dev/null
+++ b/tests/tests-ttl/literal_with_CARRIAGE_RETURN.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\r" .
diff --git a/tests/tests-ttl/literal_with_CARRIAGE_RETURN.ttl b/tests/tests-ttl/literal_with_CARRIAGE_RETURN.ttl
new file mode 100644
index 00000000..3cd1d89c
--- /dev/null
+++ b/tests/tests-ttl/literal_with_CARRIAGE_RETURN.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> ''' ''' .
diff --git a/tests/tests-ttl/literal_with_CHARACTER_TABULATION.nt b/tests/tests-ttl/literal_with_CHARACTER_TABULATION.nt
new file mode 100644
index 00000000..a6a9d9f0
--- /dev/null
+++ b/tests/tests-ttl/literal_with_CHARACTER_TABULATION.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\t" .
diff --git a/tests/tests-ttl/literal_with_CHARACTER_TABULATION.ttl b/tests/tests-ttl/literal_with_CHARACTER_TABULATION.ttl
new file mode 100644
index 00000000..37fbd9d1
--- /dev/null
+++ b/tests/tests-ttl/literal_with_CHARACTER_TABULATION.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> ' ' .
diff --git a/tests/tests-ttl/literal_with_FORM_FEED.nt b/tests/tests-ttl/literal_with_FORM_FEED.nt
new file mode 100644
index 00000000..2a4490b3
--- /dev/null
+++ b/tests/tests-ttl/literal_with_FORM_FEED.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\u000C" .
diff --git a/tests/tests-ttl/literal_with_FORM_FEED.ttl b/tests/tests-ttl/literal_with_FORM_FEED.ttl
new file mode 100644
index 00000000..76d6ee77
--- /dev/null
+++ b/tests/tests-ttl/literal_with_FORM_FEED.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> ' ' .
diff --git a/tests/tests-ttl/literal_with_LINE_FEED.nt b/tests/tests-ttl/literal_with_LINE_FEED.nt
new file mode 100644
index 00000000..462f97ac
--- /dev/null
+++ b/tests/tests-ttl/literal_with_LINE_FEED.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\n" .
diff --git a/tests/tests-ttl/literal_with_LINE_FEED.ttl b/tests/tests-ttl/literal_with_LINE_FEED.ttl
new file mode 100644
index 00000000..50cc8a8b
--- /dev/null
+++ b/tests/tests-ttl/literal_with_LINE_FEED.ttl
@@ -0,0 +1,2 @@
+<http://a.example/s> <http://a.example/p> '''
+''' .
diff --git a/tests/tests-ttl/literal_with_REVERSE_SOLIDUS.nt b/tests/tests-ttl/literal_with_REVERSE_SOLIDUS.nt
new file mode 100644
index 00000000..ebc846ed
--- /dev/null
+++ b/tests/tests-ttl/literal_with_REVERSE_SOLIDUS.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "\\" .
diff --git a/tests/tests-ttl/literal_with_REVERSE_SOLIDUS.ttl b/tests/tests-ttl/literal_with_REVERSE_SOLIDUS.ttl
new file mode 100644
index 00000000..380a3d04
--- /dev/null
+++ b/tests/tests-ttl/literal_with_REVERSE_SOLIDUS.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '\\' .
diff --git a/tests/tests-ttl/literal_with_escaped_BACKSPACE.ttl b/tests/tests-ttl/literal_with_escaped_BACKSPACE.ttl
new file mode 100644
index 00000000..5284b9b6
--- /dev/null
+++ b/tests/tests-ttl/literal_with_escaped_BACKSPACE.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '\b' .
diff --git a/tests/tests-ttl/literal_with_escaped_CARRIAGE_RETURN.ttl b/tests/tests-ttl/literal_with_escaped_CARRIAGE_RETURN.ttl
new file mode 100644
index 00000000..a28e7c0b
--- /dev/null
+++ b/tests/tests-ttl/literal_with_escaped_CARRIAGE_RETURN.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '\r' .
diff --git a/tests/tests-ttl/literal_with_escaped_CHARACTER_TABULATION.ttl b/tests/tests-ttl/literal_with_escaped_CHARACTER_TABULATION.ttl
new file mode 100644
index 00000000..67966f78
--- /dev/null
+++ b/tests/tests-ttl/literal_with_escaped_CHARACTER_TABULATION.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '\t' .
diff --git a/tests/tests-ttl/literal_with_escaped_FORM_FEED.ttl b/tests/tests-ttl/literal_with_escaped_FORM_FEED.ttl
new file mode 100644
index 00000000..21acace9
--- /dev/null
+++ b/tests/tests-ttl/literal_with_escaped_FORM_FEED.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '\f' .
diff --git a/tests/tests-ttl/literal_with_escaped_LINE_FEED.ttl b/tests/tests-ttl/literal_with_escaped_LINE_FEED.ttl
new file mode 100644
index 00000000..b53f49ec
--- /dev/null
+++ b/tests/tests-ttl/literal_with_escaped_LINE_FEED.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '\n' .
diff --git a/tests/tests-ttl/literal_with_numeric_escape4.nt b/tests/tests-ttl/literal_with_numeric_escape4.nt
new file mode 100644
index 00000000..0b35a89a
--- /dev/null
+++ b/tests/tests-ttl/literal_with_numeric_escape4.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "o" .
diff --git a/tests/tests-ttl/literal_with_numeric_escape4.ttl b/tests/tests-ttl/literal_with_numeric_escape4.ttl
new file mode 100644
index 00000000..2b4e0175
--- /dev/null
+++ b/tests/tests-ttl/literal_with_numeric_escape4.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '\u006F' .
diff --git a/tests/tests-ttl/literal_with_numeric_escape8.ttl b/tests/tests-ttl/literal_with_numeric_escape8.ttl
new file mode 100644
index 00000000..8d0e4ef2
--- /dev/null
+++ b/tests/tests-ttl/literal_with_numeric_escape8.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> '\U0000006F' .
diff --git a/tests/tests-ttl/localName_with_leading_digit.nt b/tests/tests-ttl/localName_with_leading_digit.nt
new file mode 100644
index 00000000..a9e101e5
--- /dev/null
+++ b/tests/tests-ttl/localName_with_leading_digit.nt
@@ -0,0 +1 @@
+<http://a.example/0> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/localName_with_leading_digit.ttl b/tests/tests-ttl/localName_with_leading_digit.ttl
new file mode 100644
index 00000000..65da2499
--- /dev/null
+++ b/tests/tests-ttl/localName_with_leading_digit.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+p:0 <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/localName_with_leading_underscore.nt b/tests/tests-ttl/localName_with_leading_underscore.nt
new file mode 100644
index 00000000..e042a7b9
--- /dev/null
+++ b/tests/tests-ttl/localName_with_leading_underscore.nt
@@ -0,0 +1 @@
+<http://a.example/_> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/localName_with_leading_underscore.ttl b/tests/tests-ttl/localName_with_leading_underscore.ttl
new file mode 100644
index 00000000..762ace98
--- /dev/null
+++ b/tests/tests-ttl/localName_with_leading_underscore.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+p:_ <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/localname_with_COLON.nt b/tests/tests-ttl/localname_with_COLON.nt
new file mode 100644
index 00000000..eb966ca3
--- /dev/null
+++ b/tests/tests-ttl/localname_with_COLON.nt
@@ -0,0 +1 @@
+<http://a.example/s:> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/localname_with_COLON.ttl b/tests/tests-ttl/localname_with_COLON.ttl
new file mode 100644
index 00000000..1d45f20f
--- /dev/null
+++ b/tests/tests-ttl/localname_with_COLON.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+p:s: <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/manifest.ttl b/tests/tests-ttl/manifest.ttl
index 3aee41ae..195edc9e 100644
--- a/tests/tests-ttl/manifest.ttl
+++ b/tests/tests-ttl/manifest.ttl
@@ -58,8 +58,12 @@
<#blankNodePropertyList_as_object>
<#blankNodePropertyList_with_multiple_triples>
<#nested_blankNodePropertyLists>
+ <#blankNodePropertyList_containing_collection>
+ <#collection_subject>
+ <#collection_object>
<#empty_collection>
<#nested_collection>
+ <#first>
<#last>
<#LITERAL1>
<#LITERAL_LONG1>
@@ -504,6 +508,27 @@
mf:result <nested_blankNodePropertyLists.nt> ;
.
+<#blankNodePropertyList_containing_collection> rdf:type rdft:TestTurtleEval ;
+ mf:name "blankNodePropertyList_containing_collection" ;
+ rdfs:comment "blankNodePropertyList containing collection [ <p1> ( … ) ]" ;
+ mf:action <blankNodePropertyList_containing_collection.ttl> ;
+ mf:result <blankNodePropertyList_containing_collection.nt> ;
+ .
+
+<#collection_subject> rdf:type rdft:TestTurtleEval ;
+ mf:name "collection_subject" ;
+ rdfs:comment "collection subject" ;
+ mf:action <collection_subject.ttl> ;
+ mf:result <collection_subject.nt> ;
+ .
+
+<#collection_object> rdf:type rdft:TestTurtleEval ;
+ mf:name "collection_object" ;
+ rdfs:comment "collection object" ;
+ mf:action <collection_object.ttl> ;
+ mf:result <collection_object.nt> ;
+ .
+
<#empty_collection> rdf:type rdft:TestTurtleEval ;
mf:name "empty_collection" ;
rdfs:comment "empty collection ()" ;
@@ -518,6 +543,13 @@
mf:result <nested_collection.nt> ;
.
+<#first> rdf:type rdft:TestTurtleEval ;
+ mf:name "first" ;
+ rdfs:comment "first, not last, non-empty nested collection" ;
+ mf:action <first.ttl> ;
+ mf:result <first.nt> ;
+ .
+
<#last> rdf:type rdft:TestTurtleEval ;
mf:name "last" ;
rdfs:comment "last, not first, non-empty nested collection" ;
diff --git a/tests/tests-ttl/negative_numeric.nt b/tests/tests-ttl/negative_numeric.nt
new file mode 100644
index 00000000..4baf628d
--- /dev/null
+++ b/tests/tests-ttl/negative_numeric.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "-1"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/tests-ttl/negative_numeric.ttl b/tests/tests-ttl/negative_numeric.ttl
new file mode 100644
index 00000000..a6a7f57b
--- /dev/null
+++ b/tests/tests-ttl/negative_numeric.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> -1 .
diff --git a/tests/tests-ttl/nested_blankNodePropertyLists.nt b/tests/tests-ttl/nested_blankNodePropertyLists.nt
new file mode 100644
index 00000000..5284c007
--- /dev/null
+++ b/tests/tests-ttl/nested_blankNodePropertyLists.nt
@@ -0,0 +1,3 @@
+_:b1 <http://a.example/p1> _:b2 .
+_:b2 <http://a.example/p2> <http://a.example/o2> .
+_:b1 <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/nested_blankNodePropertyLists.ttl b/tests/tests-ttl/nested_blankNodePropertyLists.ttl
new file mode 100644
index 00000000..a3e4681c
--- /dev/null
+++ b/tests/tests-ttl/nested_blankNodePropertyLists.ttl
@@ -0,0 +1 @@
+[ <http://a.example/p1> [ <http://a.example/p2> <http://a.example/o2> ] ; <http://a.example/p> <http://a.example/o> ].
diff --git a/tests/tests-ttl/nested_collection.nt b/tests/tests-ttl/nested_collection.nt
new file mode 100644
index 00000000..eaea2847
--- /dev/null
+++ b/tests/tests-ttl/nested_collection.nt
@@ -0,0 +1,5 @@
+<http://a.example/s> <http://a.example/p> _:b1 .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "1"^^<http://www.w3.org/2001/XMLSchema#integer> .
+_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
+_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
diff --git a/tests/tests-ttl/nested_collection.ttl b/tests/tests-ttl/nested_collection.ttl
new file mode 100644
index 00000000..944e7c6b
--- /dev/null
+++ b/tests/tests-ttl/nested_collection.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> ((1)) .
diff --git a/tests/tests-ttl/numeric_with_leading_0.nt b/tests/tests-ttl/numeric_with_leading_0.nt
new file mode 100644
index 00000000..1df5c472
--- /dev/null
+++ b/tests/tests-ttl/numeric_with_leading_0.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "01"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/tests-ttl/numeric_with_leading_0.ttl b/tests/tests-ttl/numeric_with_leading_0.ttl
new file mode 100644
index 00000000..a5eac209
--- /dev/null
+++ b/tests/tests-ttl/numeric_with_leading_0.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> 01 .
diff --git a/tests/tests-ttl/objectList_with_two_objects.nt b/tests/tests-ttl/objectList_with_two_objects.nt
new file mode 100644
index 00000000..7f8e9c0f
--- /dev/null
+++ b/tests/tests-ttl/objectList_with_two_objects.nt
@@ -0,0 +1,2 @@
+<http://a.example/s> <http://a.example/p> <http://a.example/o1> .
+<http://a.example/s> <http://a.example/p> <http://a.example/o2> .
diff --git a/tests/tests-ttl/objectList_with_two_objects.ttl b/tests/tests-ttl/objectList_with_two_objects.ttl
new file mode 100644
index 00000000..b12f02d1
--- /dev/null
+++ b/tests/tests-ttl/objectList_with_two_objects.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> <http://a.example/o1>, <http://a.example/o2> .
diff --git a/tests/tests-ttl/old_style_base.ttl b/tests/tests-ttl/old_style_base.ttl
new file mode 100644
index 00000000..f0f4c03c
--- /dev/null
+++ b/tests/tests-ttl/old_style_base.ttl
@@ -0,0 +1,2 @@
+@base <http://a.example/>.
+<s> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/old_style_prefix.ttl b/tests/tests-ttl/old_style_prefix.ttl
new file mode 100644
index 00000000..59595672
--- /dev/null
+++ b/tests/tests-ttl/old_style_prefix.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+p:s <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/percent_escaped_localName.nt b/tests/tests-ttl/percent_escaped_localName.nt
new file mode 100644
index 00000000..e0af4b62
--- /dev/null
+++ b/tests/tests-ttl/percent_escaped_localName.nt
@@ -0,0 +1 @@
+<http://a.example/%25> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/percent_escaped_localName.ttl b/tests/tests-ttl/percent_escaped_localName.ttl
new file mode 100644
index 00000000..0564ccab
--- /dev/null
+++ b/tests/tests-ttl/percent_escaped_localName.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+p:%25 <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/positive_numeric.nt b/tests/tests-ttl/positive_numeric.nt
new file mode 100644
index 00000000..96e6086a
--- /dev/null
+++ b/tests/tests-ttl/positive_numeric.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> "+1"^^<http://www.w3.org/2001/XMLSchema#integer> .
diff --git a/tests/tests-ttl/positive_numeric.ttl b/tests/tests-ttl/positive_numeric.ttl
new file mode 100644
index 00000000..606691d9
--- /dev/null
+++ b/tests/tests-ttl/positive_numeric.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p> +1 .
diff --git a/tests/tests-ttl/predicateObjectList_with_two_objectLists.nt b/tests/tests-ttl/predicateObjectList_with_two_objectLists.nt
new file mode 100644
index 00000000..274182c7
--- /dev/null
+++ b/tests/tests-ttl/predicateObjectList_with_two_objectLists.nt
@@ -0,0 +1,2 @@
+<http://a.example/s> <http://a.example/p1> <http://a.example/o1> .
+<http://a.example/s> <http://a.example/p2> <http://a.example/o2> .
diff --git a/tests/tests-ttl/predicateObjectList_with_two_objectLists.ttl b/tests/tests-ttl/predicateObjectList_with_two_objectLists.ttl
new file mode 100644
index 00000000..337b132f
--- /dev/null
+++ b/tests/tests-ttl/predicateObjectList_with_two_objectLists.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p1> <http://a.example/o1>; <http://a.example/p2> <http://a.example/o2> .
diff --git a/tests/tests-ttl/prefix_only_IRI.ttl b/tests/tests-ttl/prefix_only_IRI.ttl
new file mode 100644
index 00000000..9ff66603
--- /dev/null
+++ b/tests/tests-ttl/prefix_only_IRI.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/s>.
+p: <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/prefix_reassigned_and_used.nt b/tests/tests-ttl/prefix_reassigned_and_used.nt
new file mode 100644
index 00000000..68bc9efe
--- /dev/null
+++ b/tests/tests-ttl/prefix_reassigned_and_used.nt
@@ -0,0 +1 @@
+<http://b.example/s> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/prefix_reassigned_and_used.ttl b/tests/tests-ttl/prefix_reassigned_and_used.ttl
new file mode 100644
index 00000000..1f948597
--- /dev/null
+++ b/tests/tests-ttl/prefix_reassigned_and_used.ttl
@@ -0,0 +1,3 @@
+@prefix p: <http://a.example/>.
+@prefix p: <http://b.example/>.
+p:s <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/prefixed_IRI_object.ttl b/tests/tests-ttl/prefixed_IRI_object.ttl
new file mode 100644
index 00000000..c2d50362
--- /dev/null
+++ b/tests/tests-ttl/prefixed_IRI_object.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+<http://a.example/s> <http://a.example/p> p:o .
diff --git a/tests/tests-ttl/prefixed_IRI_predicate.ttl b/tests/tests-ttl/prefixed_IRI_predicate.ttl
new file mode 100644
index 00000000..2c1e5cc7
--- /dev/null
+++ b/tests/tests-ttl/prefixed_IRI_predicate.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+<http://a.example/s> p:p <http://a.example/o> .
diff --git a/tests/tests-ttl/prefixed_name_datatype.ttl b/tests/tests-ttl/prefixed_name_datatype.ttl
new file mode 100644
index 00000000..4a526073
--- /dev/null
+++ b/tests/tests-ttl/prefixed_name_datatype.ttl
@@ -0,0 +1,2 @@
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+<http://a.example/s> <http://a.example/p> "1"^^xsd:integer .
diff --git a/tests/tests-ttl/repeated_semis_at_end.ttl b/tests/tests-ttl/repeated_semis_at_end.ttl
new file mode 100644
index 00000000..8a4d9356
--- /dev/null
+++ b/tests/tests-ttl/repeated_semis_at_end.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p1> <http://a.example/o1>;; <http://a.example/p2> <http://a.example/o2> .
diff --git a/tests/tests-ttl/repeated_semis_not_at_end.nt b/tests/tests-ttl/repeated_semis_not_at_end.nt
new file mode 100644
index 00000000..9ac6005f
--- /dev/null
+++ b/tests/tests-ttl/repeated_semis_not_at_end.nt
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p1> <http://a.example/o1> .
diff --git a/tests/tests-ttl/repeated_semis_not_at_end.ttl b/tests/tests-ttl/repeated_semis_not_at_end.ttl
new file mode 100644
index 00000000..3c8144f3
--- /dev/null
+++ b/tests/tests-ttl/repeated_semis_not_at_end.ttl
@@ -0,0 +1 @@
+<http://a.example/s> <http://a.example/p1> <http://a.example/o1>;; .
diff --git a/tests/tests-ttl/sole_blankNodePropertyList.nt b/tests/tests-ttl/sole_blankNodePropertyList.nt
new file mode 100644
index 00000000..b48df9a7
--- /dev/null
+++ b/tests/tests-ttl/sole_blankNodePropertyList.nt
@@ -0,0 +1 @@
+_:b1 <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/sole_blankNodePropertyList.ttl b/tests/tests-ttl/sole_blankNodePropertyList.ttl
new file mode 100644
index 00000000..5cc300f3
--- /dev/null
+++ b/tests/tests-ttl/sole_blankNodePropertyList.ttl
@@ -0,0 +1 @@
+[ <http://a.example/p> <http://a.example/o> ] .
diff --git a/tests/tests-ttl/turtle-syntax-bad-LITERAL2_with_langtag_and_datatype.ttl b/tests/tests-ttl/turtle-syntax-bad-LITERAL2_with_langtag_and_datatype.ttl
new file mode 100644
index 00000000..56180417
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-LITERAL2_with_langtag_and_datatype.ttl
@@ -0,0 +1 @@
+<http://example.org/resource> <http://example.org#pred> "value"@en^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
diff --git a/tests/tests-ttl/turtle-syntax-bad-blank-label-dot-end.ttl b/tests/tests-ttl/turtle-syntax-bad-blank-label-dot-end.ttl
new file mode 100644
index 00000000..613e775f
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-blank-label-dot-end.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+_:b1. :p :o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-ln-dash-start.ttl b/tests/tests-ttl/turtle-syntax-bad-ln-dash-start.ttl
new file mode 100644
index 00000000..291bdda3
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-ln-dash-start.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p :-o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-ln-escape-start.ttl b/tests/tests-ttl/turtle-syntax-bad-ln-escape-start.ttl
new file mode 100644
index 00000000..d1661bd7
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-ln-escape-start.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p :%2o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-ln-escape.ttl b/tests/tests-ttl/turtle-syntax-bad-ln-escape.ttl
new file mode 100644
index 00000000..585e28b5
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-ln-escape.ttl
@@ -0,0 +1,2 @@
+@prefix : <http://example/> .
+:s :p :o%2 .
diff --git a/tests/tests-ttl/turtle-syntax-bad-missing-ns-dot-end.ttl b/tests/tests-ttl/turtle-syntax-bad-missing-ns-dot-end.ttl
new file mode 100644
index 00000000..d06f4e69
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-missing-ns-dot-end.ttl
@@ -0,0 +1 @@
+valid:s valid:p invalid.:o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-missing-ns-dot-start.ttl b/tests/tests-ttl/turtle-syntax-bad-missing-ns-dot-start.ttl
new file mode 100644
index 00000000..23514bcc
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-missing-ns-dot-start.ttl
@@ -0,0 +1 @@
+.undefined:s .undefined:p .undefined:o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-ns-dot-end.ttl b/tests/tests-ttl/turtle-syntax-bad-ns-dot-end.ttl
new file mode 100644
index 00000000..a99fc98d
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-ns-dot-end.ttl
@@ -0,0 +1,2 @@
+@prefix eg. : <http://example/> .
+eg.:s eg.:p eg.:o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-ns-dot-start.ttl b/tests/tests-ttl/turtle-syntax-bad-ns-dot-start.ttl
new file mode 100644
index 00000000..b3993dd7
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-ns-dot-start.ttl
@@ -0,0 +1,2 @@
+@prefix .eg : <http://example/> .
+.eg:s .eg:p .eg:o .
diff --git a/tests/tests-ttl/turtle-syntax-bad-number-dot-in-anon.ttl b/tests/tests-ttl/turtle-syntax-bad-number-dot-in-anon.ttl
new file mode 100644
index 00000000..46d15f9a
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-bad-number-dot-in-anon.ttl
@@ -0,0 +1,6 @@
+@prefix : <http://example/> .
+
+:s
+ :p [
+ :p1 27.
+ ] .
diff --git a/tests/tests-ttl/turtle-syntax-blank-label.ttl b/tests/tests-ttl/turtle-syntax-blank-label.ttl
new file mode 100644
index 00000000..3e3e516d
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-blank-label.ttl
@@ -0,0 +1,4 @@
+@prefix : <http://example/> .
+_:0b :p :o . # Starts with digit
+_:_b :p :o . # Starts with underscore
+_:b.0 :p :o . # Contains dot, ends with digit
diff --git a/tests/tests-ttl/turtle-syntax-ln-colons.ttl b/tests/tests-ttl/turtle-syntax-ln-colons.ttl
new file mode 100644
index 00000000..397989db
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-ln-colons.ttl
@@ -0,0 +1,6 @@
+@prefix : <http://example/> .
+:s:1 :p:1 :o:1 .
+:s::2 :p::2 :o::2 .
+:3:s :3:p :3 .
+::s ::p ::o .
+::s: ::p: ::o: .
diff --git a/tests/tests-ttl/turtle-syntax-ln-dots.ttl b/tests/tests-ttl/turtle-syntax-ln-dots.ttl
new file mode 100644
index 00000000..230381a1
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-ln-dots.ttl
@@ -0,0 +1,4 @@
+@prefix : <http://example/> .
+:s.1 :p.1 :o.1 .
+:s..2 :p..2 :o..2.
+:3.s :3.p :3.
diff --git a/tests/tests-ttl/turtle-syntax-ns-dots.ttl b/tests/tests-ttl/turtle-syntax-ns-dots.ttl
new file mode 100644
index 00000000..78465870
--- /dev/null
+++ b/tests/tests-ttl/turtle-syntax-ns-dots.ttl
@@ -0,0 +1,2 @@
+@prefix e.g: <http://example/> .
+e.g:s e.g:p e.g:o .
diff --git a/tests/tests-ttl/two_LITERAL_LONG2s.nt b/tests/tests-ttl/two_LITERAL_LONG2s.nt
new file mode 100644
index 00000000..af94fe6a
--- /dev/null
+++ b/tests/tests-ttl/two_LITERAL_LONG2s.nt
@@ -0,0 +1,2 @@
+<http://example.org/ex#a> <http://example.org/ex#b> "first long literal" .
+<http://example.org/ex#c> <http://example.org/ex#d> "second long literal" .
diff --git a/tests/tests-ttl/two_LITERAL_LONG2s.ttl b/tests/tests-ttl/two_LITERAL_LONG2s.ttl
new file mode 100644
index 00000000..ceaad3d4
--- /dev/null
+++ b/tests/tests-ttl/two_LITERAL_LONG2s.ttl
@@ -0,0 +1,4 @@
+# Test long literal twice to ensure it does not over-quote
+@prefix : <http://example.org/ex#> .
+:a :b """first long literal""" .
+:c :d """second long literal""" .
diff --git a/tests/tests-ttl/underscore_in_localName.nt b/tests/tests-ttl/underscore_in_localName.nt
new file mode 100644
index 00000000..f9d0c4f1
--- /dev/null
+++ b/tests/tests-ttl/underscore_in_localName.nt
@@ -0,0 +1 @@
+<http://a.example/s_> <http://a.example/p> <http://a.example/o> .
diff --git a/tests/tests-ttl/underscore_in_localName.ttl b/tests/tests-ttl/underscore_in_localName.ttl
new file mode 100644
index 00000000..34596fdf
--- /dev/null
+++ b/tests/tests-ttl/underscore_in_localName.ttl
@@ -0,0 +1,2 @@
+@prefix p: <http://a.example/>.
+p:s_ <http://a.example/p> <http://a.example/o> .