aboutsummaryrefslogtreecommitdiffstats
path: root/test/extra/pretty
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-04-03 09:00:12 -0400
committerDavid Robillard <d@drobilla.net>2023-04-05 09:45:15 -0400
commit08a09191dd69e66aa56822383e84fe034d59dd3f (patch)
tree36048566f68bf46b8ad6b52925e0fac30f9f38fa /test/extra/pretty
parentf1adf9a4999d80d26314565d0c1f49c4471e5851 (diff)
downloadserd-08a09191dd69e66aa56822383e84fe034d59dd3f.tar.gz
serd-08a09191dd69e66aa56822383e84fe034d59dd3f.tar.bz2
serd-08a09191dd69e66aa56822383e84fe034d59dd3f.zip
Separate test suites and simplify licensing metadata
Diffstat (limited to 'test/extra/pretty')
-rw-r--r--test/extra/pretty/README.md5
-rw-r--r--test/extra/pretty/abbreviation.ttl57
-rw-r--r--test/extra/pretty/anonymous-in-list-object.ttl10
-rw-r--r--test/extra/pretty/anonymous-object.ttl10
-rw-r--r--test/extra/pretty/anonymous-subject-and-object.ttl4
-rw-r--r--test/extra/pretty/anonymous-subject.ttl4
-rw-r--r--test/extra/pretty/datatypes.ttl15
-rw-r--r--test/extra/pretty/empty-anonymous-object.ttl4
-rw-r--r--test/extra/pretty/empty-list-object.ttl4
-rw-r--r--test/extra/pretty/empty-list-subject-and-object.ttl4
-rw-r--r--test/extra/pretty/empty-list-subject.ttl4
-rw-r--r--test/extra/pretty/ext-named-blank.ttl11
-rw-r--r--test/extra/pretty/graph-abbreviation.trig65
-rw-r--r--test/extra/pretty/inline-blank-subject.ttl5
-rw-r--r--test/extra/pretty/inline-blanks-and-lists.ttl61
-rw-r--r--test/extra/pretty/inline-list-subject.ttl6
-rw-r--r--test/extra/pretty/langtags.ttl5
-rw-r--r--test/extra/pretty/list-in-object.ttl10
-rw-r--r--test/extra/pretty/list-object.ttl8
-rw-r--r--test/extra/pretty/list-subject.ttl7
-rw-r--r--test/extra/pretty/local-name-escapes.ttl4
-rw-r--r--test/extra/pretty/long-string-escapes.ttl4
-rw-r--r--test/extra/pretty/long-string-quotes.ttl5
-rw-r--r--test/extra/pretty/manifest.ttl213
-rw-r--r--test/extra/pretty/many-objects.ttl9
-rw-r--r--test/extra/pretty/named-graph.trig8
-rw-r--r--test/extra/pretty/nested-list-object.ttl12
-rw-r--r--test/extra/pretty/nested-list-subject.ttl11
-rw-r--r--test/extra/pretty/relative-uris.ttl2
-rw-r--r--test/extra/pretty/short-string-escapes.ttl4
-rw-r--r--test/extra/pretty/uri-escapes.ttl2
31 files changed, 573 insertions, 0 deletions
diff --git a/test/extra/pretty/README.md b/test/extra/pretty/README.md
new file mode 100644
index 00000000..361d9491
--- /dev/null
+++ b/test/extra/pretty/README.md
@@ -0,0 +1,5 @@
+Pretty Test Suite
+=================
+
+This suite contains single-file tests that can be read and rewritten in the
+same syntax, exactly reproducing the input byte-for-byte.
diff --git a/test/extra/pretty/abbreviation.ttl b/test/extra/pretty/abbreviation.ttl
new file mode 100644
index 00000000..bf46f6d5
--- /dev/null
+++ b/test/extra/pretty/abbreviation.ttl
@@ -0,0 +1,57 @@
+@prefix eg: <http://example.org/> .
+
+eg:s1
+ eg:b eg:c ,
+ eg:d ,
+ eg:e ;
+ eg:f eg:g ,
+ eg:h ;
+ eg:i eg:j ;
+ eg:k eg:l .
+
+eg:s2
+ a eg:Thing ;
+ eg:p1 eg:o1 ,
+ [
+ a eg:SubThing ;
+ eg:p2 eg:o2
+ ] , [
+ a eg:OtherSubThing ;
+ eg:p3 eg:o3
+ ] ;
+ eg:p4 eg:o4 .
+
+eg:s3
+ eg:resource eg:Blank .
+
+eg:s4
+ eg:anon [] .
+
+eg:s5
+ eg:blank [
+ eg:nestedEmptyBlank [] ;
+ eg:nestedNonEmptyBlanks [
+ eg:value 1
+ ] , [
+ eg:value 2
+ ]
+ ] ;
+ eg:listOfNumbers (
+ 3
+ 4
+ ) .
+
+eg:s6
+ eg:listOfNumbers (
+ 5
+ 6
+ ) .
+
+eg:s7
+ eg:listOfResources (
+ [
+ eg:value 7
+ ] [
+ eg:value 8
+ ]
+ ) .
diff --git a/test/extra/pretty/anonymous-in-list-object.ttl b/test/extra/pretty/anonymous-in-list-object.ttl
new file mode 100644
index 00000000..4f135e29
--- /dev/null
+++ b/test/extra/pretty/anonymous-in-list-object.ttl
@@ -0,0 +1,10 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p (
+ [
+ a eg:Spy
+ ] [
+ a eg:Ninja
+ ]
+ ) .
diff --git a/test/extra/pretty/anonymous-object.ttl b/test/extra/pretty/anonymous-object.ttl
new file mode 100644
index 00000000..f592fed1
--- /dev/null
+++ b/test/extra/pretty/anonymous-object.ttl
@@ -0,0 +1,10 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p1 [
+ eg:p2 eg:o2 ;
+ eg:p3 eg:o3
+ ] , [
+ eg:p4 eg:o4 ;
+ eg:p5 eg:o5
+ ] .
diff --git a/test/extra/pretty/anonymous-subject-and-object.ttl b/test/extra/pretty/anonymous-subject-and-object.ttl
new file mode 100644
index 00000000..8904cca6
--- /dev/null
+++ b/test/extra/pretty/anonymous-subject-and-object.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+[]
+ eg:p [] .
diff --git a/test/extra/pretty/anonymous-subject.ttl b/test/extra/pretty/anonymous-subject.ttl
new file mode 100644
index 00000000..e0e467e2
--- /dev/null
+++ b/test/extra/pretty/anonymous-subject.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+[]
+ eg:p eg:o .
diff --git a/test/extra/pretty/datatypes.ttl b/test/extra/pretty/datatypes.ttl
new file mode 100644
index 00000000..721dfe4d
--- /dev/null
+++ b/test/extra/pretty/datatypes.ttl
@@ -0,0 +1,15 @@
+@prefix eg: <http://example.org/> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+eg:s
+ eg:p -1.2 ,
+ "-3."^^xsd:decimal ,
+ -4 ,
+ 0 ,
+ 1 ,
+ 2.3 ,
+ "4."^^xsd:decimal ,
+ false ,
+ true ,
+ "x"^^eg:datatype ,
+ "y"^^<http://пример.испытание> .
diff --git a/test/extra/pretty/empty-anonymous-object.ttl b/test/extra/pretty/empty-anonymous-object.ttl
new file mode 100644
index 00000000..f3b8d7f7
--- /dev/null
+++ b/test/extra/pretty/empty-anonymous-object.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p [] .
diff --git a/test/extra/pretty/empty-list-object.ttl b/test/extra/pretty/empty-list-object.ttl
new file mode 100644
index 00000000..b4045ec0
--- /dev/null
+++ b/test/extra/pretty/empty-list-object.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:list () .
diff --git a/test/extra/pretty/empty-list-subject-and-object.ttl b/test/extra/pretty/empty-list-subject-and-object.ttl
new file mode 100644
index 00000000..3b84980e
--- /dev/null
+++ b/test/extra/pretty/empty-list-subject-and-object.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+()
+ eg:list () .
diff --git a/test/extra/pretty/empty-list-subject.ttl b/test/extra/pretty/empty-list-subject.ttl
new file mode 100644
index 00000000..0610eb07
--- /dev/null
+++ b/test/extra/pretty/empty-list-subject.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+()
+ a eg:ExampleList .
diff --git a/test/extra/pretty/ext-named-blank.ttl b/test/extra/pretty/ext-named-blank.ttl
new file mode 100644
index 00000000..807d6313
--- /dev/null
+++ b/test/extra/pretty/ext-named-blank.ttl
@@ -0,0 +1,11 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p1 [
+ == <http://example.com/vocab#SomeClass> ;
+ eg:name "object"
+ ] ;
+ eg:p2 [
+ == eg:o ;
+ eg:name "o"
+ ] .
diff --git a/test/extra/pretty/graph-abbreviation.trig b/test/extra/pretty/graph-abbreviation.trig
new file mode 100644
index 00000000..8ec75f6e
--- /dev/null
+++ b/test/extra/pretty/graph-abbreviation.trig
@@ -0,0 +1,65 @@
+@prefix : <http://example.org/> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+
+:graph {
+ :a
+ :b :c ,
+ :d ,
+ :e ;
+ :f :g ,
+ :h ;
+ :i :j ;
+ :k :l .
+
+ :s
+ a :Thing ;
+ :p1 :o1 ,
+ [
+ a :SubThing ;
+ :p2 :o2
+ ] , [
+ a :OtherSubThing ;
+ :p3 :o3
+ ] ;
+ :p4 :o4 .
+
+ []
+ :isA :Blank .
+
+ []
+ :sameAs [] .
+
+ []
+ :blank [
+ :nestedEmptyBlank [] ;
+ :nestedNonEmptyBlanks [
+ rdf:value 1
+ ] , [
+ rdf:value 2
+ ]
+ ] ;
+ :lists (
+ 3
+ 4
+ ) .
+
+ []
+ :lists (
+ 5
+ 6
+ ) .
+
+ []
+ :lists (
+ [
+ rdf:value 7
+ ] [
+ rdf:value 8
+ ]
+ ) .
+}
+
+:separateGraph {
+ :m
+ a :OtherThing .
+}
diff --git a/test/extra/pretty/inline-blank-subject.ttl b/test/extra/pretty/inline-blank-subject.ttl
new file mode 100644
index 00000000..8f5de39c
--- /dev/null
+++ b/test/extra/pretty/inline-blank-subject.ttl
@@ -0,0 +1,5 @@
+@prefix eg: <http://example.org/eg#> .
+
+[
+ a eg:BlankSubject
+] eg:isA eg:Blank .
diff --git a/test/extra/pretty/inline-blanks-and-lists.ttl b/test/extra/pretty/inline-blanks-and-lists.ttl
new file mode 100644
index 00000000..c57482d3
--- /dev/null
+++ b/test/extra/pretty/inline-blanks-and-lists.ttl
@@ -0,0 +1,61 @@
+@prefix eg: <http://example.org/eg#> .
+
+[
+ a eg:TopBlank
+] .
+
+[
+ a []
+] .
+
+[
+ a ()
+] .
+
+[]
+ a [] ,
+ [] .
+
+[]
+ a [] ,
+ () .
+
+[]
+ a () ,
+ [] .
+
+[]
+ a () ,
+ () .
+
+eg:s2
+ a eg:SparseThing ,
+ [] ,
+ () ,
+ [] ,
+ [] ,
+ () ,
+ () ,
+ <http://example.org/uri21> ,
+ [] ,
+ <http://example.org/uri22> ,
+ () ,
+ <http://example.org/uri23> ,
+ [] ,
+ eg:o21 ,
+ [] ,
+ eg:o22 ,
+ () ,
+ eg:o23 .
+
+eg:s3
+ a eg:Thing ;
+ eg:p1 eg:o1 ,
+ [
+ a eg:SubThing ;
+ eg:p2 eg:o2
+ ] , [
+ a eg:OtherSubThing ;
+ eg:p3 eg:o3
+ ] ;
+ eg:p4 eg:o4 .
diff --git a/test/extra/pretty/inline-list-subject.ttl b/test/extra/pretty/inline-list-subject.ttl
new file mode 100644
index 00000000..a3f8ac18
--- /dev/null
+++ b/test/extra/pretty/inline-list-subject.ttl
@@ -0,0 +1,6 @@
+@prefix eg: <http://example.org/eg#> .
+
+(
+ eg:item1
+ eg:item2
+) eg:isA eg:List .
diff --git a/test/extra/pretty/langtags.ttl b/test/extra/pretty/langtags.ttl
new file mode 100644
index 00000000..29d7e2d4
--- /dev/null
+++ b/test/extra/pretty/langtags.ttl
@@ -0,0 +1,5 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p "eh?"@en-ca ,
+ "hä?"@de .
diff --git a/test/extra/pretty/list-in-object.ttl b/test/extra/pretty/list-in-object.ttl
new file mode 100644
index 00000000..ce887157
--- /dev/null
+++ b/test/extra/pretty/list-in-object.ttl
@@ -0,0 +1,10 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p [
+ eg:list (
+ "apple"
+ "banana"
+ "cherry"
+ )
+ ] .
diff --git a/test/extra/pretty/list-object.ttl b/test/extra/pretty/list-object.ttl
new file mode 100644
index 00000000..735d9df6
--- /dev/null
+++ b/test/extra/pretty/list-object.ttl
@@ -0,0 +1,8 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:list (
+ "apple"
+ "banana"
+ "cherry"
+ ) .
diff --git a/test/extra/pretty/list-subject.ttl b/test/extra/pretty/list-subject.ttl
new file mode 100644
index 00000000..927f56f3
--- /dev/null
+++ b/test/extra/pretty/list-subject.ttl
@@ -0,0 +1,7 @@
+@prefix eg: <http://example.org/> .
+
+(
+ "apple"
+ "banana"
+ "cherry"
+) a eg:ExampleList .
diff --git a/test/extra/pretty/local-name-escapes.ttl b/test/extra/pretty/local-name-escapes.ttl
new file mode 100644
index 00000000..91c3905d
--- /dev/null
+++ b/test/extra/pretty/local-name-escapes.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p eg:local\'\!\#\$\%\&\(\)\*\+\,\/\;\=\?\@\~ .
diff --git a/test/extra/pretty/long-string-escapes.ttl b/test/extra/pretty/long-string-escapes.ttl
new file mode 100644
index 00000000..435e3d1a
--- /dev/null
+++ b/test/extra/pretty/long-string-escapes.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p """\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b \u000B \u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F"'\\\u007F""" .
diff --git a/test/extra/pretty/long-string-quotes.ttl b/test/extra/pretty/long-string-quotes.ttl
new file mode 100644
index 00000000..aceaecda
--- /dev/null
+++ b/test/extra/pretty/long-string-quotes.ttl
@@ -0,0 +1,5 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p1 """Unescaped "quotes" within""" ;
+ eg:p2 """Trickier ""\"case""\"""" .
diff --git a/test/extra/pretty/manifest.ttl b/test/extra/pretty/manifest.ttl
new file mode 100644
index 00000000..69b951af
--- /dev/null
+++ b/test/extra/pretty/manifest.ttl
@@ -0,0 +1,213 @@
+@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix rdft: <http://www.w3.org/ns/rdftest#> .
+@prefix serd: <http://drobilla.net/ns/serd#> .
+
+<>
+ a mf:Manifest ;
+ rdfs:comment "Serd pretty-printing test suite" ;
+ mf:entries (
+ <#abbreviation>
+ <#anonymous-in-list-object>
+ <#anonymous-object>
+ <#anonymous-subject>
+ <#anonymous-subject-and-object>
+ <#datatypes>
+ <#empty-anonymous-object>
+ <#empty-list-object>
+ <#empty-list-subject>
+ <#empty-list-subject-and-object>
+ <#ext-named-blank>
+ <#graph-abbreviation>
+ <#inline-blank-subject>
+ <#inline-blanks-and-lists>
+ <#inline-list-subject>
+ <#langtags>
+ <#list-in-object>
+ <#list-object>
+ <#list-subject>
+ <#local-name-escapes>
+ <#long-string-escapes>
+ <#long-string-quotes>
+ <#many-objects>
+ <#named-graph>
+ <#nested-list-object>
+ <#relative-uris>
+ <#short-string-escapes>
+ <#uri-escapes>
+ <#nested-list-subject>
+ ) .
+
+<#abbreviation>
+ a rdft:TestTurtleEval ;
+ mf:action <abbreviation.ttl> ;
+ mf:name "abbreviation" ;
+ mf:result <abbreviation.ttl> .
+
+<#anonymous-in-list-object>
+ a rdft:TestTurtleEval ;
+ mf:action <anonymous-in-list-object.ttl> ;
+ mf:name "anonymous-in-list-object" ;
+ mf:result <anonymous-in-list-object.ttl> .
+
+<#anonymous-object>
+ a rdft:TestTurtleEval ;
+ mf:action <anonymous-object.ttl> ;
+ mf:name "anonymous-object" ;
+ mf:result <anonymous-object.ttl> .
+
+<#anonymous-subject>
+ a rdft:TestTurtleEval ;
+ mf:action <anonymous-subject.ttl> ;
+ mf:name "anonymous-subject" ;
+ mf:result <anonymous-subject.ttl> .
+
+<#anonymous-subject-and-object>
+ a rdft:TestTurtleEval ;
+ mf:action <anonymous-subject-and-object.ttl> ;
+ mf:name "anonymous-subject-and-object" ;
+ mf:result <anonymous-subject-and-object.ttl> .
+
+<#datatypes>
+ a rdft:TestTurtleEval ;
+ mf:action <datatypes.ttl> ;
+ mf:name "datatypes" ;
+ mf:result <datatypes.ttl> .
+
+<#empty-anonymous-object>
+ a rdft:TestTurtleEval ;
+ mf:action <empty-anonymous-object.ttl> ;
+ mf:name "empty-anonymous-object" ;
+ mf:result <empty-anonymous-object.ttl> .
+
+<#empty-list-object>
+ a rdft:TestTurtleEval ;
+ mf:action <empty-list-object.ttl> ;
+ mf:name "empty-list-object" ;
+ mf:result <empty-list-object.ttl> .
+
+<#empty-list-subject>
+ a rdft:TestTurtleEval ;
+ mf:action <empty-list-subject.ttl> ;
+ mf:name "empty-list-subject" ;
+ mf:result <empty-list-subject.ttl> .
+
+<#empty-list-subject-and-object>
+ a rdft:TestTurtleEval ;
+ mf:action <empty-list-subject-and-object.ttl> ;
+ mf:name "empty-list-subject-and-object" ;
+ mf:result <empty-list-subject-and-object.ttl> .
+
+<#ext-named-blank>
+ a rdft:TestTurtleEval ;
+ mf:action <ext-named-blank.ttl> ;
+ mf:name "ext-named-blank" ;
+ mf:result <ext-named-blank.ttl> .
+
+<#graph-abbreviation>
+ a rdft:TestTrigEval ;
+ mf:action <graph-abbreviation.trig> ;
+ mf:name "graph-abbreviation" ;
+ mf:result <graph-abbreviation.trig> .
+
+<#inline-blank-subject>
+ a rdft:TestTurtleEval ;
+ mf:action <inline-blank-subject.ttl> ;
+ mf:name "inline-blank-subject" ;
+ mf:result <inline-blank-subject.ttl> .
+
+<#inline-blanks-and-lists>
+ a rdft:TestTurtleEval ;
+ mf:action <inline-blanks-and-lists.ttl> ;
+ mf:name "inline-blanks-and-lists" ;
+ mf:result <inline-blanks-and-lists.ttl> .
+
+<#inline-list-subject>
+ a rdft:TestTurtleEval ;
+ mf:action <inline-list-subject.ttl> ;
+ mf:name "inline-list-subject" ;
+ mf:result <inline-list-subject.ttl> .
+
+<#langtags>
+ a rdft:TestTurtleEval ;
+ mf:action <langtags.ttl> ;
+ mf:name "langtags" ;
+ mf:result <langtags.ttl> .
+
+<#list-in-object>
+ a rdft:TestTurtleEval ;
+ mf:action <list-in-object.ttl> ;
+ mf:name "list-in-object" ;
+ mf:result <list-in-object.ttl> .
+
+<#list-object>
+ a rdft:TestTurtleEval ;
+ mf:action <list-object.ttl> ;
+ mf:name "list-object" ;
+ mf:result <list-object.ttl> .
+
+<#list-subject>
+ a rdft:TestTurtleEval ;
+ mf:action <list-subject.ttl> ;
+ mf:name "list-subject" ;
+ mf:result <list-subject.ttl> .
+
+<#local-name-escapes>
+ a rdft:TestTurtleEval ;
+ mf:action <local-name-escapes.ttl> ;
+ mf:name "local-name-escapes" ;
+ mf:result <local-name-escapes.ttl> .
+
+<#long-string-escapes>
+ a rdft:TestTurtleEval ;
+ mf:action <long-string-escapes.ttl> ;
+ mf:name "long-string-escapes" ;
+ mf:result <long-string-escapes.ttl> .
+
+<#long-string-quotes>
+ a rdft:TestTurtleEval ;
+ mf:action <long-string-quotes.ttl> ;
+ mf:name "long-string-quotes" ;
+ mf:result <long-string-quotes.ttl> .
+
+<#many-objects>
+ a rdft:TestTurtleEval ;
+ mf:action <many-objects.ttl> ;
+ mf:name "many-objects" ;
+ mf:result <many-objects.ttl> .
+
+<#named-graph>
+ a rdft:TestTrigEval ;
+ mf:action <named-graph.trig> ;
+ mf:name "named-graph" ;
+ mf:result <named-graph.trig> .
+
+<#nested-list-object>
+ a rdft:TestTurtleEval ;
+ mf:action <nested-list-object.ttl> ;
+ mf:name "nested-list-object" ;
+ mf:result <nested-list-object.ttl> .
+
+<#nested-list-subject>
+ a rdft:TestTurtleEval ;
+ mf:action <nested-list-subject.ttl> ;
+ mf:name "nested-list-subject" ;
+ mf:result <nested-list-subject.ttl> .
+
+<#relative-uris>
+ a rdft:TestTurtleEval ;
+ mf:action <relative-uris.ttl> ;
+ mf:name "relative-uris" ;
+ mf:result <relative-uris.ttl> .
+
+<#short-string-escapes>
+ a rdft:TestTurtleEval ;
+ mf:action <short-string-escapes.ttl> ;
+ mf:name "short-string-escapes" ;
+ mf:result <short-string-escapes.ttl> .
+
+<#uri-escapes>
+ a rdft:TestTurtleEval ;
+ mf:action <uri-escapes.ttl> ;
+ mf:name "uri-escapes" ;
+ mf:result <uri-escapes.ttl> .
diff --git a/test/extra/pretty/many-objects.ttl b/test/extra/pretty/many-objects.ttl
new file mode 100644
index 00000000..534741dd
--- /dev/null
+++ b/test/extra/pretty/many-objects.ttl
@@ -0,0 +1,9 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p1 "apple" ,
+ "banana" ,
+ "cherry" ;
+ eg:p2 "asparagus" ,
+ "beet" ,
+ "carrot" .
diff --git a/test/extra/pretty/named-graph.trig b/test/extra/pretty/named-graph.trig
new file mode 100644
index 00000000..5cd12f3b
--- /dev/null
+++ b/test/extra/pretty/named-graph.trig
@@ -0,0 +1,8 @@
+@prefix eg: <http://example.org/> .
+
+eg:g {
+ eg:s
+ eg:p [
+ a eg:Object
+ ] .
+}
diff --git a/test/extra/pretty/nested-list-object.ttl b/test/extra/pretty/nested-list-object.ttl
new file mode 100644
index 00000000..d2177ba3
--- /dev/null
+++ b/test/extra/pretty/nested-list-object.ttl
@@ -0,0 +1,12 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:list (
+ (
+ eg:l1e1
+ eg:l1e2
+ ) (
+ eg:l2e1
+ eg:l2e2
+ )
+ ) .
diff --git a/test/extra/pretty/nested-list-subject.ttl b/test/extra/pretty/nested-list-subject.ttl
new file mode 100644
index 00000000..128197c0
--- /dev/null
+++ b/test/extra/pretty/nested-list-subject.ttl
@@ -0,0 +1,11 @@
+@prefix eg: <http://example.org/> .
+
+(
+ (
+ eg:l1e1
+ eg:l1e2
+ ) (
+ eg:l2e1
+ eg:l2e2
+ )
+) a eg:ExampleList .
diff --git a/test/extra/pretty/relative-uris.ttl b/test/extra/pretty/relative-uris.ttl
new file mode 100644
index 00000000..397c7cf7
--- /dev/null
+++ b/test/extra/pretty/relative-uris.ttl
@@ -0,0 +1,2 @@
+<http://example.org/s>
+ <http://example.org/p> <manifest.ttl> .
diff --git a/test/extra/pretty/short-string-escapes.ttl b/test/extra/pretty/short-string-escapes.ttl
new file mode 100644
index 00000000..0665e814
--- /dev/null
+++ b/test/extra/pretty/short-string-escapes.ttl
@@ -0,0 +1,4 @@
+@prefix eg: <http://example.org/> .
+
+eg:s
+ eg:p "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\u000B\f\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\\\u007F" .
diff --git a/test/extra/pretty/uri-escapes.ttl b/test/extra/pretty/uri-escapes.ttl
new file mode 100644
index 00000000..09ced38a
--- /dev/null
+++ b/test/extra/pretty/uri-escapes.ttl
@@ -0,0 +1,2 @@
+<http://example.org/s>
+ <http://example.org/p> <http://example.org/\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000A\u000B\u000C\u000D\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F!\u0022#$%&'()*+,-./0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\u005C]\u005E_\u0060abcdefghijklmnopqrstuvwxyz\u007B\u007C\u007D~\u007F> .