You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2013/12/15 12:40:16 UTC
svn commit: r1551016 [1/2] - in /jena/Experimental/new-test/src/test: java/
java/com/hp/hpl/jena/n3/ java/com/hp/hpl/jena/rdf/model/
java/com/hp/hpl/jena/testing_framework/ resources/com/hp/hpl/jena/n3/
Author: claude
Date: Sun Dec 15 11:40:13 2013
New Revision: 1551016
URL: http://svn.apache.org/r1551016
Log:
Added n3 tests
Added:
jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/IRIResolverTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterCommonTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPPTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterParameterizedTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPlainTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTriplesTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3TurtleJenaWriterTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterTest.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleItem.java (with props)
jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleSet.java (with props)
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/README_LICENSE
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/a1.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/contexts.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lists-simple.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lstring.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-results
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-tests
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-parser-tests
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-reader-tests
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-01.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-02.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-03.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-04.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-05.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-06.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-07.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-08.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-09.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-10.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-11.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-12.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-13.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-14.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-15.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-16.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-17.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-18.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-19.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-20.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-21.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-22.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-23.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-24.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-25.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-26.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-27.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-28.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-29.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-30.ttl
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-tests
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/path1.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/path2.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/quantifiers.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/qvars1.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/qvars2.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-01.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-02.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-03.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-04.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-05.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-06.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-07.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-08.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-09.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-10.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-11.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-12.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-13.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-14.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-15.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-16.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-17.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-18.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-19.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-20.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-21.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-22.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-23.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-24.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-25.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-26.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-27.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-result-28.nt
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-01.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-02.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-03.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-04.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-05.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-06.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-07.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-08.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-09.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-10.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-11.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-12.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-13.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-14.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-15.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-16.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-17.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-18.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-19.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-20.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-21.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-22.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-23.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-24.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-25.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-26.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-27.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/rdf-test-28.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/resolves-rdf.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/sep-term.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/sib.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/strquot.n3
jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/t10.n3
Added: jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java (added)
+++ jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+import java.util.HashSet;
+
+import org.junit.runner.RunWith;
+import org.xenei.junit.contract.ContractImpl;
+import org.xenei.junit.contract.ContractSuite;
+import org.xenei.junit.contract.Contract.Inject;
+
+import com.hp.hpl.jena.graph.Triple;
+import com.hp.hpl.jena.graph.impl.CollectionGraph;
+import com.hp.hpl.jena.sparql.graph.GraphMemPlain;
+import com.hp.hpl.jena.testing_framework.AbstractGraphProducer;
+import org.xenei.junit.contract.IProducer;
+
+@RunWith(ContractSuite.class)
+@ContractImpl(GraphMemPlain.class)
+public class GraphMemPlainTest {
+
+ protected IProducer<GraphMemPlain> graphProducer = new AbstractGraphProducer<GraphMemPlain>() {
+
+ @Override
+ protected GraphMemPlain createNewGraph() {
+ return new GraphMemPlain();
+ }
+
+ };
+
+ @Inject
+ public IProducer<GraphMemPlain> getGraphProducer() {
+ return graphProducer;
+ }
+
+}
Propchange: jena/Experimental/new-test/src/test/java/GraphMemPlainTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/IRIResolverTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/IRIResolverTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/IRIResolverTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/IRIResolverTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,409 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.n3;
+
+import static org.junit.Assert.*;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import com.hp.hpl.jena.n3.IRIResolver;
+import com.hp.hpl.jena.n3.JenaURIException;
+
+public class IRIResolverTest
+{
+
+ @Test
+ public void testBase1()
+ {
+ IRIResolver resolver = new IRIResolver();
+ assertNotNull(resolver.getBaseIRI()) ;
+ String base = resolver.getBaseIRI() ;
+ assertTrue(base.indexOf(':') > 0 ) ;
+ }
+
+ @Test
+ public void testBase2()
+ {
+ IRIResolver resolver = new IRIResolver("x") ;
+ assertNotNull(resolver.getBaseIRI()) ;
+ // Active when IRI library integrated - currently the resolver takes a raw base string.
+// String base = resolver.getBaseIRI() ;
+// assertTrue(base.indexOf(':') > 0 ) ;
+ }
+
+ @Test
+ public void testBase3()
+ {
+ String b = IRIResolver.resolveGlobal("x") ;
+ IRIResolver resolver = new IRIResolver(b) ;
+ assertNotNull(resolver.getBaseIRI()) ;
+ String base = resolver.getBaseIRI() ;
+ assertTrue(base.indexOf(':') > 0 ) ;
+ }
+
+ @Test
+ public void testBadBase1() {
+ execException("%G",JenaURIException.class);
+ }
+ @Test
+ public void testBadBase2() {
+ execException("/%G",JenaURIException.class);
+ }
+ @Test
+ public void testBadBase3() {
+ execException("file:/%/",JenaURIException.class);
+ }
+ @Test
+ public void testBadBase4() {
+ execException("http://example.org/%",JenaURIException.class);
+ }
+
+ @Test
+ public void testBadChoice1() {
+ chooseException("%G",JenaURIException.class);
+ }
+ @Test
+ public void testBadChoice2() {
+ chooseException("/%G",JenaURIException.class);
+ }
+ @Test
+ public void testBadChoice3() {
+ chooseException("file:/%/",JenaURIException.class);
+ }
+ @Test
+ public void testChoice1() {
+ IRIResolver.chooseBaseURI("file:a") ;
+ }
+ @Test
+ public void testChoice2() {
+ IRIResolver.chooseBaseURI("file:a") ;
+ }
+ // ---- Basic
+
+ @Test
+ public void testURI_1() { execTest("", "http://example.org/", "http://example.org/"); }
+ @Test
+ public void testURI_2() { execTest("", "http://example.org/xyz_2007", "http://example.org/xyz_2007"); }
+ @Test
+ public void testURI_3() { execTest("", "http://example.org/xyz 2007", "http://example.org/xyz 2007"); }
+ @Test
+ public void testURI_4() { execTest("", "http://example.org/xyz__2007", "http://example.org/xyz__2007"); }
+ @Test
+ public void testURI_5() { execTest("", "http://example.org/xyz__abc", "http://example.org/xyz__abc"); }
+
+ // ---- Relative URIs
+
+ @Test
+ public void testURI_relX_1() { execTest("x", "http://example.org/ns", "http://example.org/x"); }
+
+ @Test
+ public void testURI_relX_2() { execTest("x", "http://example.org/", "http://example.org/x"); }
+
+ @Test
+ public void testURI2_relHashX_1() { execTest("#x", "http://example.org/ns", "http://example.org/ns#x"); }
+
+ @Test
+ public void testURI2_relHashX_2() { execTest("#x", "http://example.org/ns/", "http://example.org/ns/#x"); }
+
+ @Test
+ public void testURI_blank_1() { execTest("", "http://example.org/ns", "http://example.org/ns") ; }
+
+ @Test
+ public void testURI_blank_2() { execTest("", "http://example.org/ns/", "http://example.org/ns/") ; }
+
+ @Test
+ public void testURI_hash_1() { execTest("#", "http://example.org/ns", "http://example.org/ns#") ; }
+
+ @Test
+ public void testURI_hash_2() { execTest("#", "http://example.org/ns/", "http://example.org/ns/#") ; }
+
+ @Test
+ public void testBaseHash_1() { execTest("x", "http://example.org/ns#", "http://example.org/x") ; }
+
+ @Test
+ public void testBaseHash_2() { execTest("x", "http://example.org#", "http://example.org/x") ; }
+
+ @Test
+ public void testBaseHash_3() { execTest("#", "base:x", "base:x#") ; }
+
+// // Java5: exception
+// // Java6 & GNUclasspath: correctly get "base:#"
+// public void testBaseHash_4() { execTest("#", "base:", "base:#") ; }
+
+ @Test
+ public void testScheme_1() { execTest("x", "base:", "base:x") ; }
+
+ @Test
+ public void testScheme_2() { execTest("/x", "base:", "base:/x") ; }
+
+ @Test
+ public void testScheme_3() { execTestMatch("x", "file:", "^file:///.*/x$") ; }
+
+ @Test
+ public void testScheme_4() { execTestMatch("file:x", null, "^file:///.*/x$") ; }
+
+// public void testURI_file_1() { execTestMatch("file:x", "http://example.org/ns", "^file:///.*/x$") ; }
+
+ @Test
+ public void testURI_file_2() { execTest("x", "file:///A/B/C", "file:///A/B/x") ; }
+
+ @Test
+ public void testURI_file_3() { execTest("x", "file:///A/B/", "file:///A/B/x") ; }
+
+
+ // ---- Absolute URIs are left alone
+
+ @Test
+ public void testURI_abs_1() { execTest("http://host/x", "http://example.org/ns", "http://host/x") ; }
+
+ @Test
+ public void testURI_abs_2() { execTest("file:///x", "http://example.org/ns", "file:///x") ; }
+
+ @Test
+ public void testURI_abs_3() { execTest("tag:foo", "http://example.org/ns", "tag:foo") ; }
+
+ @Test
+ public void testURI_abs_4() { execTest("tag:/foo", "http://example.org/ns", "tag:/foo") ; }
+
+ @Test
+ public void testURI_abs_5() { execTest("tag:/foo/", "http://example.org/ns", "tag:/foo/") ; }
+
+ @Test
+ public void testURI_abs_6() { execTest("scheme99:/foo/", "http://example.org/ns", "scheme99:/foo/") ; }
+
+ // Null base
+
+ @Test
+ public void testURI_nullBase_1() { execTest("scheme99:/foo/", null, "scheme99:/foo/") ; }
+
+ // resolved against current directory
+ @Test
+ public void testURI_nullBase_2() { execTestMatch("foo", null, ".*/foo") ; }
+
+ // ---- Hierarchical URIs
+
+ @Test
+ public void testHierURI_1() { execTest("../foo", "file:///dir/file", "file:///foo") ; }
+
+ @Test
+ public void testHierURI_2() { execTest("../foo", "http://host/dir/file.html", "http://host/foo") ; }
+
+ @Test
+ public void testHierURI_3() { execTest("../foo", "http://host/dir/", "http://host/foo") ; }
+
+ @Test
+ public void testHierURI_4() { execTest("../foo", "http://host/", "http://host/foo") ; }
+
+ @Test
+ public void testHierURI_5() { execTest("../foo", "http://host/xyz", "http://host/foo") ; }
+
+ @Test
+ public void testHierURI_6() { execTest(".", "http://host/xyz", "http://host/") ; }
+
+ @Test
+ public void testHierURI_7() { execTest(".", "http://host/xyz/", "http://host/xyz/") ; }
+
+ @Test
+ public void testHierURI_8() { execTest(".", "http://host/", "http://host/") ; }
+
+ @Test
+ public void testHierURI_9() { execTest(".", "file:///dir/file", "file:///dir/") ; }
+ // ---- File URIs
+
+ @Test
+ public void testFileURI_1() { execFileTest("file:///foo", "file:///foo") ; }
+
+ @Test
+ public void testFileURI_2() { execFileTest("file://foo", "file://foo") ; }
+
+ @Test
+ public void testFileURI_3() { execFileTest("file:/foo", "file:///foo") ; }
+
+
+ // Bad.
+ @Test
+ public void testBad_1() { execException("%G", "http://example.org/", JenaURIException.class); }
+ @Test
+ public void testBad_2() { execException("foo", "http://example.org/%HH", JenaURIException.class); }
+ @Test
+ public void testBad_3() { execException("bar", "http://example.org/%3", JenaURIException.class); }
+
+
+ @Test
+ public void testBaseEmpty() { execTestMatch("x", "", "^file:///.*/x$") ; }
+
+ // Resolved against current directory.
+ @Test
+ public void testBaseNull() { execTestMatch("x", null, ".*/x" ) ; }
+
+ @Test
+ public void testRelBase_1() {execTestMatch("x", "ns", ".*/x" ); }
+
+ @Test
+ public void testRelBase_2() { execTestMatch("x", "/ns", ".*/x" ); }
+
+ // ---- Opaque
+
+ @Test
+ public void testURI_opaque_1() { execTest("#x", "tag:A", "tag:A#x") ; }
+
+ @Test
+ public void testURI_opaque_2() { execTest("#x", "urn:x-jena:A", "urn:x-jena:A#x") ; }
+
+// public void testURI_opaque_3() { execException("#x", "urn:x-jena:A", RelativeURIException.class) ; }
+
+ // ---- Opaque file URLs
+
+ // Should these be errors? Yes.
+ //public void testURI_file_4() { execTest("x", "file:A", "file:Ax") ; }
+ @Test
+ public void testURI_file_4() { execTestMatch("x", "file:A","^file:///.*/x") ;}
+
+ @Test
+ public void testURI_file_5() { execTestMatch("#x", "file:A","^file:///.*/A#x") ; }
+ //public void testURI_file_5() { execException("#x", "file:A", RelativeURIException.class) ; }
+
+ //public void testURI_file_6() { execTest("foo", "file:///xyz abc/", "file:///xyz abc/foo" ) ; }
+
+ @Test
+ public void testURI_file_7() { execTestMatch("file:foo", "file:xyz", "^file:///.*foo$") ; }
+
+ @Test
+ public void testURI_file_8() { execTestMatch("file:foo", "file:a b", "^file:///.*foo$") ; }
+
+
+ // File URLs - test aren't exact as the depend where they are run.
+
+ @Test
+ public void testFileURI_rel_1() { execTestFileRelURI("file:foo") ; }
+
+ @Test
+ public void testFileURI_rel_2() { execTestFileRelURI("file:foo/bar") ; }
+
+ @Test
+ public void testFileURI_rel_3() { execTestFileRelURI("file:foo/") ; }
+
+ @Test
+ public void testFileURI_rel_4() { execTestFileRelURI("file:foo/bar/") ; }
+
+
+ private void execTest(String u, String base, String result)
+ {
+ IRIResolver resolver = new IRIResolver(base) ;
+ String res = resolver.resolve(u) ;
+
+ if (result == null )
+ {
+ assertNull("("+u+","+base+") => <null> :: Got: "+res, res) ;
+ return ;
+ }
+
+ assertNotNull("("+u+","+base+") => "+result+" :: Got: <null>", res) ;
+ assertTrue("("+u+","+base+") => "+result+" :: Got: "+res, res.equals(result)) ;
+ }
+
+ // A test for resolved names that depend on where the tests are run.
+ private void execTestMatch(String u, String base, String resultPattern)
+ {
+ IRIResolver resolver = new IRIResolver(base) ;
+ String res = resolver.resolve(u) ;
+
+ if (resultPattern == null )
+ {
+ assertNull("("+u+","+base+") => <null> :: Got: "+res, res) ;
+ return ;
+ }
+
+ boolean r = res.matches(resultPattern) ;
+ assertTrue("Does not match: "+res+" -- "+resultPattern, r) ;
+ }
+
+ private void execFileTest(String fn1, String fn2)
+ {
+ String s = IRIResolver.resolveFileURL(fn1) ;
+ assertEquals(s,fn2) ;
+ }
+
+ private void execTestFileRelURI(String fn)
+ {
+ String relName = fn.substring("file:".length()) ;
+ String s = IRIResolver.resolveFileURL(fn) ;
+ assertTrue("Lost relative name: ("+fn+"=>"+s+")", s.endsWith(relName) ) ;
+ assertTrue("Not absolute: ("+fn+"=>"+s+")", s.startsWith("file:///") ) ;
+ }
+
+ private void execException(String u, String base, Class<?> ex)
+ {
+ String s = ex.getSimpleName() ;
+ try {
+ IRIResolver resolver = new IRIResolver(base) ;
+ String res = resolver.resolve(u) ;
+ if ( res == null )
+ fail("("+u+","+base+") => <null> :: Expected exception: " +s) ;
+ else
+ fail("("+u+","+base+") => "+res+" :: Expected exception: " +s) ;
+ } catch (Exception ex2)
+ {
+ // Shoudl test whether ex2 is a subclass of ex
+ assertEquals(ex, ex2.getClass()) ;
+ }
+ }
+
+ private void execException(String base, Class<?> ex)
+ {
+ String s = ex.getSimpleName() ;
+ try {
+ new IRIResolver(base) ;
+ fail("("+base+") => OK :: Expected exception: " +s) ;
+ } catch (Exception ex2)
+ {
+ // Shoudl test whether ex2 is a subclass of ex
+ assertEquals(ex, ex2.getClass()) ;
+ }
+ }
+
+ private void chooseException(String base, Class<?> ex)
+ {
+ String s = ex.getSimpleName() ;
+ try {
+ IRIResolver.chooseBaseURI(base) ;
+ fail("("+base+") => OK :: Expected exception: " +s) ;
+ } catch (Exception ex2)
+ {
+ // Shoudl test whether ex2 is a subclass of ex
+ assertEquals(ex, ex2.getClass()) ;
+ }
+ }
+// private void execTestGlobal(String u, String result)
+// {
+// String res = IRIResolver.resolveGlobal(u) ;
+// if (result == null )
+// {
+// assertNull("("+u+") => <null> :: Got: "+res, res) ;
+// return ;
+// }
+//
+// assertNotNull("("+u+") => "+result+" :: Got: <null>", res) ;
+// assertTrue("("+u+") => "+result+" :: Got: "+res, res.equals(result)) ;
+// }
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/IRIResolverTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterCommonTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterCommonTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterCommonTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterCommonTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,56 @@
+package com.hp.hpl.jena.n3;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.util.List;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import com.hp.hpl.jena.rdf.model.AbstractRDFWriterTest;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+import com.hp.hpl.jena.shared.JenaException;
+import com.hp.hpl.jena.testing_framework.ModelHelper;
+import com.hp.hpl.jena.util.FileUtils;
+
+public class N3JenaWriterCommonTest extends AbstractRDFWriterTest {
+
+ public N3JenaWriterCommonTest() {
+ }
+
+ @Override
+ protected RDFWriter createWriter() {
+ return new N3JenaWriterCommon();
+ }
+
+ @Override
+ protected String getTestModelFacts()
+ {
+ return "a b c ; a b2 c ;";
+ }
+
+ @Override
+ protected void checkWriteResult( String s) {
+ assertTrue( s.indexOf("<eh:/b> <eh:/c>")>-1);
+ assertTrue( s.indexOf("<eh:/b2> <eh:/c>")>-1);
+ assertTrue( s.indexOf("<eh:/a>")>-1);
+ }
+
+ @Override
+ protected String getFormat() {
+ return "N3";
+ }
+
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterCommonTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPPTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPPTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPPTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPPTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,25 @@
+package com.hp.hpl.jena.n3;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.xenei.junit.contract.ContractImpl;
+import org.xenei.junit.contract.ContractSuite;
+
+import com.hp.hpl.jena.rdf.model.AbstractRDFWriterTest;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+
+
+public class N3JenaWriterPPTest extends N3JenaWriterCommonTest {
+
+ public N3JenaWriterPPTest() {
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected RDFWriter createWriter() {
+ return new N3JenaWriterPP();
+ }
+
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPPTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterParameterizedTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterParameterizedTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterParameterizedTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterParameterizedTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,119 @@
+package com.hp.hpl.jena.n3;
+
+import static org.junit.Assert.*;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import com.hp.hpl.jena.rdf.model.AbstractRDFWriterTest;
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+import com.hp.hpl.jena.shared.JenaException;
+import com.hp.hpl.jena.testing_framework.ModelHelper;
+import com.hp.hpl.jena.testing_framework.TupleItem;
+import com.hp.hpl.jena.testing_framework.TupleSet;
+import com.hp.hpl.jena.util.FileUtils;
+
+@RunWith( value= Parameterized.class )
+public class N3JenaWriterParameterizedTest {
+
+ private static Class<?>[] clazzez = {
+ //N3JenaWriterPlain.class,
+ //N3JenaWriterPP.class,
+ N3JenaWriter.class,
+ //N3JenaWriterTriples.class,
+ //N3TurtleJenaWriter.class
+ };
+
+ private RDFWriter rdfWriter;
+ private URL inputFile;
+
+ public N3JenaWriterParameterizedTest(Class<?> writerClass, URL inputFile, String name ) throws InstantiationException, IllegalAccessException {
+ rdfWriter = (RDFWriter) writerClass.newInstance();
+ this.inputFile = inputFile;
+ }
+
+ public static final String DEFAULT_BASE = "http://example.com/";
+
+ @Test
+ public void testRoundtrip() throws Exception
+ {
+ Model model = ModelFactory.createDefaultModel();
+ model.read( inputFile.openStream(), DEFAULT_BASE, "N3" );
+
+ StringWriter writer = new StringWriter();
+ rdfWriter.write(model, writer, DEFAULT_BASE);
+ writer.close() ;
+
+ StringReader r = new StringReader(writer.toString()) ;
+ Model model2 = ModelFactory.createDefaultModel() ;
+ model2.read(r, DEFAULT_BASE, "N3") ;
+
+ assertTrue( "Models should be isomorphic", model.isIsomorphicWith(model2) );
+ }
+
+
+ @Parameters(name= "{index}: {2}")
+ public static Collection<Object[]> data() throws Exception {
+ List<Object[]> retval = new ArrayList<Object[]>();
+ InputStream is = N3JenaWriterParameterizedTest.class.getResourceAsStream("n3-writer-tests");
+ //String name = N3JenaWriterParameterizedTest.class.getCanonicalName().replaceAll("\\.", "/");
+ //File baseDir = new File(name).getParentFile();
+ //File testFile = findFile(baseDir, "n3-reader-tests");
+ TupleSet tests = null ;
+
+ Reader r = new InputStreamReader(is) ;
+ tests = new TupleSet(r) ;
+ List<URL> inputFiles = new ArrayList<URL>();
+
+ for ( ; tests.hasNext() ; )
+ {
+ List<TupleItem> l = tests.next() ;
+ if ( l.size() != 2 )
+ {
+ throw new JenaException("Error in N3 test configuration file: n3-reader-tests: length of an entry is "+l.size()) ;
+ }
+ inputFiles.add( N3JenaWriterParameterizedTest.class.getResource( l.get(0).get()) );
+ }
+
+ for (Class<?> clz : clazzez)
+ {
+
+ for (URL url : inputFiles )
+ {
+ File f = new File( url.getFile() );
+ String nm = String.format( "%s: %s", clz.getSimpleName(), f.getName());
+ retval.add( new Object[] { clz, url, nm } );
+ }
+ }
+ return retval;
+ }
+
+// addTest(new Test(testName, inputFile, resultsFile,
+// N3JenaWriter.n3WriterPrettyPrinter)) ;
+//addTest(new Test(testName, inputFile, resultsFile,
+// N3JenaWriter.n3WriterPlain)) ;
+//addTest(new Test(testName, inputFile, resultsFile,
+// N3JenaWriter.n3WriterTriples)) ;
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterParameterizedTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPlainTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPlainTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPlainTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPlainTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,24 @@
+package com.hp.hpl.jena.n3;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.xenei.junit.contract.ContractImpl;
+import org.xenei.junit.contract.ContractSuite;
+
+import com.hp.hpl.jena.rdf.model.AbstractRDFWriterTest;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+
+
+public class N3JenaWriterPlainTest extends N3JenaWriterCommonTest {
+
+ public N3JenaWriterPlainTest() {
+ }
+
+ @Override
+ protected RDFWriter createWriter() {
+ return new N3JenaWriterPlain();
+ }
+
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterPlainTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,25 @@
+package com.hp.hpl.jena.n3;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.xenei.junit.contract.ContractImpl;
+import org.xenei.junit.contract.ContractSuite;
+
+import com.hp.hpl.jena.rdf.model.AbstractRDFWriterTest;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+
+
+public class N3JenaWriterTest extends N3JenaWriterCommonTest {
+
+ public N3JenaWriterTest() {
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ protected RDFWriter createWriter() {
+ return new N3JenaWriter();
+ }
+
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTriplesTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTriplesTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTriplesTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTriplesTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,30 @@
+package com.hp.hpl.jena.n3;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.xenei.junit.contract.ContractImpl;
+import org.xenei.junit.contract.ContractSuite;
+
+import com.hp.hpl.jena.rdf.model.AbstractRDFWriterTest;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+
+
+public class N3JenaWriterTriplesTest extends N3JenaWriterCommonTest {
+
+ public N3JenaWriterTriplesTest() {
+ }
+
+ @Override
+ protected RDFWriter createWriter() {
+ return new N3JenaWriterTriples();
+ }
+
+ @Override
+ protected void checkWriteResult( String s) {
+ assertTrue( s.contains("<eh:/a> <eh:/b2> <eh:/c>") );
+ assertTrue( s.contains("<eh:/a> <eh:/b> <eh:/c>") );;
+ }
+
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3JenaWriterTriplesTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3TurtleJenaWriterTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3TurtleJenaWriterTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3TurtleJenaWriterTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3TurtleJenaWriterTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,24 @@
+package com.hp.hpl.jena.n3;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.xenei.junit.contract.ContractImpl;
+import org.xenei.junit.contract.ContractSuite;
+
+import com.hp.hpl.jena.rdf.model.AbstractRDFWriterTest;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+
+
+public class N3TurtleJenaWriterTest extends N3JenaWriterCommonTest {
+
+ public N3TurtleJenaWriterTest() {
+ }
+
+ @Override
+ protected RDFWriter createWriter() {
+ return new N3TurtleJenaWriter();
+ }
+
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/n3/N3TurtleJenaWriterTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterTest.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterTest.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterTest.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,138 @@
+package com.hp.hpl.jena.rdf.model;
+
+import static org.junit.Assert.*;
+
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.testing_framework.ModelHelper;
+
+public abstract class AbstractRDFWriterTest {
+
+ private static Logger LOG = LoggerFactory
+ .getLogger(AbstractRDFWriterTest.class);
+
+ protected RDFWriter rdfWriter;
+
+ protected void setWriter( RDFWriter writer )
+ {
+ this.rdfWriter = writer;
+ }
+
+ public static final String DEFAULT_BASE = "http://example.com/";
+
+ public AbstractRDFWriterTest() {
+ }
+
+ @Before
+ public final void beforeRDFWriterTest()
+ {
+ this.rdfWriter = createWriter();
+ }
+
+ protected abstract RDFWriter createWriter();
+
+ protected abstract void checkWriteResult( String result );
+
+ protected abstract String getFormat();
+
+ protected abstract String getTestModelFacts();
+
+ private Model getTestModel()
+ {
+ return ModelHelper.memModel( getTestModelFacts() );
+ }
+
+ @Test
+ public void testWriteWriter()
+ {
+ StringWriter writer = new StringWriter();
+ rdfWriter.write( getTestModel(), writer, DEFAULT_BASE );
+ checkWriteResult( writer.getBuffer().toString() ) ;
+ }
+
+ @Test
+ public void testWriteOutputStream() {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ rdfWriter.write( getTestModel(), baos, DEFAULT_BASE );
+ checkWriteResult( new String(baos.toByteArray()) ) ;
+ }
+
+ @Test
+ public void testSetProperty()
+ {
+ Object o = rdfWriter.setProperty( "test1", "test1a");
+ assertNull( "Should not have returned a value", o );
+ o = rdfWriter.setProperty( "test1", "test1b");
+ assertNotNull( "Should have returned a value", o );
+ assertEquals( o, "test1a");
+
+ o = rdfWriter.setProperty( "test2", "test2a");
+ assertNull( "Should not have returned a value", o );
+ o = rdfWriter.setProperty( "test2", "test2b");
+ assertNotNull( "Should have returned a value", o );
+ assertEquals( o, "test2a");
+ // can not set null -- no documentation about what this should do
+ // but it throws an exception in some cases where the properties
+ // are map based.
+// o = rdfWriter.setProperty( "test2", null);
+// assertNotNull( "Should have returned a value", o );
+// assertEquals( o, "test2b");
+// o = rdfWriter.setProperty( "test2", "test2c");
+// assertNull( "Should not have returned a value", o );
+ }
+
+ @Test
+ public void testSetErrorHandler()
+ {
+ RDFErrorHandler e = new RDFErrorHandler(){
+
+ @Override
+ public void warning(Exception e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void error(Exception e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void fatalError(Exception e) {
+ // TODO Auto-generated method stub
+
+ }};
+
+
+ RDFErrorHandler o = rdfWriter.setErrorHandler( e );
+ RDFErrorHandler o2 = rdfWriter.setErrorHandler( o );
+ assertEquals( "Should have returned original error handler", e, o2 );
+ }
+
+ @Test
+ public void testRoundtrip() throws Exception
+ {
+ Model model = getTestModel();
+ StringWriter writer = new StringWriter();
+ rdfWriter.write( getTestModel(), writer, DEFAULT_BASE );
+
+ writer.close() ;
+
+ StringReader r = new StringReader(writer.toString()) ;
+ Model model2 = ModelFactory.createDefaultModel() ;
+ model2.read(r, DEFAULT_BASE, getFormat()) ;
+
+ assertTrue( "Models should be isomorphic", model.isIsomorphicWith(model2) );
+ }
+
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFWriterTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleItem.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleItem.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleItem.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleItem.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.testing_framework;
+
+/**
+ * The unit found in a line of a tuple.
+ * Can be a string (quoted, possibly with the datatype, or unquoted) or a URI.
+ */
+public class TupleItem
+{
+ public static final int URI = 0 ;
+ public static final int STRING = 1 ;
+ public static final int UNKNOWN = 2 ;
+ public static final int UNQUOTED = 3 ;
+ public static final int ANON = 4 ;
+
+ String rep ;
+ String datatype ;
+ String asFound ;
+ int itemType ;
+
+ TupleItem(String value, String valAsFound, int type, String dt)
+ {
+ rep = value ;
+ asFound = valAsFound ;
+ itemType = type ;
+ datatype = dt ;
+ }
+
+ public int getType() { return itemType ; }
+
+ public boolean isURI() { return itemType == URI ; }
+ public boolean isString() { return itemType == STRING ; }
+ public boolean isUnknown() { return itemType == UNKNOWN ; }
+ public boolean isUnquoted() { return itemType == UNQUOTED ; }
+ public boolean isAnon() { return itemType == ANON ; }
+
+ public String get() { return rep ; }
+ public String getDT() { return datatype ;
+ }
+ public String asQuotedString() { return asFound ; }
+ @Override
+ public String toString() { return rep ; }
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleItem.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleSet.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleSet.java?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleSet.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleSet.java Sun Dec 15 11:40:13 2013
@@ -0,0 +1,301 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hp.hpl.jena.testing_framework ;
+
+import java.io.* ;
+import java.util.* ;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class TupleSet implements Iterator<List<TupleItem>>
+{
+ BufferedReader in ;
+ public String line = null ;
+ public int lineNumber = 0 ;
+
+ static final char COMMENTCHAR = '#' ;
+ List<TupleItem> current = null ;
+ boolean finished = false ;
+
+ protected static Logger logger = LoggerFactory.getLogger( TupleSet.class );
+
+ /** Creates new TupleSet */
+ public TupleSet(Reader r)
+ {
+ if ( ! ( r instanceof BufferedReader ) )
+ in = new BufferedReader(r) ;
+ else
+ in = (BufferedReader)r;
+ }
+
+ @Override
+ public boolean hasNext()
+ {
+ if ( finished ) return false ;
+
+ if ( current == null )
+ current = tuple() ;
+ return current != null ;
+ }
+
+ @Override
+ public List<TupleItem> next()
+ {
+ if ( hasNext() )
+ {
+ List<TupleItem> x = current ;
+ current = null ;
+ return x ;
+ }
+ else
+ return null ;
+ }
+
+
+ @Override
+ public void remove()
+ {
+ throw new java.lang.UnsupportedOperationException("TupleSet.remove") ;
+ }
+
+ private List<TupleItem> tuple()
+ {
+
+ try {
+ lineNumber ++ ;
+ line = in.readLine() ;
+ } catch (IOException e) {}
+
+ if ( line == null )
+ {
+ finished = true ;
+ return null ;
+ }
+
+ //System.out.println("Line: "+line) ;
+ List<TupleItem> tuple = new ArrayList<TupleItem>() ;
+ int i = 0 ;
+ int j = 0 ;
+ boolean errorFound = false ;
+
+ tupleLoop:
+ for (;;)
+ {
+ // Move to beginning of next item.
+ i = skipwhitespace(line, j) ;
+
+ if ( i < 0 )
+ break ;
+
+ int iStart = -2 ; // Points to the beginning of the item as found
+ int jStart = -2 ; // Points to the item without quotes
+ int iFinish = -2 ; // Points after the end of the item as found
+ int jFinish = -2 ; // Points after the end of the item without quotes
+ int dtStart = -2 ; // Points to start of datatype (after < quote)
+ int dtFinish = -2 ; // Points to end of datatype
+ int type = TupleItem.UNKNOWN;
+
+ switch (line.charAt(i))
+ {
+ case COMMENTCHAR:
+ break tupleLoop ;
+ case '<':
+ type = TupleItem.URI ;
+ iStart = i ;
+ jStart = i+1 ;
+ int newPosn = parseURI(i, line) ;
+ if (newPosn < 0)
+ {
+ errorFound = true;
+ break tupleLoop;
+ }
+ j = newPosn ;
+
+ iFinish = j+1 ;
+ jFinish = j ;
+ break ;
+ case '"':
+ type = TupleItem.STRING ;
+ iStart = i ;
+ jStart = i+1 ;
+ boolean inEscape = false ;
+ for ( j = i+1 ; j < line.length() ; j++ )
+ {
+ char ch = line.charAt(j) ;
+ if ( inEscape )
+ {
+ // ToDo: escape
+ inEscape = false ;
+ continue ;
+ }
+ // Not an escape
+ if ( ch == '"' )
+ break ;
+
+ if ( ch == '\\' )
+ inEscape = true ;
+ if ( ch == '\n' || ch == '\r' )
+ {
+ errorFound = true ;
+ break tupleLoop;
+
+ }
+ }
+
+ // Malformed
+ if ( j == line.length() )
+ {
+ errorFound = true ;
+ break tupleLoop;
+ }
+
+ iFinish = j+1 ;
+ jFinish = j ;
+ // RDF literals may be followed by their type.
+
+ if ( j < line.length()-3
+ && line.charAt(j+1) == '^'
+ && line.charAt(j+2) == '^'
+ && line.charAt(j+3) == '<' )
+ {
+ dtFinish = parseURI(j+3, line) ;
+ dtStart = j+4 ;
+ if (dtFinish < 0)
+ {
+ errorFound = true;
+ break tupleLoop;
+ }
+ j = dtFinish+1 ;
+ //String dt = line.substring(dtStart, dtFinish) ;
+ //System.out.println("I see a datatype:"+dt) ;
+ }
+
+ break ;
+ case '_':
+ type = TupleItem.ANON ;
+ iStart = i ;
+ for ( j = i+1 ; j < line.length() ; j++ )
+ {
+ char ch = line.charAt(j) ;
+ if ( ch == ' ' || ch == '\t' || ch == '.' )
+ break ;
+ if ( ! Character.isLetterOrDigit(ch) && ! (ch == '_') && ! (ch == ':') )
+ {
+ errorFound = true ;
+ break tupleLoop ;
+ }
+ }
+ iFinish = j ;
+ jStart = iStart ;
+ jFinish = iFinish ;
+ break ;
+ case '.':
+ case '\n':
+ case '\r':
+ return tuple ;
+ default:
+ type = TupleItem.UNQUOTED ;
+ iStart = i ;
+ jStart = i ;
+ for ( j = i+1 ; j < line.length() ; j++ )
+ {
+ char ch = line.charAt(j) ;
+ if ( ch == ' ' || ch == '\t' || ch == '.' )
+ break ;
+
+ //if ( ! Character.isLetterOrDigit(line.charAt(i)) )
+ //{
+ // errorFound = true ;
+ // break tupleLoop;
+ //}
+ }
+ // Malformed
+ if ( j == line.length()+1 )
+ {
+ errorFound = true ;
+ break tupleLoop;
+ }
+ iFinish = j ;
+ jFinish = j ;
+ break ;
+ }
+ String item = line.substring(jStart, jFinish) ;
+ String literal = line.substring(iStart, iFinish) ;
+ String dt = null ;
+ if ( dtStart > 0 )
+ dt = line.substring(dtStart, dtFinish) ;
+
+ tuple.add(new TupleItem(item, literal, type, dt)) ;
+ j++ ;
+ // End of item.
+ }
+ //End of this line.
+ if ( errorFound )
+ {
+ logger.error( "Error in TupleSet.tuple: " + line );
+
+ String s = "" ;
+ int k = 0 ;
+ for ( ; k < i ; k++ ) s = s+" " ;
+ s = s+"^" ;
+ for ( ; k < j-1 ; k++ ) s=s+" " ;
+ s = s+"^" ;
+ logger.error( s ) ;
+ return null ;
+ }
+
+ if ( tuple.size() == 0 )
+ {
+ // Nothing found : loop by tail recursion
+ return tuple() ;
+ }
+ return tuple ;
+ }
+
+ private int skipwhitespace(String s, int i)
+ {
+ for ( ; i < s.length() ; i++ )
+ {
+ char ch = s.charAt(i) ;
+ // Horizonal whitespace
+ if ( ch != ' ' && ch != '\t' )
+ return i ;
+ }
+ return -1 ;
+ }
+
+ private int parseURI(int i, String line)
+ {
+ int j;
+ for (j = i + 1; j < line.length(); j++)
+ {
+ char ch = line.charAt(j);
+ if (ch == '>')
+ break;
+ if (ch == '\n' || ch == '\r')
+ return -1;
+ }
+ // Malformed
+ if (j == line.length())
+ return -2;
+ return j ;
+ }
+}
Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/testing_framework/TupleSet.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/README_LICENSE
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/README_LICENSE?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/README_LICENSE (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/README_LICENSE Sun Dec 15 11:40:13 2013
@@ -0,0 +1,16 @@
+The following statement applied to all files in this directory unless otherwise noted:
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/a1.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/a1.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/a1.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/a1.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,38 @@
+# Test the cwm builtins
+
+#@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+#@prefix s: <http://www.w3.org/2000/01/rdf-schema#> .
+#@prefix daml: <http://www.daml.org/2000/10/daml-ont#> .
+#@prefix dpo: <http://www.daml.org/2001/03/daml+oil#> .
+#@prefix ex: <http://www.daml.org/2000/10/daml-ex#> .
+#@prefix log: <http://www.w3.org/2000/10/swap/log#> .
+
+@prefix : <foo.n3#>. # Local stuff
+@prefix foo: <foo.n3#>. # Local stuff
+
+# Usage: cwm a1.n3 ; cwm a1.n3 -flat
+#
+# Output should conclude all test* a :success and no failures.
+#
+
+""" The idea is that each _:xxx style qname should be taken as an implicitly
+declared anonymous variable.""" :isAbout <>.
+
+:joe :livesIn _:h.
+_:h :in :texas.
+
+:joe :address _:a.
+ _:a :street "Accacia Avenue".
+ _:a :number "17".
+ _:a :town "anytown USA".
+
+_:p a :phone.
+_:p :areacode "555".
+_:p :otherdigits "555-1212".
+_:p :owner :joe.
+_:p :location _:a.
+
+
+
+
+#ends
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/contexts.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/contexts.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/contexts.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/contexts.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,18 @@
+# Test data in notation3 http://www.w3.org/DesignIssues/Notation3.html
+#
+@prefix u: <http://www.example.org/utilities#> .
+@prefix : <#> .
+
+:assumption = { :fred u:knows :john .
+ :john u:knows :mary .} .
+
+:conclusion = { :fred u:knows :mary . } .
+
+# The empty context is trivially true.
+# Check that we can input it and output it!
+
+:trivialTruth = { }.
+
+# ENDS
+
+
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lists-simple.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lists-simple.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lists-simple.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lists-simple.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,60 @@
+# Test list syntax
+#
+# With no {} so it can be translated in DAML easily
+#
+
+@prefix t: <test#> .
+@prefix : <test#> .
+@prefix log: <http://www.w3.org/2000/10/swap/log#> .
+
+# This is cheating a bit - in case output of first and rest is needed.
+
+@prefix dpo: <http://www.daml.org/2001/03/daml+oil#>.
+
+# Other interesting unimplemented syntaxes ...
+#[ log:first :a;
+# ont:rest thatWhich has ont:first :b;
+# ont:rest thatWhich has ont:first :c;
+# ont:rest thatWhich has ont:first :d;
+# ont:rest thatWhich has ont:first :e ];
+#
+# etc
+#
+#( :a :b :c :d :e )
+#_________________________________________
+# cwm output from one version:
+#:threeItems = ( :b :c :d ) .
+#
+#:nested =( :first :second ( :left3 :right3 ) :fourth ) .
+#
+#:emptyList = ( ) .
+#
+#:listOf2Empties = (()()) .
+#
+#:twoAnons = ([a :mother][a :father]).
+#
+
+# :a_threebrackets = ( ( ( :fff ) ) ) .
+
+[ :anonVerb12 :anonObj12 ] :verb12 :obj12.
+
+:threeItems = ( :b :c :d ) .
+
+:nested =( :first :second ( :left3 :right3 ) :fourth ) .
+
+:emptyList = ( ) .
+
+:listOf2Empties = (()()) .
+
+:twoAnons = ([a :mother][a :father]).
+
+() :verb0 :object0.
+( "subj1" ) :verb1 :object1.
+( "subj2a" "subj2b" ) :verb2 :object2.
+
+# Supressed: - see lists.n3 for version with this in
+# :twoFormulae = ({:a a :mother} {:b a :father}).
+
+
+#ENDS
+
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lstring.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lstring.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lstring.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/lstring.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,26 @@
+# Just see whether this can be input and re-output
+#
+# usage: cwm lstring.n3 | cwm
+#
+@prefix : <#>.
+
+
+ """ @prefix : <http://www.w3.org/2000/10/swap/test/crypto/acc.n3#> .
+ @prefix crypto: <http://www.w3.org/2000/10/swap/crypto#> .
+ @prefix log: <http://www.w3.org/2000/10/swap/log#> .
+ @prefix os: <http://www.w3.org/2000/10/swap/os#> .
+ @prefix string: <http://www.w3.org/2000/10/swap/string#> .
+
+ \"\"\"
+MzE5MDcKCjM2ODkyMzAyMDE1MzgwMjY2NTU5MzgzNjMyMDQyOTM1Mjc4MDk3MzAwNzE4ODMzOTY3
+NTY3NTk1Njg5MjE2Mjk0NzkyMzUyNTQ3OTQzMjI4MjM2MDEwNjQwMTAyMjcxODk0OTY2MzgzNjQ1
+NDQyODQ5Njg3MzUzOTM2NzAyMTI5NDgxNDg4MzIxMzUyODEyMTc1NjIxNjE0NjE5Mzk2MDY4MjE2
+Nzk1MzY0NjAxNjE0MzM5NDYzOTIyMDMwMDE4NTEyODMyMTg0NDIyMzI3MzcxNzE5MjcxMzY0ODY1
+MjEzMzU1OTc4Nzk0OTIyMzQ4NDU5NTUxMTQ2MTcyNjE0MTk3ODI2NTg0NDA2Mzg2OTQwMTcwNTE4
+OTY0MDQzNzMxNzEyODc1OTk3NjAyNjE4ODUzNDQ1Mw=3D=3D
+\"\"\" a :RequestKey;
+ :authorityName <Tiina>;
+ :junk "327462sjsdfjsakdhfkjsafd32164321" .
+""" a :test_string.
+
+#ends
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-results
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-results?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-results (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-results Sun Dec 15 11:40:13 2013
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+#DIR="Tests/"
+DIR=""
+
+if [ $# -eq 0 ]
+then
+ FILES="${DIR}rdf-test-*.n3"
+else
+ FILES="$@"
+ fi
+
+for x in $FILES
+do
+ #echo $x
+ B="$(basename $x .n3)"
+ # Test 08 is the literals test - it is more liberal than cwm
+ # Test 19/20 are the named lists test - it is more liberal than cwm
+ case "$B" in
+ "rdf-test-08" | "rdf-test-19" | "rdf-test-20" )
+ echo " # Skipping $x"
+ continue ;;
+ esac
+
+ N="${B#rdf-test-}"
+ R="${DIR}rdf-result-$N.nt"
+
+ if [ -s "$R" ]
+ then
+ echo " # $R exists"
+ continue
+ fi
+
+ echo "( # $x => $R"
+ echo " echo \"# cwm: $x => $R\""
+ echo " cwm --ntriples $x | sed -e 's!file:/[^>]*/!file:///base/!g'"
+ echo ") 2>/dev/null > $R"
+ echo
+ done
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-tests
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-tests?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-tests (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/make-tests Sun Dec 15 11:40:13 2013
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+#DIR="Tests/"
+DIR=""
+
+for x in ${DIR/}rdf-test-*.n3
+do
+ B="$(basename $x .n3)"
+ N="${B#rdf-test-}"
+ R="${DIR}rdf-result-$N.nt"
+ echo "<$x> <$R> ."
+ done
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-parser-tests
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-parser-tests?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-parser-tests (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-parser-tests Sun Dec 15 11:40:13 2013
@@ -0,0 +1,19 @@
+## From the W3C SWAP test suite and other places
+## Parse - no production of RDF
+## Some of the W3C tests are about the logic after parsing
+## so these test are not always actually testing anything new in jena.n3
+
+<a1.n3> <> .
+<contexts.n3> <> .
+<lists-simple.n3> <> .
+<lstring.n3> <> .
+<path1.n3> <> .
+<path2.n3> <> .
+<quantifiers.n3> <> .
+<qvars1.n3> <> .
+<qvars2.n3> <> .
+<resolves-rdf.n3> <> .
+<sep-term.n3> <> .
+<sib.n3> <> .
+<strquot.n3> <> .
+<t10.n3> <> .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-reader-tests
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-reader-tests?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-reader-tests (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-reader-tests Sun Dec 15 11:40:13 2013
@@ -0,0 +1,38 @@
+# Tests for the N3 parser/Jena reader
+
+<rdf-test-01.n3> <rdf-result-01.nt> .
+<rdf-test-02.n3> <rdf-result-02.nt> .
+<rdf-test-03.n3> <rdf-result-03.nt> .
+<rdf-test-04.n3> <rdf-result-04.nt> .
+<rdf-test-05.n3> <rdf-result-05.nt> .
+<rdf-test-06.n3> <rdf-result-06.nt> .
+<rdf-test-07.n3> <rdf-result-07.nt> .
+<rdf-test-08.n3> <rdf-result-08.nt> .
+<rdf-test-09.n3> <rdf-result-09.nt> .
+<rdf-test-10.n3> <rdf-result-10.nt> .
+
+<rdf-test-11.n3> <rdf-result-11.nt> .
+<rdf-test-12.n3> <rdf-result-12.nt> .
+<rdf-test-13.n3> <rdf-result-13.nt> .
+<rdf-test-14.n3> <rdf-result-14.nt> .
+<rdf-test-15.n3> <rdf-result-15.nt> .
+<rdf-test-16.n3> <rdf-result-16.nt> .
+<rdf-test-17.n3> <rdf-result-17.nt> .
+<rdf-test-18.n3> <rdf-result-18.nt> .
+<rdf-test-19.n3> <rdf-result-19.nt> .
+<rdf-test-20.n3> <rdf-result-20.nt> .
+
+<rdf-test-21.n3> <rdf-result-21.nt> .
+<rdf-test-22.n3> <rdf-result-22.nt> .
+<rdf-test-23.n3> <rdf-result-23.nt> .
+<rdf-test-24.n3> <rdf-result-24.nt> .
+<rdf-test-25.n3> <rdf-result-25.nt> .
+
+<rdf-test-26.n3> <rdf-result-26.nt> .
+
+<rdf-test-27.n3> <rdf-result-27.nt> .
+<rdf-test-28.n3> <rdf-result-28.nt> .
+
+## ?? Need a test with \u escapes in a qname.
+## Currently does not work. Parser doesn't check for \u escapes in URIs.
+
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-01.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-01.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-01.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-01.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,3 @@
+@prefix a: <http://foo/a#> .
+@prefix : <> .
+# Empty model.
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-02.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-02.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-02.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-02.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,13 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "String tests".
+
+a:b a:p01 "123".
+a:b a:p02 "123-\"-\'-quote".
+a:b a:p03 '123-\"-\'-quote'.
+
+a:b a:p10 """Triple double-quoted string with single quotes (" ') and newline
+in it""".
+a:b a:p11 '''Triple single-quoted string with single quotes (" ') and newline
+in it'''.
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-03.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-03.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-03.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-03.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,7 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "Compound statements, same resource" .
+
+a:b a:p1 "123" ; a:p1 "456" .
+a:b a:p2 a:v1 ; a:p3 a:v2 .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-04.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-04.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-04.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-04.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,8 @@
+@prefix a: <http://foo/a#> .
+@prefix b: <http://foo/b#> .
+@prefix : <#> .
+
+:test :comment "Multiple values" .
+
+a:b a:p1 "123" ; a:p1 "456" .
+b:b a:p2 a:v1 ; a:p3 a:v2 .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-05.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-05.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-05.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-05.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,6 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "BNode" .
+
+[ a:p a:v ] .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-06.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-06.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-06.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-06.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,6 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "BNode as single object" .
+
+a:b a:oneRef [ a:pp "1" ; a:qq "2" ].
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-07.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-07.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-07.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-07.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,9 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "BNode but shared" .
+
+a:b1 a:twoRef _:a .
+a:b2 a:twoRef _:a .
+
+_:a :- [ a:pp "1" ; a:qq "2" ].
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-08.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-08.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-08.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-08.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,9 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "Not a bnode" .
+
+a:b1 a:twoRef <http://host/> .
+a:b2 a:twoRef <http://host/> .
+
+<http://host/> :- [ a:pp "1" ; a:qq "2" ].
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-09.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-09.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-09.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-09.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,8 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "Not a bnode. Ref once." .
+
+a:b1 a:oneRef <http://host/> .
+
+<http://host/> :- [ a:pp "1" ; a:qq "2" ].
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-10.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-10.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-10.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-10.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,10 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "Syntactic keywords".
+
+_:a => a:something .
+
+a:b a <http://www.w3.org/2000/01/rdf-schema#resource> .
+
+a:this = a:that .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-11.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-11.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-11.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-11.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,8 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "RDF collections as lists: unattached lists" .
+
+("1" "2" "3").
+# This is not a statement.
+().
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-12.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-12.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-12.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-12.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,9 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "RDF collections as lists".
+
+a:list3 a:p ("1" "2" "3").
+
+a:list0 a:p ().
+
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-13.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-13.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-13.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-13.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,8 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "RDF collections as lists" .
+
+a:list0 a:p ().
+
+_:list0 a:p ().
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-14.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-14.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-14.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-14.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,6 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "RDF collections as lists: nil list with property".
+
+() a:prop "nilProp" .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-15.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-15.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-15.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-15.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,24 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "RDF collections as lists : but with attached property so not well-formed lists" .
+
+# This is the list ("1" "2" "3" "4")
+
+_:a1 rdf:first "1" .
+_:a1 rdf:rest _:a2 .
+
+_:a2 rdf:first "2" .
+_:a2 rdf:rest _:a3 .
+
+_:a3 rdf:first "3" .
+_:a3 rdf:rest _:a4 .
+
+_:a4 rdf:first "4" .
+_:a4 rdf:rest rdf:nil .
+
+# This adds a property to the middle element.
+# Tail ("3" "4") should be pretty printed.
+
+_:a2 a:prop "value" .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-16.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-16.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-16.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-16.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,10 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "RDF collections as lists : with compound items".
+a:a a:p ( [ a:p2 "v1" ]
+ <http://resource1>
+ <http://resource2>
+ ("inner list") ) .
+
+<http://resource1> a:p "value" .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-17.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-17.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-17.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-17.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,20 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+:test :comment "Complex DAML List: duplicate properties".
+
+# This is the list ("1" "2" "3").
+
+_:a1 rdf:first "1" .
+_:a1 rdf:rest _:a2 .
+
+_:a2 rdf:first "2" .
+_:a2 rdf:rest _:a3 .
+
+_:a3 rdf:first "3" .
+_:a3 rdf:rest () .
+
+# This adds a property to the middle element.
+# Could pretty print the tail ("3")
+
+_:a2 rdf:first "TWO" .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-18.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-18.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-18.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-18.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,6 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "Nested bNodes" .
+
+a:a a:p [ a:p2 [ a:p3 "v1" , "v2" ; a:p4 "v3" ] ; a:p5 "v4" ] .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-19.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-19.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-19.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-19.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,10 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "Shared RDF collections as lists" .
+
+:a :p _:list .
+:b :p _:list .
+
+_:list :- ("1" "2") .
+
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-20.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-20.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-20.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-20.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,13 @@
+@prefix a: <http://foo/a#> .
+@prefix : <#> .
+
+:test :comment "Shared RDF lists tails" .
+
+:a :p :list .
+:b :p :list .
+
+:list :- ("1" "2") .
+
+("a" "b") .
+
+:list2 :- ("3" "4") .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-21.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-21.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-21.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-21.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,7 @@
+# Test names with .'s in potential qnames.
+
+@prefix foo: <http://example.org/foo#> .
+@prefix : <#> .
+
+<http://example.org/foo#local.name>
+ <http://example.org/foo#p.local.name> :localname .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-22.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-22.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-22.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-22.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,10 @@
+# Test datatypes.
+
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix x: <http://host/ns#> .
+@prefix : <#> .
+
+[ :prop1 "123" ;
+ :prop1 "123"^^xsd:string ;
+ :prop1 "123"^^xsd:integer ;
+] .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-23.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-23.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-23.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-23.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,8 @@
+# Test lang tags
+
+@prefix : <#> .
+
+[ :prop "chat"@fr ;
+ :prop "chat"@en ;
+ :prop "chat" ;
+] .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-24.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-24.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-24.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-24.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,8 @@
+# XML literals
+
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix x: <http://host/ns#> .
+
+[ x:p1 "<foo>bar</foo>"^^rdf:XMLLiteral ;
+ x:p2 "<foo>bar</foo>" ;
+] .
Added: jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-25.n3
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-25.n3?rev=1551016&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-25.n3 (added)
+++ jena/Experimental/new-test/src/test/resources/com/hp/hpl/jena/n3/n3-writer-test-25.n3 Sun Dec 15 11:40:13 2013
@@ -0,0 +1,11 @@
+# Datatypes and language tags
+
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix x: <http://host/ns#> .
+
+[ x:p1 "<foo>bar</foo>"@en-us^^rdf:XMLLiteral ;
+ # Two below are same statement
+ x:p2 "<foo>bar</foo>"^^rdf:XMLLiteral@en-us ;
+ x:p2 "<foo>bar</foo>"@en-us^^rdf:XMLLiteral ;
+ x:p3 "text"@en ;
+] .