diff options
74 files changed, 721 insertions, 2 deletions
@@ -3,9 +3,10 @@ serd (0.29.3) unstable; * Support strict parsing of prefixed names * Report errors for all failing test cases * Use more efficient stack allocation and growth policies + * Add NTriples test suite * Fix building with MSVC - -- David Robillard <d@drobilla.net> Sat, 23 Sep 2017 14:53:55 +0200 + -- David Robillard <d@drobilla.net> Sat, 23 Sep 2017 15:03:52 +0200 serd (0.28.0) stable; diff --git a/tests/NTriplesTests/README b/tests/NTriplesTests/README new file mode 100644 index 00000000..12d8bf16 --- /dev/null +++ b/tests/NTriplesTests/README @@ -0,0 +1,25 @@ +This README is for the W3C RDF Working Group's N-Triples test suite. +This test suite contains two kinds of tests: + + Positive syntax (rdft:TestNTriplesPositiveSyntax) - an input N-Triples + file with no syntax errors. + + Negative syntax (rdft:TestNTriplesNegativeSyntax) - an input N-Triples + file with at least one syntax error. + +The manifest.ttl file in this directory lists tests in the +RDF WG's N-Triples test suite. All +tests have a name (mf:name) and an input (mf:action). + +• An implementation passes a positive syntax test if it parses the + input. + +• An implementation passes a negative syntax test if it fails to parse + the input. + +The home of the test suite is <http://www.w3.org/2013/N-TriplesTests/>. + +See http://www.w3.org/2011/rdf-wg/wiki/RDF_Test_Suites for more details. + +Eric Prud'hommeaux <eric+turtle@w3.org> - 11 June 2013. +Gregg Kellogg <gregg@greggkellogg.net> - 26 June 2013. diff --git a/tests/NTriplesTests/comment_following_triple.nt b/tests/NTriplesTests/comment_following_triple.nt new file mode 100644 index 00000000..5619459a --- /dev/null +++ b/tests/NTriplesTests/comment_following_triple.nt @@ -0,0 +1,5 @@ +<http://example/s> <http://example/p> <http://example/o> . # comment +<http://example/s> <http://example/p> _:o . # comment +<http://example/s> <http://example/p> "o" . # comment +<http://example/s> <http://example/p> "o"^^<http://example/dt> . # comment +<http://example/s> <http://example/p> "o"@en . # comment diff --git a/tests/NTriplesTests/langtagged_string.nt b/tests/NTriplesTests/langtagged_string.nt new file mode 100644 index 00000000..1bddb04e --- /dev/null +++ b/tests/NTriplesTests/langtagged_string.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "chat"@en . diff --git a/tests/NTriplesTests/lantag_with_subtag.nt b/tests/NTriplesTests/lantag_with_subtag.nt new file mode 100644 index 00000000..629cbf42 --- /dev/null +++ b/tests/NTriplesTests/lantag_with_subtag.nt @@ -0,0 +1 @@ +<http://example.org/ex#a> <http://example.org/ex#b> "Cheers"@en-UK . diff --git a/tests/NTriplesTests/literal.nt b/tests/NTriplesTests/literal.nt new file mode 100644 index 00000000..3aba89e4 --- /dev/null +++ b/tests/NTriplesTests/literal.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "x" . diff --git a/tests/NTriplesTests/literal_all_controls.nt b/tests/NTriplesTests/literal_all_controls.nt new file mode 100644 index 00000000..91c8af14 --- /dev/null +++ b/tests/NTriplesTests/literal_all_controls.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\t\u000B\u000C\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" . diff --git a/tests/NTriplesTests/literal_all_punctuation.nt b/tests/NTriplesTests/literal_all_punctuation.nt new file mode 100644 index 00000000..c25d818f --- /dev/null +++ b/tests/NTriplesTests/literal_all_punctuation.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> " !\"#$%&():;<=>?@[]^_`{|}~" . diff --git a/tests/NTriplesTests/literal_ascii_boundaries.nt b/tests/NTriplesTests/literal_ascii_boundaries.nt Binary files differnew file mode 100644 index 00000000..7a4dc717 --- /dev/null +++ b/tests/NTriplesTests/literal_ascii_boundaries.nt diff --git a/tests/NTriplesTests/literal_false.nt b/tests/NTriplesTests/literal_false.nt new file mode 100644 index 00000000..5bbbae84 --- /dev/null +++ b/tests/NTriplesTests/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/NTriplesTests/literal_true.nt b/tests/NTriplesTests/literal_true.nt new file mode 100644 index 00000000..054b229f --- /dev/null +++ b/tests/NTriplesTests/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/NTriplesTests/literal_with_2_dquotes.nt b/tests/NTriplesTests/literal_with_2_dquotes.nt new file mode 100644 index 00000000..3e69dc10 --- /dev/null +++ b/tests/NTriplesTests/literal_with_2_dquotes.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "x\"\"y" . diff --git a/tests/NTriplesTests/literal_with_2_squotes.nt b/tests/NTriplesTests/literal_with_2_squotes.nt new file mode 100644 index 00000000..8ddc52e8 --- /dev/null +++ b/tests/NTriplesTests/literal_with_2_squotes.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "x''y" . diff --git a/tests/NTriplesTests/literal_with_BACKSPACE.nt b/tests/NTriplesTests/literal_with_BACKSPACE.nt new file mode 100644 index 00000000..339013df --- /dev/null +++ b/tests/NTriplesTests/literal_with_BACKSPACE.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\b" . diff --git a/tests/NTriplesTests/literal_with_CARRIAGE_RETURN.nt b/tests/NTriplesTests/literal_with_CARRIAGE_RETURN.nt new file mode 100644 index 00000000..91b85c89 --- /dev/null +++ b/tests/NTriplesTests/literal_with_CARRIAGE_RETURN.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\r" . diff --git a/tests/NTriplesTests/literal_with_CHARACTER_TABULATION.nt b/tests/NTriplesTests/literal_with_CHARACTER_TABULATION.nt new file mode 100644 index 00000000..a6a9d9f0 --- /dev/null +++ b/tests/NTriplesTests/literal_with_CHARACTER_TABULATION.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\t" . diff --git a/tests/NTriplesTests/literal_with_FORM_FEED.nt b/tests/NTriplesTests/literal_with_FORM_FEED.nt new file mode 100644 index 00000000..10d2c6d7 --- /dev/null +++ b/tests/NTriplesTests/literal_with_FORM_FEED.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\f" . diff --git a/tests/NTriplesTests/literal_with_LINE_FEED.nt b/tests/NTriplesTests/literal_with_LINE_FEED.nt new file mode 100644 index 00000000..462f97ac --- /dev/null +++ b/tests/NTriplesTests/literal_with_LINE_FEED.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\n" . diff --git a/tests/NTriplesTests/literal_with_REVERSE_SOLIDUS.nt b/tests/NTriplesTests/literal_with_REVERSE_SOLIDUS.nt new file mode 100644 index 00000000..ebc846ed --- /dev/null +++ b/tests/NTriplesTests/literal_with_REVERSE_SOLIDUS.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\\" . diff --git a/tests/NTriplesTests/literal_with_REVERSE_SOLIDUS2.nt b/tests/NTriplesTests/literal_with_REVERSE_SOLIDUS2.nt new file mode 100644 index 00000000..586e364d --- /dev/null +++ b/tests/NTriplesTests/literal_with_REVERSE_SOLIDUS2.nt @@ -0,0 +1 @@ +<http://example.org/ns#s> <http://example.org/ns#p1> "test-\\" . diff --git a/tests/NTriplesTests/literal_with_UTF8_boundaries.nt b/tests/NTriplesTests/literal_with_UTF8_boundaries.nt new file mode 100644 index 00000000..0e1616db --- /dev/null +++ b/tests/NTriplesTests/literal_with_UTF8_boundaries.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "߿ࠀက쿿퀀�𐀀" . diff --git a/tests/NTriplesTests/literal_with_dquote.nt b/tests/NTriplesTests/literal_with_dquote.nt new file mode 100644 index 00000000..05a1fd3a --- /dev/null +++ b/tests/NTriplesTests/literal_with_dquote.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "x\"y" . diff --git a/tests/NTriplesTests/literal_with_numeric_escape4.nt b/tests/NTriplesTests/literal_with_numeric_escape4.nt new file mode 100644 index 00000000..16f0a036 --- /dev/null +++ b/tests/NTriplesTests/literal_with_numeric_escape4.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\u006F" . diff --git a/tests/NTriplesTests/literal_with_numeric_escape8.nt b/tests/NTriplesTests/literal_with_numeric_escape8.nt new file mode 100644 index 00000000..e909a79d --- /dev/null +++ b/tests/NTriplesTests/literal_with_numeric_escape8.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "\U0000006F" . diff --git a/tests/NTriplesTests/literal_with_squote.nt b/tests/NTriplesTests/literal_with_squote.nt new file mode 100644 index 00000000..acf7f58f --- /dev/null +++ b/tests/NTriplesTests/literal_with_squote.nt @@ -0,0 +1 @@ +<http://a.example/s> <http://a.example/p> "x'y" . diff --git a/tests/NTriplesTests/manifest.ttl b/tests/NTriplesTests/manifest.ttl new file mode 100644 index 00000000..246561cb --- /dev/null +++ b/tests/NTriplesTests/manifest.ttl @@ -0,0 +1,512 @@ +# N-Triples Syntax tests + +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> . +@prefix qt: <http://www.w3.org/2001/sw/DataAccess/tests/test-query#> . + +@prefix rdft: <http://www.w3.org/ns/rdftest#> . + +<> rdf:type mf:Manifest ; + mf:name "N-Triples tests" ; + mf:entries + ( + <#nt-syntax-file-01> + <#nt-syntax-file-02> + <#nt-syntax-file-03> + <#nt-syntax-uri-01> + <#nt-syntax-uri-02> + <#nt-syntax-uri-03> + <#nt-syntax-uri-04> + <#nt-syntax-string-01> + <#nt-syntax-string-02> + <#nt-syntax-string-03> + <#nt-syntax-str-esc-01> + <#nt-syntax-str-esc-02> + <#nt-syntax-str-esc-03> + <#nt-syntax-bnode-01> + <#nt-syntax-bnode-02> + <#nt-syntax-bnode-03> + <#nt-syntax-datatypes-01> + <#nt-syntax-datatypes-02> + <#nt-syntax-bad-uri-01> + <#nt-syntax-bad-uri-02> + <#nt-syntax-bad-uri-03> + <#nt-syntax-bad-uri-04> + <#nt-syntax-bad-uri-05> + <#nt-syntax-bad-uri-06> + <#nt-syntax-bad-uri-07> + <#nt-syntax-bad-uri-08> + <#nt-syntax-bad-uri-09> + <#nt-syntax-bad-prefix-01> + <#nt-syntax-bad-base-01> + <#nt-syntax-bad-struct-01> + <#nt-syntax-bad-struct-02> + <#nt-syntax-bad-lang-01> + <#nt-syntax-bad-esc-01> + <#nt-syntax-bad-esc-02> + <#nt-syntax-bad-esc-03> + <#nt-syntax-bad-string-01> + <#nt-syntax-bad-string-02> + <#nt-syntax-bad-string-03> + <#nt-syntax-bad-string-04> + <#nt-syntax-bad-string-05> + <#nt-syntax-bad-string-06> + <#nt-syntax-bad-string-07> + <#nt-syntax-bad-num-01> + <#nt-syntax-bad-num-02> + <#nt-syntax-bad-num-03> + <#nt-syntax-subm-01> + <#comment_following_triple> + <#literal> + <#literal_all_controls> + <#literal_all_punctuation> + <#literal_ascii_boundaries> + <#literal_with_2_dquotes> + <#literal_with_2_squotes> + <#literal_with_BACKSPACE> + <#literal_with_CARRIAGE_RETURN> + <#literal_with_CHARACTER_TABULATION> + <#literal_with_dquote> + <#literal_with_FORM_FEED> + <#literal_with_LINE_FEED> + <#literal_with_numeric_escape4> + <#literal_with_numeric_escape8> + <#literal_with_REVERSE_SOLIDUS> + <#literal_with_REVERSE_SOLIDUS2> + <#literal_with_squote> + <#literal_with_UTF8_boundaries> + <#langtagged_string> + <#lantag_with_subtag> + <#minimal_whitespace> + ) . + +<#nt-syntax-file-01> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-file-01" ; + rdfs:comment "Empty file" ; + mf:action <nt-syntax-file-01.nt> ; + . + +<#nt-syntax-file-02> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-file-02" ; + rdfs:comment "Only comment" ; + mf:action <nt-syntax-file-02.nt> ; + . + +<#nt-syntax-file-03> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-file-03" ; + rdfs:comment "One comment, one empty line" ; + mf:action <nt-syntax-file-03.nt> ; + . + +<#nt-syntax-uri-01> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-uri-01" ; + rdfs:comment "Only IRIs" ; + mf:action <nt-syntax-uri-01.nt> ; + . + +<#nt-syntax-uri-02> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-uri-02" ; + rdfs:comment "IRIs with Unicode escape" ; + mf:action <nt-syntax-uri-02.nt> ; + . + +<#nt-syntax-uri-03> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-uri-03" ; + rdfs:comment "IRIs with long Unicode escape" ; + mf:action <nt-syntax-uri-03.nt> ; + . + +<#nt-syntax-uri-04> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-uri-04" ; + rdfs:comment "Legal IRIs" ; + mf:action <nt-syntax-uri-04.nt> ; + . + +<#nt-syntax-string-01> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-string-01" ; + rdfs:comment "string literal" ; + mf:action <nt-syntax-string-01.nt> ; + . + +<#nt-syntax-string-02> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-string-02" ; + rdfs:comment "langString literal" ; + mf:action <nt-syntax-string-02.nt> ; + . + +<#nt-syntax-string-03> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-string-03" ; + rdfs:comment "langString literal with region" ; + mf:action <nt-syntax-string-03.nt> ; + . + +<#nt-syntax-str-esc-01> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-str-esc-01" ; + rdfs:comment "string literal with escaped newline" ; + mf:action <nt-syntax-str-esc-01.nt> ; + . + +<#nt-syntax-str-esc-02> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-str-esc-02" ; + rdfs:comment "string literal with Unicode escape" ; + mf:action <nt-syntax-str-esc-02.nt> ; + . + +<#nt-syntax-str-esc-03> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-str-esc-03" ; + rdfs:comment "string literal with long Unicode escape" ; + mf:action <nt-syntax-str-esc-03.nt> ; + . + +<#nt-syntax-bnode-01> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-bnode-01" ; + rdfs:comment "bnode subject" ; + mf:action <nt-syntax-bnode-01.nt> ; + . + +<#nt-syntax-bnode-02> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-bnode-02" ; + rdfs:comment "bnode object" ; + mf:action <nt-syntax-bnode-02.nt> ; + . + +<#nt-syntax-bnode-03> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-bnode-03" ; + rdfs:comment "Blank node labels may start with a digit" ; + mf:action <nt-syntax-bnode-03.nt> ; + . + +<#nt-syntax-datatypes-01> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-datatypes-01" ; + rdfs:comment "xsd:byte literal" ; + mf:action <nt-syntax-datatypes-01.nt> ; + . + +<#nt-syntax-datatypes-02> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-datatypes-02" ; + rdfs:comment "integer as xsd:string" ; + mf:action <nt-syntax-datatypes-02.nt> ; + . + +<#nt-syntax-bad-uri-01> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-01" ; + rdfs:comment "Bad IRI : space (negative test)" ; + mf:action <nt-syntax-bad-uri-01.nt> ; + . + +<#nt-syntax-bad-uri-02> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-02" ; + rdfs:comment "Bad IRI : bad escape (negative test)" ; + mf:action <nt-syntax-bad-uri-02.nt> ; + . + +<#nt-syntax-bad-uri-03> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-03" ; + rdfs:comment "Bad IRI : bad long escape (negative test)" ; + mf:action <nt-syntax-bad-uri-03.nt> ; + . + +<#nt-syntax-bad-uri-04> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-04" ; + rdfs:comment "Bad IRI : character escapes not allowed (negative test)" ; + mf:action <nt-syntax-bad-uri-04.nt> ; + . + +<#nt-syntax-bad-uri-05> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-05" ; + rdfs:comment "Bad IRI : character escapes not allowed (2) (negative test)" ; + mf:action <nt-syntax-bad-uri-05.nt> ; + . + +<#nt-syntax-bad-uri-06> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-06" ; + rdfs:comment "Bad IRI : relative IRI not allowed in subject (negative test)" ; + mf:action <nt-syntax-bad-uri-06.nt> ; + . + +<#nt-syntax-bad-uri-07> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-07" ; + rdfs:comment "Bad IRI : relative IRI not allowed in predicate (negative test)" ; + mf:action <nt-syntax-bad-uri-07.nt> ; + . + +<#nt-syntax-bad-uri-08> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-08" ; + rdfs:comment "Bad IRI : relative IRI not allowed in object (negative test)" ; + mf:action <nt-syntax-bad-uri-08.nt> ; + . + +<#nt-syntax-bad-uri-09> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-uri-09" ; + rdfs:comment "Bad IRI : relative IRI not allowed in datatype (negative test)" ; + mf:action <nt-syntax-bad-uri-09.nt> ; + . + +<#nt-syntax-bad-prefix-01> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-prefix-01" ; + rdfs:comment "@prefix not allowed in n-triples (negative test)" ; + mf:action <nt-syntax-bad-prefix-01.nt> ; + . + +<#nt-syntax-bad-base-01> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-base-01" ; + rdfs:comment "@base not allowed in N-Triples (negative test)" ; + mf:action <nt-syntax-bad-base-01.nt> ; + . + +<#nt-syntax-bad-struct-01> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-struct-01" ; + rdfs:comment "N-Triples does not have objectList (negative test)" ; + mf:action <nt-syntax-bad-struct-01.nt> ; + . + +<#nt-syntax-bad-struct-02> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-struct-02" ; + rdfs:comment "N-Triples does not have predicateObjectList (negative test)" ; + mf:action <nt-syntax-bad-struct-02.nt> ; + . + +<#nt-syntax-bad-lang-01> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-lang-01" ; + rdfs:comment "langString with bad lang (negative test)" ; + mf:action <nt-syntax-bad-lang-01.nt> ; + . + +<#nt-syntax-bad-esc-01> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-esc-01" ; + rdfs:comment "Bad string escape (negative test)" ; + mf:action <nt-syntax-bad-esc-01.nt> ; + . + +<#nt-syntax-bad-esc-02> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-esc-02" ; + rdfs:comment "Bad string escape (negative test)" ; + mf:action <nt-syntax-bad-esc-02.nt> ; + . + +<#nt-syntax-bad-esc-03> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-esc-03" ; + rdfs:comment "Bad string escape (negative test)" ; + mf:action <nt-syntax-bad-esc-03.nt> ; + . + +<#nt-syntax-bad-string-01> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-string-01" ; + rdfs:comment "mismatching string literal open/close (negative test)" ; + mf:action <nt-syntax-bad-string-01.nt> ; + . + +<#nt-syntax-bad-string-02> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-string-02" ; + rdfs:comment "mismatching string literal open/close (negative test)" ; + mf:action <nt-syntax-bad-string-02.nt> ; + . + +<#nt-syntax-bad-string-03> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-string-03" ; + rdfs:comment "single quotes (negative test)" ; + mf:action <nt-syntax-bad-string-03.nt> ; + . + +<#nt-syntax-bad-string-04> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-string-04" ; + rdfs:comment "long single string literal (negative test)" ; + mf:action <nt-syntax-bad-string-04.nt> ; + . + +<#nt-syntax-bad-string-05> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-string-05" ; + rdfs:comment "long double string literal (negative test)" ; + mf:action <nt-syntax-bad-string-05.nt> ; + . + +<#nt-syntax-bad-string-06> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-string-06" ; + rdfs:comment "string literal with no end (negative test)" ; + mf:action <nt-syntax-bad-string-06.nt> ; + . + +<#nt-syntax-bad-string-07> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-string-07" ; + rdfs:comment "string literal with no start (negative test)" ; + mf:action <nt-syntax-bad-string-07.nt> ; + . + +<#nt-syntax-bad-num-01> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-num-01" ; + rdfs:comment "no numbers in N-Triples (integer) (negative test)" ; + mf:action <nt-syntax-bad-num-01.nt> ; + . + +<#nt-syntax-bad-num-02> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-num-02" ; + rdfs:comment "no numbers in N-Triples (decimal) (negative test)" ; + mf:action <nt-syntax-bad-num-02.nt> ; + . + +<#nt-syntax-bad-num-03> rdf:type rdft:TestNTriplesNegativeSyntax ; + mf:name "nt-syntax-bad-num-03" ; + rdfs:comment "no numbers in N-Triples (float) (negative test)" ; + mf:action <nt-syntax-bad-num-03.nt> ; + . + +<#nt-syntax-subm-01> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "nt-syntax-subm-01" ; + rdfs:comment "Submission test from Original RDF Test Cases" ; + mf:action <nt-syntax-subm-01.nt> ; + . + +<#comment_following_triple> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "comment_following_triple" ; + rdfs:comment "Tests comments after a triple" ; + rdft:approval rdft:Proposed ; + mf:action <comment_following_triple.nt> ; + . + +<#literal_ascii_boundaries> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_ascii_boundaries" ; + rdfs:comment "literal_ascii_boundaries '\\x00\\x26\\x28...'" ; + rdft:approval rdft:Proposed ; + mf:action <literal_ascii_boundaries.nt> ; + . + +<#literal_with_UTF8_boundaries> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_UTF8_boundaries" ; + rdfs:comment "literal_with_UTF8_boundaries '\\x80\\x7ff\\x800\\xfff...'" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_UTF8_boundaries.nt> ; + . + +<#literal_all_controls> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_all_controls" ; + rdfs:comment "literal_all_controls '\\x00\\x01\\x02\\x03\\x04...'" ; + rdft:approval rdft:Approved ; + mf:action <literal_all_controls.nt> ; + . + +<#literal_all_punctuation> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_all_punctuation" ; + rdfs:comment "literal_all_punctuation '!\"#$%&()...'" ; + rdft:approval rdft:Approved ; + mf:action <literal_all_punctuation.nt> ; + . + +<#literal_with_squote> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_squote" ; + rdfs:comment "literal with squote \"x'y\"" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_squote.nt> ; + . + +<#literal_with_2_squotes> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_2_squotes" ; + rdfs:comment "literal with 2 squotes \"x''y\"" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_2_squotes.nt> ; + . + +<#literal> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal" ; + rdfs:comment "literal \"\"\"x\"\"\"" ; + rdft:approval rdft:Proposed ; + mf:action <literal.nt> ; + . + +<#literal_with_dquote> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_dquote" ; + rdfs:comment "literal with dquote \"x\"y\"" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_dquote.nt> ; + . + +<#literal_with_2_dquotes> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_2_dquotes" ; + rdfs:comment "literal with 2 squotes \"\"\"a\"\"b\"\"\"" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_2_dquotes.nt> ; + . + +<#literal_with_REVERSE_SOLIDUS2> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_REVERSE_SOLIDUS2" ; + rdfs:comment "REVERSE SOLIDUS at end of literal" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_REVERSE_SOLIDUS2.nt> ; + . + +<#literal_with_CHARACTER_TABULATION> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_CHARACTER_TABULATION" ; + rdfs:comment "literal with CHARACTER TABULATION" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_CHARACTER_TABULATION.nt> ; + . + +<#literal_with_BACKSPACE> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_BACKSPACE" ; + rdfs:comment "literal with BACKSPACE" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_BACKSPACE.nt> ; + . + +<#literal_with_LINE_FEED> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_LINE_FEED" ; + rdfs:comment "literal with LINE FEED" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_LINE_FEED.nt> ; + . + +<#literal_with_CARRIAGE_RETURN> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_CARRIAGE_RETURN" ; + rdfs:comment "literal with CARRIAGE RETURN" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_CARRIAGE_RETURN.nt> ; + . + +<#literal_with_FORM_FEED> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_FORM_FEED" ; + rdfs:comment "literal with FORM FEED" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_FORM_FEED.nt> ; + . + +<#literal_with_REVERSE_SOLIDUS> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_REVERSE_SOLIDUS" ; + rdfs:comment "literal with REVERSE SOLIDUS" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_REVERSE_SOLIDUS.nt> ; + . + +<#literal_with_numeric_escape4> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_numeric_escape4" ; + rdfs:comment "literal with numeric escape4 \\u" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_numeric_escape4.nt> ; + . + +<#literal_with_numeric_escape8> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "literal_with_numeric_escape8" ; + rdfs:comment "literal with numeric escape8 \\U" ; + rdft:approval rdft:Proposed ; + mf:action <literal_with_numeric_escape8.nt> ; + . + +<#langtagged_string> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "langtagged_string" ; + rdfs:comment "langtagged string \"x\"@en" ; + rdft:approval rdft:Proposed ; + mf:action <langtagged_string.nt> ; + . + +<#lantag_with_subtag> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "lantag_with_subtag" ; + rdfs:comment "lantag with subtag \"x\"@en-us" ; + rdft:approval rdft:Proposed ; + mf:action <lantag_with_subtag.nt> ; + . + +<#minimal_whitespace> rdf:type rdft:TestNTriplesPositiveSyntax ; + mf:name "minimal_whitespace" ; + rdfs:comment "tests absense of whitespace between subject, predicate, object and end-of-statement" ; + rdft:approval rdft:Proposed ; + mf:action <minimal_whitespace.nt> ; + . diff --git a/tests/NTriplesTests/minimal_whitespace.nt b/tests/NTriplesTests/minimal_whitespace.nt new file mode 100644 index 00000000..e9e3a801 --- /dev/null +++ b/tests/NTriplesTests/minimal_whitespace.nt @@ -0,0 +1,6 @@ +<http://example/s><http://example/p><http://example/o>. +<http://example/s><http://example/p>"Alice". +<http://example/s><http://example/p>_:o. +_:s<http://example/p><http://example/o>. +_:s<http://example/p>"Alice". +_:s<http://example/p>_:bnode1. diff --git a/tests/NTriplesTests/nt-syntax-bad-base-01.nt b/tests/NTriplesTests/nt-syntax-bad-base-01.nt new file mode 100644 index 00000000..dff1b3b4 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-base-01.nt @@ -0,0 +1 @@ +@base <http://example/> . diff --git a/tests/NTriplesTests/nt-syntax-bad-esc-01.nt b/tests/NTriplesTests/nt-syntax-bad-esc-01.nt new file mode 100644 index 00000000..f7a88add --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-esc-01.nt @@ -0,0 +1,2 @@ +# Bad string escape +<http://example/s> <http://example/p> "a\zb" . diff --git a/tests/NTriplesTests/nt-syntax-bad-esc-02.nt b/tests/NTriplesTests/nt-syntax-bad-esc-02.nt new file mode 100644 index 00000000..72711d49 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-esc-02.nt @@ -0,0 +1,2 @@ +# Bad string escape +<http://example/s> <http://example/p> "\uWXYZ" . diff --git a/tests/NTriplesTests/nt-syntax-bad-esc-03.nt b/tests/NTriplesTests/nt-syntax-bad-esc-03.nt new file mode 100644 index 00000000..3a4522fc --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-esc-03.nt @@ -0,0 +1,2 @@ +# Bad string escape +<http://example/s> <http://example/p> "\U0000WXYZ" . diff --git a/tests/NTriplesTests/nt-syntax-bad-lang-01.nt b/tests/NTriplesTests/nt-syntax-bad-lang-01.nt new file mode 100644 index 00000000..a4d952c8 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-lang-01.nt @@ -0,0 +1,2 @@ +# Bad lang tag +<http://example/s> <http://example/p> "string"@1 . diff --git a/tests/NTriplesTests/nt-syntax-bad-num-01.nt b/tests/NTriplesTests/nt-syntax-bad-num-01.nt new file mode 100644 index 00000000..2be6f516 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-num-01.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> 1 . diff --git a/tests/NTriplesTests/nt-syntax-bad-num-02.nt b/tests/NTriplesTests/nt-syntax-bad-num-02.nt new file mode 100644 index 00000000..e1d5b06c --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-num-02.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> 1.0 . diff --git a/tests/NTriplesTests/nt-syntax-bad-num-03.nt b/tests/NTriplesTests/nt-syntax-bad-num-03.nt new file mode 100644 index 00000000..a9be82fc --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-num-03.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> 1.0e0 . diff --git a/tests/NTriplesTests/nt-syntax-bad-prefix-01.nt b/tests/NTriplesTests/nt-syntax-bad-prefix-01.nt new file mode 100644 index 00000000..89e08cc7 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-prefix-01.nt @@ -0,0 +1 @@ +@prefix : <http://example/> . diff --git a/tests/NTriplesTests/nt-syntax-bad-string-01.nt b/tests/NTriplesTests/nt-syntax-bad-string-01.nt new file mode 100644 index 00000000..988af87a --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-string-01.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "abc' . diff --git a/tests/NTriplesTests/nt-syntax-bad-string-02.nt b/tests/NTriplesTests/nt-syntax-bad-string-02.nt new file mode 100644 index 00000000..e1d5b06c --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-string-02.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> 1.0 . diff --git a/tests/NTriplesTests/nt-syntax-bad-string-03.nt b/tests/NTriplesTests/nt-syntax-bad-string-03.nt new file mode 100644 index 00000000..64d343da --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-string-03.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> 1.0e1 . diff --git a/tests/NTriplesTests/nt-syntax-bad-string-04.nt b/tests/NTriplesTests/nt-syntax-bad-string-04.nt new file mode 100644 index 00000000..af4ff28f --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-string-04.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> '''abc''' . diff --git a/tests/NTriplesTests/nt-syntax-bad-string-05.nt b/tests/NTriplesTests/nt-syntax-bad-string-05.nt new file mode 100644 index 00000000..75ad4b2b --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-string-05.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> """abc""" . diff --git a/tests/NTriplesTests/nt-syntax-bad-string-06.nt b/tests/NTriplesTests/nt-syntax-bad-string-06.nt new file mode 100644 index 00000000..56dcbc60 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-string-06.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "abc . diff --git a/tests/NTriplesTests/nt-syntax-bad-string-07.nt b/tests/NTriplesTests/nt-syntax-bad-string-07.nt new file mode 100644 index 00000000..7f1ee800 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-string-07.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> abc" . diff --git a/tests/NTriplesTests/nt-syntax-bad-struct-01.nt b/tests/NTriplesTests/nt-syntax-bad-struct-01.nt new file mode 100644 index 00000000..d546d564 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-struct-01.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> <http://example/o>, <http://example/o2> . diff --git a/tests/NTriplesTests/nt-syntax-bad-struct-02.nt b/tests/NTriplesTests/nt-syntax-bad-struct-02.nt new file mode 100644 index 00000000..1f388c6e --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-struct-02.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> <http://example/o>; <http://example/p2>, <http://example/o2> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-01.nt b/tests/NTriplesTests/nt-syntax-bad-uri-01.nt new file mode 100644 index 00000000..0e69dc0c --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-01.nt @@ -0,0 +1,2 @@ +# Bad IRI : space. +<http://example/ space> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-02.nt b/tests/NTriplesTests/nt-syntax-bad-uri-02.nt new file mode 100644 index 00000000..36d91af9 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-02.nt @@ -0,0 +1,2 @@ +# Bad IRI : bad escape +<http://example/\u00ZZ11> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-03.nt b/tests/NTriplesTests/nt-syntax-bad-uri-03.nt new file mode 100644 index 00000000..f512345f --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-03.nt @@ -0,0 +1,2 @@ +# Bad IRI : bad escape +<http://example/\U00ZZ1111> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-04.nt b/tests/NTriplesTests/nt-syntax-bad-uri-04.nt new file mode 100644 index 00000000..5cab062c --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-04.nt @@ -0,0 +1,2 @@ +# Bad IRI : character escapes not allowed. +<http://example/\n> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-05.nt b/tests/NTriplesTests/nt-syntax-bad-uri-05.nt new file mode 100644 index 00000000..be0a21e0 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-05.nt @@ -0,0 +1,2 @@ +# Bad IRI : character escapes not allowed. +<http://example/\/> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-06.nt b/tests/NTriplesTests/nt-syntax-bad-uri-06.nt new file mode 100644 index 00000000..b4e64592 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-06.nt @@ -0,0 +1,2 @@ +# No relative IRIs in N-Triples +<s> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-07.nt b/tests/NTriplesTests/nt-syntax-bad-uri-07.nt new file mode 100644 index 00000000..74534dde --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-07.nt @@ -0,0 +1,2 @@ +# No relative IRIs in N-Triples +<http://example/s> <p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-08.nt b/tests/NTriplesTests/nt-syntax-bad-uri-08.nt new file mode 100644 index 00000000..41a953d4 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-08.nt @@ -0,0 +1,2 @@ +# No relative IRIs in N-Triples +<http://example/s> <http://example/p> <o> . diff --git a/tests/NTriplesTests/nt-syntax-bad-uri-09.nt b/tests/NTriplesTests/nt-syntax-bad-uri-09.nt new file mode 100644 index 00000000..58821da8 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bad-uri-09.nt @@ -0,0 +1,2 @@ +# No relative IRIs in N-Triples +<http://example/s> <http://example/p> "foo"^^<dt> . diff --git a/tests/NTriplesTests/nt-syntax-bnode-01.nt b/tests/NTriplesTests/nt-syntax-bnode-01.nt new file mode 100644 index 00000000..5fb0d0f9 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bnode-01.nt @@ -0,0 +1 @@ +_:a <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bnode-02.nt b/tests/NTriplesTests/nt-syntax-bnode-02.nt new file mode 100644 index 00000000..737e81b4 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bnode-02.nt @@ -0,0 +1,2 @@ +<http://example/s> <http://example/p> _:a . +_:a <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-bnode-03.nt b/tests/NTriplesTests/nt-syntax-bnode-03.nt new file mode 100644 index 00000000..1a1f1c9f --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-bnode-03.nt @@ -0,0 +1,2 @@ +<http://example/s> <http://example/p> _:1a . +_:1a <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-datatypes-01.nt b/tests/NTriplesTests/nt-syntax-datatypes-01.nt new file mode 100644 index 00000000..91263091 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-datatypes-01.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "123"^^<http://www.w3.org/2001/XMLSchema#byte> . diff --git a/tests/NTriplesTests/nt-syntax-datatypes-02.nt b/tests/NTriplesTests/nt-syntax-datatypes-02.nt new file mode 100644 index 00000000..d49cc27d --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-datatypes-02.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "123"^^<http://www.w3.org/2001/XMLSchema#string> . diff --git a/tests/NTriplesTests/nt-syntax-file-01.nt b/tests/NTriplesTests/nt-syntax-file-01.nt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-file-01.nt diff --git a/tests/NTriplesTests/nt-syntax-file-02.nt b/tests/NTriplesTests/nt-syntax-file-02.nt new file mode 100644 index 00000000..e6d327d5 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-file-02.nt @@ -0,0 +1 @@ +#Empty file. diff --git a/tests/NTriplesTests/nt-syntax-file-03.nt b/tests/NTriplesTests/nt-syntax-file-03.nt new file mode 100644 index 00000000..a9ca0358 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-file-03.nt @@ -0,0 +1,2 @@ +#One comment, one empty line. + diff --git a/tests/NTriplesTests/nt-syntax-str-esc-01.nt b/tests/NTriplesTests/nt-syntax-str-esc-01.nt new file mode 100644 index 00000000..3925f2ec --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-str-esc-01.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "a\n" . diff --git a/tests/NTriplesTests/nt-syntax-str-esc-02.nt b/tests/NTriplesTests/nt-syntax-str-esc-02.nt new file mode 100644 index 00000000..e7d032f0 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-str-esc-02.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "a\u0020b" . diff --git a/tests/NTriplesTests/nt-syntax-str-esc-03.nt b/tests/NTriplesTests/nt-syntax-str-esc-03.nt new file mode 100644 index 00000000..b8588c79 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-str-esc-03.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "a\U00000020b" . diff --git a/tests/NTriplesTests/nt-syntax-string-01.nt b/tests/NTriplesTests/nt-syntax-string-01.nt new file mode 100644 index 00000000..5333aefe --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-string-01.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "string" . diff --git a/tests/NTriplesTests/nt-syntax-string-02.nt b/tests/NTriplesTests/nt-syntax-string-02.nt new file mode 100644 index 00000000..1ab55a33 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-string-02.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "string"@en . diff --git a/tests/NTriplesTests/nt-syntax-string-03.nt b/tests/NTriplesTests/nt-syntax-string-03.nt new file mode 100644 index 00000000..b34ca0f6 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-string-03.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> "string"@en-uk . diff --git a/tests/NTriplesTests/nt-syntax-subm-01.nt b/tests/NTriplesTests/nt-syntax-subm-01.nt new file mode 100644 index 00000000..91b49889 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-subm-01.nt @@ -0,0 +1,79 @@ +# +# Copyright World Wide Web Consortium, (Massachusetts Institute of +# Technology, Institut National de Recherche en Informatique et en +# Automatique, Keio University). +# +# All Rights Reserved. +# +# Please see the full Copyright clause at +# <http://www.w3.org/Consortium/Legal/copyright-software.html> +# +# Test file with a variety of legal N-Triples +# +# Dave Beckett - http://purl.org/net/dajobe/ +# +# $Id: test.nt,v 1.7 2003/10/06 15:52:19 dbeckett2 Exp $ +# +##################################################################### + +# comment lines + # comment line after whitespace +# empty blank line, then one with spaces and tabs + + +<http://example.org/resource1> <http://example.org/property> <http://example.org/resource2> . +_:anon <http://example.org/property> <http://example.org/resource2> . +<http://example.org/resource2> <http://example.org/property> _:anon . +# spaces and tabs throughout: + <http://example.org/resource3> <http://example.org/property> <http://example.org/resource2> . + +# line ending with CR NL (ASCII 13, ASCII 10) +<http://example.org/resource4> <http://example.org/property> <http://example.org/resource2> . + +# 2 statement lines separated by single CR (ASCII 10) +<http://example.org/resource5> <http://example.org/property> <http://example.org/resource2> . +<http://example.org/resource6> <http://example.org/property> <http://example.org/resource2> . + + +# All literal escapes +<http://example.org/resource7> <http://example.org/property> "simple literal" . +<http://example.org/resource8> <http://example.org/property> "backslash:\\" . +<http://example.org/resource9> <http://example.org/property> "dquote:\"" . +<http://example.org/resource10> <http://example.org/property> "newline:\n" . +<http://example.org/resource11> <http://example.org/property> "return\r" . +<http://example.org/resource12> <http://example.org/property> "tab:\t" . + +# Space is optional before final . +<http://example.org/resource13> <http://example.org/property> <http://example.org/resource2>. +<http://example.org/resource14> <http://example.org/property> "x". +<http://example.org/resource15> <http://example.org/property> _:anon. + +# \u and \U escapes +# latin small letter e with acute symbol \u00E9 - 3 UTF-8 bytes #xC3 #A9 +<http://example.org/resource16> <http://example.org/property> "\u00E9" . +# Euro symbol \u20ac - 3 UTF-8 bytes #xE2 #x82 #xAC +<http://example.org/resource17> <http://example.org/property> "\u20AC" . +# resource18 test removed +# resource19 test removed +# resource20 test removed + +# XML Literals as Datatyped Literals +<http://example.org/resource21> <http://example.org/property> ""^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +<http://example.org/resource22> <http://example.org/property> " "^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +<http://example.org/resource23> <http://example.org/property> "x"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +<http://example.org/resource23> <http://example.org/property> "\""^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +<http://example.org/resource24> <http://example.org/property> "<a></a>"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +<http://example.org/resource25> <http://example.org/property> "a <b></b>"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +<http://example.org/resource26> <http://example.org/property> "a <b></b> c"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +<http://example.org/resource26> <http://example.org/property> "a\n<b></b>\nc"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +<http://example.org/resource27> <http://example.org/property> "chat"^^<http://www.w3.org/2000/01/rdf-schema#XMLLiteral> . +# resource28 test removed 2003-08-03 +# resource29 test removed 2003-08-03 + +# Plain literals with languages +<http://example.org/resource30> <http://example.org/property> "chat"@fr . +<http://example.org/resource31> <http://example.org/property> "chat"@en . + +# Typed Literals +<http://example.org/resource32> <http://example.org/property> "abc"^^<http://example.org/datatype1> . +# resource33 test removed 2003-08-03 diff --git a/tests/NTriplesTests/nt-syntax-uri-01.nt b/tests/NTriplesTests/nt-syntax-uri-01.nt new file mode 100644 index 00000000..02e6ba98 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-uri-01.nt @@ -0,0 +1 @@ +<http://example/s> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-uri-02.nt b/tests/NTriplesTests/nt-syntax-uri-02.nt new file mode 100644 index 00000000..664feea1 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-uri-02.nt @@ -0,0 +1,2 @@ +# x53 is capital S +<http://example/\u0053> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-uri-03.nt b/tests/NTriplesTests/nt-syntax-uri-03.nt new file mode 100644 index 00000000..b5aeb26e --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-uri-03.nt @@ -0,0 +1,2 @@ +# x53 is capital S +<http://example/\U00000053> <http://example/p> <http://example/o> . diff --git a/tests/NTriplesTests/nt-syntax-uri-04.nt b/tests/NTriplesTests/nt-syntax-uri-04.nt new file mode 100644 index 00000000..49bacca7 --- /dev/null +++ b/tests/NTriplesTests/nt-syntax-uri-04.nt @@ -0,0 +1,2 @@ +# IRI with all chars in it. +<http://example/s> <http://example/p> <scheme:!$%25&'()*+,-./0123456789:/@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~?#> . @@ -380,7 +380,7 @@ def test_manifest(ctx, srcdir, testdir, report, base_uri, isyntax, osyntax, test def test(ctx): blddir = autowaf.build_dir(APPNAME, 'tests') - for i in ['', 'bad', 'good', 'new', 'TurtleTests', 'NQuadsTests', 'TrigTests', 'extra']: + for i in ['', 'bad', 'good', 'new', 'TurtleTests', 'NTriplesTests', 'NQuadsTests', 'TrigTests', 'extra']: try: os.makedirs(os.path.join(blddir, i)) except: @@ -541,6 +541,13 @@ def test(ctx): [rdft.TestTurtleNegativeEval, 1, False], [rdft.TestTurtleEval, 0, True]]) + ntriples_tests = 'http://www.w3.org/2013/N-TriplesTests/' + test_manifest(ctx, srcdir, 'NTriplesTests', report, ntriples_tests, 'ntriples', 'ntriples', + [[rdft.TestNTriplesPositiveSyntax, 0, False], + [rdft.TestNTriplesNegativeSyntax, 1, False], + [rdft.TestNTriplesNegativeEval, 1, False], + [rdft.TestNTriplesEval, 0, True]]) + nquads_tests = 'http://www.w3.org/2013/NQuadsTests/' test_manifest(ctx, srcdir, 'NQuadsTests', report, nquads_tests, 'nquads', 'nquads', [[rdft.TestNQuadsPositiveSyntax, 0, False], |