aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2024-02-09 11:01:37 -0500
committerDavid Robillard <d@drobilla.net>2024-03-08 17:20:00 -0500
commitfb30a102ee544acf21d387fc99a31111262b6209 (patch)
treef73b5524bd2471a0079f81cf8244aae6efae4db9 /test
parent66adb6e1cea6e1231723a41c60f0b9e650e20448 (diff)
downloadserd-fb30a102ee544acf21d387fc99a31111262b6209.tar.gz
serd-fb30a102ee544acf21d387fc99a31111262b6209.tar.bz2
serd-fb30a102ee544acf21d387fc99a31111262b6209.zip
Add tests with as many rules as possible in a single document
Diffstat (limited to 'test')
-rw-r--r--test/extra/bad/bad-list-close-object.ttl1
-rw-r--r--test/extra/bad/manifest.ttl6
-rw-r--r--test/extra/good/manifest.ttl12
-rw-r--r--test/extra/good/test-nq-syntax-all-rules.nq7
-rw-r--r--test/extra/good/test-nt-syntax-all-rules.nt7
-rw-r--r--test/extra/good/test-trig-syntax-all-rules.trig56
-rw-r--r--test/extra/good/test-ttl-syntax-all-rules.ttl26
7 files changed, 115 insertions, 0 deletions
diff --git a/test/extra/bad/bad-list-close-object.ttl b/test/extra/bad/bad-list-close-object.ttl
new file mode 100644
index 00000000..4d65beb9
--- /dev/null
+++ b/test/extra/bad/bad-list-close-object.ttl
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> ) .
diff --git a/test/extra/bad/manifest.ttl b/test/extra/bad/manifest.ttl
index b2094258..2c985e65 100644
--- a/test/extra/bad/manifest.ttl
+++ b/test/extra/bad/manifest.ttl
@@ -96,6 +96,7 @@
<#bad-keywords>
<#bad-lang>
<#bad-list>
+ <#bad-list-close-object>
<#bad-list2>
<#bad-long-literal-in-list>
<#bad-long-literal-missing-end>
@@ -576,6 +577,11 @@
mf:action <bad-list.ttl> ;
mf:name "bad-list" .
+<#bad-list-close-object>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-list-close-object.ttl> ;
+ mf:name "bad-list-close-object" .
+
<#bad-list2>
a rdft:TestTurtleNegativeSyntax ;
mf:action <bad-list2.ttl> ;
diff --git a/test/extra/good/manifest.ttl b/test/extra/good/manifest.ttl
index efef7f54..befe9451 100644
--- a/test/extra/good/manifest.ttl
+++ b/test/extra/good/manifest.ttl
@@ -31,12 +31,14 @@
<#test-long-utf8>
<#test-no-spaces>
<#test-non-curie-uri>
+ <#test-nq-syntax-all-rules>
<#test-nq-syntax-dot-end>
<#test-nq-syntax-eof-after-blank-dot>
<#test-nq-syntax-eol-cr>
<#test-nq-syntax-eol-crlf>
<#test-nq-syntax-eol-lf>
<#test-nq-syntax-eol-lfcr>
+ <#test-nt-syntax-all-rules>
<#test-nt-syntax-blank-dot>
<#test-nt-syntax-dot-end>
<#test-nt-syntax-eof-after-blank-dot>
@@ -209,6 +211,11 @@
mf:action <test-nq-syntax-eof-after-blank-dot.nq> ;
mf:name "test-nq-syntax-eof-after-blank-dot" .
+<#test-nq-syntax-all-rules>
+ a rdft:TestNQuadsPositiveSyntax ;
+ mf:action <test-nq-syntax-all-rules.nq> ;
+ mf:name "test-nq-syntax-all-rules" .
+
<#test-nq-syntax-dot-end>
a rdft:TestNQuadsPositiveSyntax ;
mf:action <test-nq-syntax-dot-end.nq> ;
@@ -234,6 +241,11 @@
mf:action <test-nq-syntax-eol-lfcr.nq> ;
mf:name "test-nq-syntax-eol-lfcr" .
+<#test-nt-syntax-all-rules>
+ a rdft:TestNTriplesPositiveSyntax ;
+ mf:action <test-nt-syntax-all-rules.nt> ;
+ mf:name "test-nt-syntax-all-rules" .
+
<#test-nt-syntax-blank-dot>
a rdft:TestNTriplesPositiveSyntax ;
mf:action <test-nt-syntax-blank-dot.nt> ;
diff --git a/test/extra/good/test-nq-syntax-all-rules.nq b/test/extra/good/test-nq-syntax-all-rules.nq
new file mode 100644
index 00000000..a8b80b9a
--- /dev/null
+++ b/test/extra/good/test-nq-syntax-all-rules.nq
@@ -0,0 +1,7 @@
+# Cover as many grammar rules/situations as possible in a small document
+_:e.u.s <http://example.org/p> _:o.
+_:e.u.s <http://example.org/p> "o"@en-gb _:g.
+ _:s <http://example.org/p> "ob\t\b\n\r\f\\\"\'\u0025\U00015678ject" <http://example.org/g> .
+_:s <http://example.org/p> "€߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽" <http://example.org/g> .
+_:s <http://example.org/p> "o"^^<http://example.org/T> <http://example.org/g> .
+_:s <http://example.org/p> "o"@en _:g .
diff --git a/test/extra/good/test-nt-syntax-all-rules.nt b/test/extra/good/test-nt-syntax-all-rules.nt
new file mode 100644
index 00000000..ed84f410
--- /dev/null
+++ b/test/extra/good/test-nt-syntax-all-rules.nt
@@ -0,0 +1,7 @@
+# Cover as many grammar rules/situations as possible in a small document
+_:s <http://example.org/p> "ob\t\b\n\r\f\\\"\'\u0025\U00015678ject" .
+_:s <http://example.org/p> "€߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽" .
+ _:s <http://example.org/p> "o"^^<http://example.org/T> .
+_:s <http://example.org/p> "o"@en .
+_:e.u.s <http://example.org/p> "o"@en-gb .
+_:e.u.s <http://example.org/p> _:o.
diff --git a/test/extra/good/test-trig-syntax-all-rules.trig b/test/extra/good/test-trig-syntax-all-rules.trig
new file mode 100644
index 00000000..97557b86
--- /dev/null
+++ b/test/extra/good/test-trig-syntax-all-rules.trig
@@ -0,0 +1,56 @@
+# Cover as many grammar rules/situations as possible in a small document
+
+@base <> .
+@prefix eg: <http://example.org> .
+<example:s> <example:p> "ob\t\b\n\r\f\\\"\'\u0025\U00015678ject" .
+ <example:s> <example:p> """long
+ ""string""\t\b\n\r\f\'\u0025\U00015678""" .
+eg:s eg:p "€߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽" .
+ eg:sub%25ject eg:pr\~d "o"^^eg:T .
+eg:sub%25ject eg:pr\~d "o"@en .
+_:e.u.s eg:p "o"@en-gb .
+_:e.u.s eg:p _:o.
+_:e.u.s eg:p‿r⁀d 2.
+_:e.u.s eg:prèd 3 .
+_:e.u.s eg:pͯ 4.5.
+eg:s eg:p 0 , .1 , 2.3 , 4E5, 6e07 .
+eg:s eg:p .7e8 , .9E0 , 1.e2 , 3.E4 .
+eg:s eg:p .2E3 , .4e5 , 6.7E8 , 9.
+ [ ] eg:p 0.e1, 2.E3.
+[] eg:p (1 -2.3 4e5 +6.E-7 8.e+9 .1 -.2 +.3) .
+eg:s eg:p [] .
+[
+ eg:p1 eg:o1 ;
+ eg:p2 _:o2 ;
+ eg:p3 "o3" ;
+
+ ] a eg:S .
+
+GRAPH eg:g1 {
+ [
+ eg:p1 eg:o1 ;
+ eg:p2 _:o2 ;
+ eg:p3 "o3"
+ ] a eg:S .
+}
+
+GRAPH [ ] {
+ [
+ eg:p1 eg:o1 ;
+ ] a eg:Anonymous , eg:Subject .
+}
+
+_:g2 {
+ eg:s2
+ eg:p4 [
+ eg:op1 "oo1"
+ ] ,
+ "o4" ,
+ eg:o5 ,
+ _:o.6.
+}
+
+eg:g3 {
+ _:s3 eg:p5 ( _:o7 "o8" eg:o9 ) .
+ _:s4 eg:p6 () , [] .
+}
diff --git a/test/extra/good/test-ttl-syntax-all-rules.ttl b/test/extra/good/test-ttl-syntax-all-rules.ttl
new file mode 100644
index 00000000..ead2e8a8
--- /dev/null
+++ b/test/extra/good/test-ttl-syntax-all-rules.ttl
@@ -0,0 +1,26 @@
+# Cover as many grammar rules/situations as possible in a small document
+@base <> .
+@prefix eg: <http://example.org> .
+<example:s> <example:p> "ob\t\b\n\r\f\\\"\'\u0025\U00015678ject" .
+ <example:s> <example:p> """long
+ ""string""\t\b\n\r\f\'\u0025\U00015678""" .
+eg:s eg:p "€߿ࠀ࿿က쿿퀀퟿�𐀀𿿽񀀀󿿽􀀀􏿽" .
+ eg:sub%25ject eg:pr\~d "o"^^eg:T .
+eg:sub%25ject eg:pr\~d "o"@en .
+_:e.u.s eg:p "o"@en-gb .
+_:e.u.s eg:p _:o.
+_:e.u.s eg:p‿r⁀d 2.
+_:e.u.s eg:prèd 3 .
+_:e.u.s eg:pͯ 4.5.
+eg:s eg:p 0 , .1 , 2.3 , 4E5, 6e07 .
+eg:s eg:p .7e8 , .9E0 , 1.e2 , 3.E4 .
+eg:s eg:p .2E3 , .4e5 , 6.7E8 , 9.
+ [ ] eg:p 0.e1, 2.E3.
+[] eg:p (1 -2.3 4e5 +6.E-7 8.e+9 .1 -.2 +.3) .
+eg:s eg:p [] .
+[
+ eg:p1 eg:o1 ;
+ eg:p2 _:o2 ;
+ eg:p3 "o3" ;
+
+ ] a eg:S .