You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/11/30 11:28:35 UTC
[2/2] jena git commit: JENA-818 : More tests for
LiteralLabel.sameValueAs
JENA-818 : More tests for LiteralLabel.sameValueAs
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/bc2d4458
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/bc2d4458
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/bc2d4458
Branch: refs/heads/master
Commit: bc2d4458fc537afc4cabd1a59975e92e092e90e6
Parents: a89706e
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Nov 30 10:28:21 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Nov 30 10:28:21 2014 +0000
----------------------------------------------------------------------
.../jena/datatypes/xsd/impl/RDFLangString.java | 4 +-
.../jena/datatypes/xsd/impl/XMLLiteralType.java | 4 +-
.../graph/test/TestLiteralLabelSameValueAs.java | 99 ++++++++++++++++++++
.../hpl/jena/graph/test/TestLiteralLabels.java | 1 +
.../com/hp/hpl/jena/graph/test/TestPackage.java | 1 +
.../hpl/jena/graph/test/TestTypedLiterals.java | 1 +
6 files changed, 106 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/bc2d4458/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/RDFLangString.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/RDFLangString.java b/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/RDFLangString.java
index 08cc197..5bd6973 100644
--- a/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/RDFLangString.java
+++ b/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/RDFLangString.java
@@ -21,7 +21,6 @@ package com.hp.hpl.jena.datatypes.xsd.impl;
import com.hp.hpl.jena.datatypes.BaseDatatype ;
import com.hp.hpl.jena.datatypes.RDFDatatype ;
import com.hp.hpl.jena.graph.impl.LiteralLabel ;
-import com.hp.hpl.jena.vocabulary.RDF ;
/** rdf:langString.
* This covers the unusual case of "foo"^^"rdf:langString"
@@ -31,7 +30,8 @@ import com.hp.hpl.jena.vocabulary.RDF ;
public class RDFLangString extends BaseDatatype implements RDFDatatype {
/** Singleton instance */
- public static final RDFDatatype rdfLangString = new RDFLangString(RDF.getURI() + "langString");
+ // Include the string for the RDF namespace, not use RDF.getURI(), to avoid an initializer circularity
+ public static final RDFDatatype rdfLangString = new RDFLangString("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString");
/**
* Private constructor.
http://git-wip-us.apache.org/repos/asf/jena/blob/bc2d4458/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/XMLLiteralType.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/XMLLiteralType.java b/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/XMLLiteralType.java
index 26f3c7db..2116682 100644
--- a/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/XMLLiteralType.java
+++ b/jena-core/src/main/java/com/hp/hpl/jena/datatypes/xsd/impl/XMLLiteralType.java
@@ -33,7 +33,6 @@ import com.hp.hpl.jena.rdfxml.xmlinput.ARP ;
import com.hp.hpl.jena.rdfxml.xmlinput.AResource ;
import com.hp.hpl.jena.rdfxml.xmlinput.StatementHandler ;
import com.hp.hpl.jena.shared.BrokenException ;
-import com.hp.hpl.jena.vocabulary.RDF ;
/**
* Builtin data type to represent XMLLiteral (i.e. items created
@@ -41,7 +40,8 @@ import com.hp.hpl.jena.vocabulary.RDF ;
*/
public class XMLLiteralType extends BaseDatatype implements RDFDatatype {
/** Singleton instance */
- public static final RDFDatatype theXMLLiteralType = new XMLLiteralType(RDF.getURI() + "XMLLiteral");
+ // Include the string for the RDF namespace, not use RDF.getURI(), to avoid an initializer circularity
+ public static final RDFDatatype theXMLLiteralType = new XMLLiteralType("http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral");
/**
* Private constructor.
http://git-wip-us.apache.org/repos/asf/jena/blob/bc2d4458/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabelSameValueAs.java
----------------------------------------------------------------------
diff --git a/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabelSameValueAs.java b/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabelSameValueAs.java
new file mode 100644
index 0000000..63d6709
--- /dev/null
+++ b/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabelSameValueAs.java
@@ -0,0 +1,99 @@
+/*
+ * 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.graph.test;
+
+import static org.junit.Assert.* ;
+import junit.framework.JUnit4TestAdapter ;
+import org.junit.Test ;
+
+import com.hp.hpl.jena.datatypes.RDFDatatype ;
+import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
+import com.hp.hpl.jena.graph.NodeFactory ;
+import com.hp.hpl.jena.graph.impl.LiteralLabel ;
+import com.hp.hpl.jena.graph.impl.LiteralLabelFactory ;
+
+// See also TestTypedLiterals
+/** Tests for LiteralLabel.sameValueAs
+ * These tests shoudl work for RDF 1.0 and RDF 1.1
+ */
+public class TestLiteralLabelSameValueAs
+{
+ public TestLiteralLabelSameValueAs() {}
+
+ public static junit.framework.Test suite() {
+ return new JUnit4TestAdapter(TestLiteralLabelSameValueAs.class) ;
+ }
+
+ private static void testSameValueAs(LiteralLabel lit1, LiteralLabel lit2, boolean sameValue) {
+ assertEquals("lit1 sameValueAs lit2", sameValue, lit1.sameValueAs(lit2)) ;
+ assertEquals("lit2 sameValueAs lit1", sameValue, lit2.sameValueAs(lit1)) ;
+ if ( ! sameValue ) {
+ // ! SameValue => ! equals
+ assertFalse(lit1.equals(lit2)) ;
+ assertFalse(lit2.equals(lit1)) ;
+ }
+ }
+
+ private static LiteralLabel gen(String lex, RDFDatatype dt) {
+ return LiteralLabelFactory.create(lex, dt) ;
+ }
+
+ private static LiteralLabel gen(String lex, String lang) {
+ return LiteralLabelFactory.create(lex, lang) ;
+ }
+
+ private static LiteralLabel gen(String lex) {
+ return LiteralLabelFactory.create(lex) ;
+ }
+
+ static RDFDatatype dtUnknown = NodeFactory.getType("http://example/unknown") ;
+
+ // Strings.
+ @Test public void literalLabel_string_01() { testSameValueAs(gen("abc"), gen("abc"), true) ; }
+ @Test public void literalLabel_string_02() { testSameValueAs(gen("abc"), gen("abcd"), false) ; }
+ @Test public void literalLabel_string_03() { testSameValueAs(gen("abc"), gen("abc", XSDDatatype.XSDstring), true) ; }
+
+ // Lang
+ @Test public void literalLabel_lang_01() { testSameValueAs(gen("abc", "en"), gen("abc", "en-uk"), false) ; }
+ @Test public void literalLabel_lang_02() { testSameValueAs(gen("abc", "en"), gen("abc", "EN"), true) ; }
+ @Test public void literalLabel_lang_03() { testSameValueAs(gen("abc", "en"), gen("abc", "en-uk"), false) ; }
+
+ // Decimal derived types.
+ @Test public void literalLabel_numeric_01() { testSameValueAs(gen("01", XSDDatatype.XSDinteger), gen("+1", XSDDatatype.XSDinteger), true) ; }
+ @Test public void literalLabel_numeric_02() { testSameValueAs(gen("01", XSDDatatype.XSDinteger), gen("+1", XSDDatatype.XSDint), true) ; }
+ @Test public void literalLabel_numeric_03() { testSameValueAs(gen("-01", XSDDatatype.XSDinteger), gen("-1", XSDDatatype.XSDdecimal), true) ; }
+ @Test public void literalLabel_numeric_04() { testSameValueAs(gen("-01", XSDDatatype.XSDinteger), gen("-1.0", XSDDatatype.XSDdecimal), true) ; }
+
+ @Test public void literalLabel_numeric_05() { testSameValueAs(gen("+1", XSDDatatype.XSDdouble), gen("1e0", XSDDatatype.XSDdouble), true) ; }
+ @Test public void literalLabel_numeric_06() { testSameValueAs(gen("-10e-1", XSDDatatype.XSDfloat), gen("-0.1e1", XSDDatatype.XSDfloat), true) ; }
+
+ // Not across double/integer
+ @Test public void literalLabel_numeric_10() { testSameValueAs(gen("1", XSDDatatype.XSDinteger), gen("1e0", XSDDatatype.XSDdouble), false) ; }
+
+ // Unknown
+ @Test public void literalLabel_unknown_01() { testSameValueAs(gen("abc", dtUnknown), gen("abc", dtUnknown), true) ; }
+ @Test public void literalLabel_unknown_02() { testSameValueAs(gen("abc", dtUnknown), gen("xyz", dtUnknown), false) ; }
+ @Test public void literalLabel_unknown_03() { testSameValueAs(gen("1", XSDDatatype.XSDinteger), gen("1", dtUnknown), false) ; }
+
+ // Bad lexical forms.
+ @Test public void literalLabel_bad_01() { testSameValueAs(gen("abc",XSDDatatype.XSDinteger), gen("abc"), false) ; }
+ @Test public void literalLabel_bad_03() { testSameValueAs(gen("abc", XSDDatatype.XSDinteger), gen("abc", dtUnknown), false) ; }
+
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/bc2d4458/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabels.java
----------------------------------------------------------------------
diff --git a/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabels.java b/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabels.java
index 7de1a82..ebd284c 100644
--- a/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabels.java
+++ b/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestLiteralLabels.java
@@ -26,6 +26,7 @@ import com.hp.hpl.jena.datatypes.RDFDatatype ;
import com.hp.hpl.jena.graph.impl.LiteralLabel ;
import com.hp.hpl.jena.graph.impl.LiteralLabelFactory ;
+// See also TestLiteralLabelSameValueAs, TestTypedLiterals
public class TestLiteralLabels extends GraphTestBase
{
public TestLiteralLabels(String name)
http://git-wip-us.apache.org/repos/asf/jena/blob/bc2d4458/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestPackage.java
----------------------------------------------------------------------
diff --git a/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestPackage.java b/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestPackage.java
index d42b6f9..05edbea 100644
--- a/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestPackage.java
+++ b/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestPackage.java
@@ -35,6 +35,7 @@ public class TestPackage extends TestSuite {
super("graph");
addTest( TestFindLiterals.suite() );
addTest( TestLiteralLabels.suite() );
+ addTest( TestLiteralLabelSameValueAs.suite() );
addTest( TestNode.suite() );
addTest( TestTriple.suite() );
addTest( TestTripleField.suite() );
http://git-wip-us.apache.org/repos/asf/jena/blob/bc2d4458/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestTypedLiterals.java
----------------------------------------------------------------------
diff --git a/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestTypedLiterals.java b/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestTypedLiterals.java
index 664241e..127c84a 100644
--- a/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestTypedLiterals.java
+++ b/jena-core/src/test/java/com/hp/hpl/jena/graph/test/TestTypedLiterals.java
@@ -50,6 +50,7 @@ import com.hp.hpl.jena.vocabulary.XSD ;
/**
* Unit test for the typed literal machinery - including RDFDatatype,
* TypeMapper and LiteralLabel.
+ * See also TestLiteralLabelSameValueAs
*/
public class TestTypedLiterals extends TestCase {