You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by aj...@apache.org on 2018/01/06 15:17:55 UTC

[31/44] jena git commit: Test for TestIntersectionDatasetCollector now passes

Test for TestIntersectionDatasetCollector now passes


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/bd9a4528
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/bd9a4528
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/bd9a4528

Branch: refs/heads/master
Commit: bd9a4528847f8f3bfa636a8df22f7f8a223ea9e4
Parents: 2ce74c0
Author: ajs6f <aj...@apache.org>
Authored: Sun Dec 31 14:19:06 2017 -0500
Committer: ajs6f <aj...@apache.org>
Committed: Fri Jan 5 09:32:55 2018 -0500

----------------------------------------------------------------------
 .../jena/query/util/DatasetCollector.java       | 21 ++++++++--------
 .../jena/query/util/TestDatasetCollector.java   |  1 -
 .../util/TestIntersectionDatasetCollector.java  | 26 +++++++++++++++++---
 3 files changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/bd9a4528/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java b/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
index 092b8f8..37fe72b 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
@@ -18,13 +18,10 @@
 
 package org.apache.jena.query.util;
 
-import static org.apache.jena.atlas.iterator.Iter.filter;
 import static org.apache.jena.system.Txn.executeRead;
 import static org.apache.jena.system.Txn.executeWrite;
 
-import java.util.function.BiConsumer;
-import java.util.function.BinaryOperator;
-import java.util.function.Supplier;
+import java.util.function.*;
 
 import org.apache.jena.atlas.lib.IdentityFinishCollector.UnorderedIdentityFinishCollector;
 import org.apache.jena.query.Dataset;
@@ -87,8 +84,9 @@ public abstract class DatasetCollector implements UnorderedIdentityFinishCollect
     public static class IntersectionDatasetCollector extends DatasetCollector {
 
         /**
-         * The first element is treated differently because {@link DatasetCollector#supplier()} does
-         * not provide an identity element for intersection.
+         * The first element is treated differently because
+         * {@link DatasetCollector#supplier()} does not provide an identity element for
+         * intersection.
          */
         boolean afterFirstElement = false;
 
@@ -102,13 +100,16 @@ public abstract class DatasetCollector implements UnorderedIdentityFinishCollect
             return (d1, d2) -> {
                 if (afterFirstElement) {
                     d1.setDefaultModel(d1.getDefaultModel().intersection(d2.getDefaultModel()));
-                    filter(d1.listNames(), d2::containsNamedModel).forEachRemaining(name -> {
-                        Model intersection = d1.getNamedModel(name).intersection(d2.getNamedModel(name));
-                        d1.replaceNamedModel(name, intersection);
+                    d1.listNames().forEachRemaining(name -> {
+                        if (d2.containsNamedModel(name)) {
+                            Model intersection = d1.getNamedModel(name).intersection(d2.getNamedModel(name));
+                            d1.replaceNamedModel(name, intersection);
+                        } else d1.removeNamedModel(name);
                     });
                 } else {
+                    // first element of the stream
                     d1.setDefaultModel(d2.getDefaultModel());
-                    d2.listNames().forEachRemaining(name -> d1.addNamedModel(name, d2.getNamedModel(name)));
+                    d2.listNames().forEachRemaining(name -> d1.replaceNamedModel(name, d2.getNamedModel(name)));
                     afterFirstElement = true;
                 }
             };

http://git-wip-us.apache.org/repos/asf/jena/blob/bd9a4528/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java b/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java
index 539974c..b58cd82 100644
--- a/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java
+++ b/jena-arq/src/test/java/org/apache/jena/query/util/TestDatasetCollector.java
@@ -5,7 +5,6 @@ import static org.apache.jena.sparql.sse.SSE.parseGraph;
 
 import java.util.stream.Stream;
 
-import org.apache.jena.ext.com.google.common.collect.Maps;
 import org.apache.jena.graph.*;
 import org.apache.jena.query.Dataset;
 import org.apache.jena.query.DatasetFactory;

http://git-wip-us.apache.org/repos/asf/jena/blob/bd9a4528/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java b/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java
index 8ee0d1f..a0dcfa0 100644
--- a/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java
+++ b/jena-arq/src/test/java/org/apache/jena/query/util/TestIntersectionDatasetCollector.java
@@ -18,10 +18,12 @@
 
 package org.apache.jena.query.util;
 
+import static org.apache.jena.graph.NodeFactory.createBlankNode;
 import static org.apache.jena.rdf.model.ModelFactory.createModelForGraph;
 import static org.apache.jena.sparql.sse.SSE.parseGraph;
 
-import org.apache.jena.graph.Graph;
+import java.util.stream.Stream;
+
 import org.apache.jena.query.Dataset;
 import org.apache.jena.query.DatasetFactory;
 import org.apache.jena.rdf.model.Model;
@@ -36,9 +38,25 @@ public class TestIntersectionDatasetCollector extends TestDatasetCollector {
 
     @Test
     public void testIntersection() {
-        Graph graph = parseGraph("(graph (triple <s1> <p1> <o1> ))");
-        Model model = createModelForGraph(graph);
-        Dataset dataset = DatasetFactory.create(model);
+        final Model m1 = createModelForGraph(parseGraph("(graph (triple <s1> <p1> <o1> ))"));
+        final Dataset ds1 = DatasetFactory.create(m1);
+        final String graphName1 = createBlankNode().toString();
+        ds1.addNamedModel(graphName1, m1);
+        final Model m2 = createModelForGraph(parseGraph("(graph (triple <s2> <p2> <o2> ))"));
+        final Dataset ds2 = DatasetFactory.create(m2);
+        final String graphName2 = createBlankNode().toString();
+        ds2.addNamedModel(graphName2, m2);
+        final Model m3 = createModelForGraph(parseGraph("(graph (triple <s3> <p3> <o3> ))"));
+        final String graphName3 = createBlankNode().toString();
+        ds1.addNamedModel(graphName3, m3);
+        ds2.addNamedModel(graphName3, m3);
+        
+        Dataset ds = Stream.<Dataset>builder().add(ds1).add(ds2).build().collect(testInstance());
+        
+        assertTrue(ds.getDefaultModel().isEmpty());
+        assertTrue(ds.getNamedModel(graphName1).isEmpty());
+        assertTrue(ds.getNamedModel(graphName2).isEmpty());
+        assertTrue(m3.isIsomorphicWith(ds.getNamedModel(graphName3)));
     }
 
 }