You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rya.apache.org by pu...@apache.org on 2015/12/04 17:46:24 UTC
[12/49] incubator-rya git commit: RYA-7 POM and License Clean-up for
Apache Move
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/80faf06d/sail/rya.sail.impl/src/test/java/mvm/rya/ArbitraryLengthQueryTest.java
----------------------------------------------------------------------
diff --git a/sail/rya.sail.impl/src/test/java/mvm/rya/ArbitraryLengthQueryTest.java b/sail/rya.sail.impl/src/test/java/mvm/rya/ArbitraryLengthQueryTest.java
deleted file mode 100644
index 918223c..0000000
--- a/sail/rya.sail.impl/src/test/java/mvm/rya/ArbitraryLengthQueryTest.java
+++ /dev/null
@@ -1,499 +0,0 @@
-package mvm.rya;
-
-/*
- * #%L
- * mvm.rya.rya.sail.impl
- * %%
- * Copyright (C) 2014 Rya
- * %%
- * Licensed 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.
- * #L%
- */
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
-import org.apache.accumulo.core.client.mock.MockInstance;
-import org.openrdf.model.Resource;
-import org.openrdf.query.MalformedQueryException;
-import org.openrdf.query.QueryEvaluationException;
-import org.openrdf.query.QueryLanguage;
-import org.openrdf.query.TupleQuery;
-import org.openrdf.query.TupleQueryResultHandlerException;
-import org.openrdf.query.resultio.text.tsv.SPARQLResultsTSVWriter;
-import org.openrdf.repository.Repository;
-import org.openrdf.repository.RepositoryConnection;
-import org.openrdf.repository.RepositoryException;
-import org.openrdf.rio.RDFFormat;
-import org.openrdf.rio.RDFParseException;
-
-import mvm.rya.accumulo.AccumuloRdfConfiguration;
-import mvm.rya.accumulo.AccumuloRyaDAO;
-import mvm.rya.rdftriplestore.RdfCloudTripleStore;
-import mvm.rya.rdftriplestore.RyaSailRepository;
-import mvm.rya.rdftriplestore.inference.InferenceEngine;
-import mvm.rya.rdftriplestore.namespace.NamespaceManager;
-import junit.framework.TestCase;
-
-/**
- * The purpose of this is to provide a test case that illustrates a failure that is being encountered. A working test is
- * provided as well to demonstrate that a successful query can be made.
- */
-public class ArbitraryLengthQueryTest extends TestCase {
-
- /**
- * The repository used for the tests.
- */
- private Repository repository;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- final RdfCloudTripleStore store = new MockRdfCloudStore();
-
- final NamespaceManager nm = new NamespaceManager(store.getRyaDAO(), store.getConf());
- store.setNamespaceManager(nm);
-
- repository = new RyaSailRepository(store);
- repository.initialize();
-
- load();
- }
-
- @Override
- public void tearDown() throws Exception {
- super.tearDown();
- repository.shutDown();
- }
-
- /**
- * This test works. The expected result is 6 rows ranging from "Model1Class 1" through "Model1Class 6".
- *
- * @throws RepositoryException
- * @throws QueryEvaluationException
- * @throws TupleQueryResultHandlerException
- *
- * @throws MalformedQueryException
- */
- public void testWithoutSubquery() throws RepositoryException, QueryEvaluationException, TupleQueryResultHandlerException, MalformedQueryException {
- final String query = "SELECT ?i ?i_label ?i_class ?i_v1"
- + "WHERE {"
- + "?i <http://www.w3.org/2000/01/rdf-schema#label> ?i_label ."
- + "?i a ?i_class ."
- + "?i_class <http://www.w3.org/2000/01/rdf-schema#subClassOf>* <http://dragon-research.com/cham/model/model1#Model1Class> ."
- + "OPTIONAL { ?i <http://dragon-research.com/cham/model/model1#name> ?i_v1 } ."
- + "}"
- + "ORDER BY ?i_label";
-
- final RepositoryConnection conn = repository.getConnection();
- final TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
- RdfCloudTripleStoreConnectionTest.CountTupleHandler countTupleHandler = new RdfCloudTripleStoreConnectionTest.CountTupleHandler();
- tupleQuery.evaluate(countTupleHandler);
- assertEquals(6, countTupleHandler.getCount());
- conn.close();
- }
-
- /**
- * This test fails. The expected result is 6 rows ranging from "Model1Class 1 Event" to "Model1Class 6 Event". The
- * current result is a RejectedExecutionException.
- *
- * @throws RepositoryException
- * @throws QueryEvaluationException
- * @throws TupleQueryResultHandlerException
- *
- * @throws MalformedQueryException
- */
- public void testWithSubquery() throws RepositoryException, QueryEvaluationException, TupleQueryResultHandlerException, MalformedQueryException {
- final String query = "SELECT ?i ?i_label ?i_class ?i_v1 ?i_v2 ?i_v2_label ?i_v2_class ?i_v2_v1"
- + "WHERE {"
- + "?i <http://www.w3.org/2000/01/rdf-schema#label> ?i_label ."
- + "?i a ?i_class ."
- + "?i_class <http://www.w3.org/2000/01/rdf-schema#subClassOf>* <http://dragon-research.com/cham/model/model1#Event> ."
- + "OPTIONAL { ?i <http://dragon-research.com/cham/model/model1#name> ?i_v1 } ."
- + "?i <http://dragon-research.com/cham/model/model1#hasTemporalEntity> ?i_v2 ."
- + "{"
- + "SELECT ?i_v2 ?i_v2_label ?i_v2_class ?i_v2_v1"
- + "WHERE {"
- + "?i_v2 <http://www.w3.org/2000/01/rdf-schema#label> ?i_v2_label ."
- + "?i_v2 a ?i_v2_class ."
- + "?i_v2_class <http://www.w3.org/2000/01/rdf-schema#subClassOf>* <http://dragon-research.com/cham/model/model1#TemporalInstant> ."
- + "OPTIONAL { ?i_v2 <http://dragon-research.com/cham/model/model1#dateTime> ?i_v2_v1 } ."
- + "}"
- + "ORDER BY ?i_v2_label"
- + "}"
- + "}"
- + "ORDER BY ?i_label";
-
- final RepositoryConnection conn = repository.getConnection();
- final TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
- RdfCloudTripleStoreConnectionTest.CountTupleHandler countTupleHandler = new RdfCloudTripleStoreConnectionTest.CountTupleHandler();
- tupleQuery.evaluate(countTupleHandler);
- assertEquals(6, countTupleHandler.getCount());
- conn.close();
- }
-
- /**
- * Load the t-box and a-box turtle from strings defined within this class.
- *
- * @throws RepositoryException
- * @throws RDFParseException
- * @throws IOException
- */
- private void load() throws RepositoryException, RDFParseException, IOException {
- final RepositoryConnection conn = repository.getConnection();
-
- // T-Box
- String ttlString = MODEL_TTL;
- InputStream stringInput = new ByteArrayInputStream(ttlString.getBytes());
- conn.add(stringInput, "http://dragon-research.com/cham/model/model1", RDFFormat.TURTLE, new Resource[]{});
-
- // A-Box
- ttlString = BUCKET_TTL;
- stringInput = new ByteArrayInputStream(ttlString.getBytes());
- conn.add(stringInput, "http://dragon-research.com/cham/bucket/bucket1", RDFFormat.TURTLE, new Resource[]{});
-
- conn.commit();
- conn.close();
- }
-
- /**
- * Mock RDF cloud store for one shot testing.
- */
- public class MockRdfCloudStore extends RdfCloudTripleStore {
- public MockRdfCloudStore() {
- super();
- final Instance instance = new MockInstance();
- try {
- final AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
- setConf(conf);
-
- final Connector connector = instance.getConnector("", "");
- final AccumuloRyaDAO cdao = new AccumuloRyaDAO();
- cdao.setConf(conf);
- cdao.setConnector(connector);
- setRyaDAO(cdao);
- inferenceEngine = new InferenceEngine();
- inferenceEngine.setRyaDAO(cdao);
- inferenceEngine.setRefreshGraphSchedule(5000); //every 5 sec
- inferenceEngine.setConf(conf);
- setInferenceEngine(inferenceEngine);
- } catch (final Exception e) {
- e.printStackTrace();
- }
- }
- }
-
- /**
- * The ontology t-box in turtle.
- */
- private static String MODEL_TTL = "@prefix : <http://dragon-research.com/cham/model/model1#> ."
- + "@prefix cham: <http://dragon-research.com/cham/schema#> ."
- + "@prefix dc: <http://purl.org/dc/elements/1.1/> ."
- + "@prefix owl: <http://www.w3.org/2002/07/owl#> ."
- + "@prefix qudt: <http://data.nasa.gov/qudt/owl/qudt#> ."
- + "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ."
- + "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> ."
- + "@prefix unit: <http://data.nasa.gov/qudt/owl/unit#> ."
- + "@prefix xml: <http://www.w3.org/XML/1998/namespace> ."
- + "@prefix xsd: <http://www.w3.org/2001/XMLSchema#> ."
- + ""
- + "<http://dragon-research.com/cham/model/model1>"
- + " rdf:type owl:Ontology ;"
- + " rdfs:label \"Model1 Ontology\"^^xsd:string ;"
- + " :versionInfo \"0.1\"^^xsd:string ;"
- + " dc:title \"Model1 Ontology\"^^xsd:string ."
- + ""
- + ":ModelClassD"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"ModelClassD\"^^xsd:string ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:maxQualifiedCardinality"
- + " \"1\"^^xsd:nonNegativeInteger ;"
- + " owl:onDataRange xsd:string ;"
- + " owl:onProperty :name"
- + " ] ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:allValuesFrom :Model1ClassAssoc ;"
- + " owl:onProperty :hasModel1ClassAssoc"
- + " ] ."
- + ""
- + ":ModelClassC"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"ModelClassC\"^^xsd:string ;"
- + " rdfs:subClassOf :ModelClassD ."
- + ""
- + ":Modle1ClassB"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"Modle1ClassB\"^^xsd:string ;"
- + " rdfs:subClassOf :ModelClassC ."
- + ""
- + ":Model1ClassA"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"Model1ClassA\"^^xsd:string ;"
- + " rdfs:subClassOf :Modle1ClassB ."
- + ""
- + ":Model1Class"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"Model1Class\"^^xsd:string ;"
- + " rdfs:subClassOf :Model1ClassA ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:maxQualifiedCardinality"
- + " \"1\"^^xsd:nonNegativeInteger ;"
- + " owl:onDataRange xsd:string ;"
- + " owl:onProperty :model1ClassId"
- + " ] ."
- + ""
- + ":Model1Event"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"Model1Event\"^^xsd:string ;"
- + " rdfs:subClassOf :Event ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:allValuesFrom :Model1ClassA ;"
- + " owl:onProperty :hasModel1ClassA"
- + " ] ."
- + ""
- + ":Model1ClassAssoc"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"Model1ClassAssoc\"^^xsd:string ;"
- + " rdfs:subClassOf owl:Thing ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:maxQualifiedCardinality"
- + " \"1\"^^xsd:nonNegativeInteger ;"
- + " owl:onDataRange xsd:string ;"
- + " owl:onProperty :name"
- + " ] ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:maxQualifiedCardinality"
- + " \"1\"^^xsd:nonNegativeInteger ;"
- + " owl:onClass :ModelClassD ;"
- + " owl:onProperty :hasEntity"
- + " ] ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:allValuesFrom :ModelClassD ;"
- + " owl:onProperty :hasEntity"
- + " ] ."
- + ""
- + ":TemporalEntity"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"TemporalEntity\"^^xsd:string ;"
- + " rdfs:subClassOf owl:Thing ."
- + ""
- + ":TemporalInstant"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"TemporalInstant\"^^xsd:string ;"
- + " rdfs:subClassOf :TemporalEntity ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:maxQualifiedCardinality"
- + " \"1\"^^xsd:nonNegativeInteger ;"
- + " owl:onDataRange xsd:dateTime ;"
- + " owl:onProperty :dateTime"
- + " ] ."
- + ""
- + ":model1ClassId"
- + " rdf:type owl:DatatypeProperty ;"
- + " rdfs:domain :Model1Class ;"
- + " rdfs:label \"model1ClassId\"^^xsd:string ;"
- + " rdfs:range xsd:string ."
- + ""
- + ":hasModel1ClassAssoc"
- + " rdf:type owl:ObjectProperty ;"
- + " rdfs:domain :ModelClassD ;"
- + " rdfs:label \"hasModel1ClassAssoc\"^^xsd:string ;"
- + " rdfs:range :Model1ClassAssoc ."
- + ""
- + ":name"
- + " rdf:type owl:DatatypeProperty ;"
- + " rdfs:domain :Model1ClassAssoc , :ModelClassD ;"
- + " rdfs:label \"name\"^^xsd:string ;"
- + " rdfs:range xsd:string ."
- + ""
- + ":hasTemporalEntity"
- + " rdf:type owl:ObjectProperty ;"
- + " rdfs:domain :ThreatAnalysis , :Event , :TrackingData , :Threat , :Vulnerability ;"
- + " rdfs:label \"hasTemporalEntity\"^^xsd:string ;"
- + " rdfs:range :TemporalEntity ."
- + ""
- + ":hasEntity"
- + " rdf:type owl:ObjectProperty ;"
- + " rdfs:domain :Model1ClassAssoc ;"
- + " rdfs:label \"hasEntity\"^^xsd:string ;"
- + " rdfs:range :ModelClassD ."
- + ""
- + ":dateTime"
- + " rdf:type owl:DatatypeProperty ;"
- + " rdfs:domain :TemporalInstant ;"
- + " rdfs:label \"dateTime\"^^xsd:string ;"
- + " rdfs:range xsd:dateTime ."
- + ""
- + ":Event"
- + " rdf:type owl:Class ;"
- + " rdfs:label \"Event\"^^xsd:string ;"
- + " rdfs:subClassOf :ModelClassD ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:allValuesFrom :TemporalEntity ;"
- + " owl:onProperty :hasTemporalEntity"
- + " ] ;"
- + " rdfs:subClassOf"
- + " [ rdf:type owl:Restriction ;"
- + " owl:maxQualifiedCardinality"
- + " \"1\"^^xsd:nonNegativeInteger ;"
- + " owl:onClass :TemporalEntity ;"
- + " owl:onProperty :hasTemporalEntity"
- + " ] ."
- + ""
- + ":hasModel1ClassA"
- + " rdf:type owl:ObjectProperty ;"
- + " rdfs:domain :Model1Event ;"
- + " rdfs:label \"hasModel1ClassA\"^^xsd:string ;"
- + " rdfs:range :Model1ClassA ."
- + ""
- + "rdfs:label"
- + " rdf:type owl:AnnotationProperty ."
- + ""
- + "xsd:date"
- + " rdf:type rdfs:Datatype ."
- + ""
- + "xsd:time"
- + " rdf:type rdfs:Datatype .";
-
- /**
- * The ontology a-box in turtle.
- */
- private static String BUCKET_TTL = "@prefix : <http://dragon-research.com/cham/bucket/bucket1#> ."
- + "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> ."
- + "@prefix owl: <http://www.w3.org/2002/07/owl#> ."
- + "@prefix xsd: <http://www.w3.org/2001/XMLSchema#> ."
- + "@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ."
- + "@prefix model1: <http://dragon-research.com/cham/model/model1#> ."
- + ""
- + ":i1 a model1:Model1Class ;"
- + " rdfs:label \"Model1Class 1\"^^xsd:string ;"
- + " model1:name \"Model1Class 1\"^^xsd:string ;"
- + " model1:hasModel1ClassAssoc :i1-assoc ;"
- + " model1:model1ClassId \"ID01\"^^xsd:string ."
- + " "
- + ":i1-assoc a model1:Model1ClassAssoc ;"
- + " rdfs:label \"Model1Class 1 Assoc\"^^xsd:string ;"
- + " model1:hasEntity :i1-event ."
- + " "
- + ":i1-event a model1:Model1Event ;"
- + " rdfs:label \"Model1Class 1 Event\"^^xsd:string ;"
- + " model1:hasTemporalEntity :i1-time ."
- + ""
- + ":i1-time a model1:TemporalInstant ;"
- + " rdfs:label \"Model1Class 1 Time\"^^xsd:string ;"
- + " model1:dateTime \"1994-02-07T21:47:01.000Z\"^^xsd:dateTime ."
- + " "
- + ":i2 a model1:Model1Class ;"
- + " rdfs:label \"Model1Class 2\"^^xsd:string ;"
- + " model1:name \"Model1Class 2\"^^xsd:string ;"
- + " model1:hasModel1ClassAssoc :i2-assoc ;"
- + " model1:model1ClassId \"ID02\"^^xsd:string ."
- + ""
- + ":i2-assoc a model1:Model1ClassAssoc ;"
- + " rdfs:label \"Model1Class 2 Assoc\"^^xsd:string ;"
- + " model1:hasEntity :i2-event ."
- + " "
- + ":i2-event a model1:Model1Event ;"
- + " rdfs:label \"Model1Class 2 Event\"^^xsd:string ;"
- + " model1:hasTemporalEntity :i2-time ."
- + ""
- + ":i2-time a model1:TemporalInstant ;"
- + " rdfs:label \"Model1Class 2 Time\"^^xsd:string ;"
- + " model1:dateTime \"1995-11-06T05:15:01.000Z\"^^xsd:dateTime ."
- + " "
- + ":i3 a model1:Model1Class ;"
- + " rdfs:label \"Model1Class 3\"^^xsd:string ;"
- + " model1:name \"Model1Class 3\"^^xsd:string ;"
- + " model1:hasModel1ClassAssoc :i3-assoc ;"
- + " model1:model1ClassId \"ID03\"^^xsd:string ."
- + ""
- + ":i3-assoc a model1:Model1ClassAssoc ;"
- + " rdfs:label \"Model1Class 3 Assoc\"^^xsd:string ;"
- + " model1:hasEntity :i3-event ."
- + " "
- + ":i3-event a model1:Model1Event ;"
- + " rdfs:label \"Model1Class 3 Event\"^^xsd:string ;"
- + " model1:hasTemporalEntity :i3-time ."
- + ""
- + ":i3-time a model1:TemporalInstant ;"
- + " rdfs:label \"Model1Class 3 Time\"^^xsd:string ;"
- + " model1:dateTime \"1999-04-30T16:30:00.000Z\"^^xsd:dateTime ."
- + " "
- + ":i4 a model1:Model1Class ;"
- + " rdfs:label \"Model1Class 4\"^^xsd:string ;"
- + " model1:name \"Model1Class 4\"^^xsd:string ;"
- + " model1:hasModel1ClassAssoc :i4-assoc ;"
- + " model1:model1ClassId \"ID04\"^^xsd:string ."
- + ""
- + ":i4-assoc a model1:Model1ClassAssoc ;"
- + " rdfs:label \"Model1Class 4 Assoc\"^^xsd:string ;"
- + " model1:hasEntity :i4-event ."
- + " "
- + ":i4-event a model1:Model1Event ;"
- + " rdfs:label \"Model1Class 4 Event\"^^xsd:string ;"
- + " model1:hasTemporalEntity :i4-time ."
- + ""
- + ":i4-time a model1:TemporalInstant ;"
- + " rdfs:label \"Model1Class 4 Time\"^^xsd:string ;"
- + " model1:dateTime \"2001-02-27T21:20:00.000Z\"^^xsd:dateTime ."
- + " "
- + ":i5 a model1:Model1Class ;"
- + " rdfs:label \"Model1Class 5\"^^xsd:string ;"
- + " model1:name \"Model1Class 5\"^^xsd:string ;"
- + " model1:hasModel1ClassAssoc :i5-assoc ;"
- + " model1:model1ClassId \"ID05\"^^xsd:string ."
- + ""
- + ":i5-assoc a model1:Model1ClassAssoc ;"
- + " rdfs:label \"Model1Class 5 Assoc\"^^xsd:string ;"
- + " model1:hasEntity :i5-event ."
- + " "
- + ":i5-event a model1:Model1Event ;"
- + " rdfs:label \"Model1Class 5 Event\"^^xsd:string ;"
- + " model1:hasTemporalEntity :i5-time ."
- + ""
- + ":i5-time a model1:TemporalInstant ;"
- + " rdfs:label \"Model1Class 5 Time\"^^xsd:string ;"
- + " model1:dateTime \"2002-01-16T00:30:00.000Z\"^^xsd:dateTime ."
- + " "
- + ":i6 a model1:Model1Class ;"
- + " rdfs:label \"Model1Class 6\"^^xsd:string ;"
- + " model1:name \"Model1Class 6\"^^xsd:string ;"
- + " model1:hasModel1ClassAssoc :i6-assoc ;"
- + " model1:model1ClassId \"ID06\"^^xsd:string ."
- + ""
- + ":i6-assoc a model1:Model1ClassAssoc ;"
- + " rdfs:label \"Model1Class 6 Assoc\"^^xsd:string ;"
- + " model1:hasEntity :i6-event ."
- + " "
- + ":i6-event a model1:Model1Event ;"
- + " rdfs:label \"Model1Class 6 Event\"^^xsd:string ;"
- + " model1:hasTemporalEntity :i6-time ."
- + ""
- + ":i6-time a model1:TemporalInstant ;"
- + " rdfs:label \"Model1Class 6 Time\"^^xsd:string ;"
- + " model1:dateTime \"2003-04-08T13:43:00.000Z\"^^xsd:dateTime .";
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/80faf06d/sail/rya.sail.impl/src/test/java/mvm/rya/HashJoinTest.java
----------------------------------------------------------------------
diff --git a/sail/rya.sail.impl/src/test/java/mvm/rya/HashJoinTest.java b/sail/rya.sail.impl/src/test/java/mvm/rya/HashJoinTest.java
deleted file mode 100644
index 9f39dca..0000000
--- a/sail/rya.sail.impl/src/test/java/mvm/rya/HashJoinTest.java
+++ /dev/null
@@ -1,373 +0,0 @@
-package mvm.rya;
-
-/*
- * #%L
- * mvm.rya.rya.sail.impl
- * %%
- * Copyright (C) 2014 Rya
- * %%
- * Licensed 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.
- * #L%
- */
-
-import info.aduna.iteration.CloseableIteration;
-import junit.framework.TestCase;
-import mvm.rya.accumulo.AccumuloRdfConfiguration;
-import mvm.rya.accumulo.AccumuloRyaDAO;
-import mvm.rya.api.RdfCloudTripleStoreUtils;
-import mvm.rya.api.domain.RyaStatement;
-import mvm.rya.api.domain.RyaType;
-import mvm.rya.api.domain.RyaURI;
-import mvm.rya.api.persist.RyaDAOException;
-import mvm.rya.api.persist.query.join.HashJoin;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.mock.MockInstance;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-
-/**
- * Date: 7/24/12
- * Time: 5:51 PM
- */
-public class HashJoinTest {
- private AccumuloRyaDAO dao;
- static String litdupsNS = "urn:test:litdups#";
- private Connector connector;
- private AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
-
- @Before
- public void init() throws Exception {
- dao = new AccumuloRyaDAO();
- connector = new MockInstance().getConnector("", "");
- dao.setConnector(connector);
- dao.setConf(conf);
- dao.init();
- }
-
- @After
- public void destroy() throws Exception {
- dao.destroy();
- }
-
- @Test
- public void testSimpleJoin() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
-
-
- //1 join
- HashJoin hjoin = new HashJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = hjoin.join(null,
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two));
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj3));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testSimpleJoinMultiWay() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj2, pred, three));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, three));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
- dao.add(new RyaStatement(subj4, pred, four));
-
-
- //1 join
- HashJoin hjoin = new HashJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = hjoin.join(null,
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, three),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj3));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testMergeJoinMultiWay() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj2, pred, three));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
- dao.add(new RyaStatement(subj4, pred, four));
-
-
- //1 join
- HashJoin hjoin = new HashJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = hjoin.join(null,
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, three),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testMergeJoinMultiWayNone() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
-
-
- //1 join
- HashJoin hjoin = new HashJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = hjoin.join(null,
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, three),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- assertFalse(join.hasNext());
- join.close();
- }
-
- @Test
- public void testMergeJoinMultiWayNone2() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
-
-
- //1 join
- HashJoin hjoin = new HashJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = hjoin.join(null,
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, three),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- assertFalse(join.hasNext());
- join.close();
- }
-
- @Test
- public void testSimpleHashJoinPredicateOnly() throws Exception {
- //add data
- RyaURI pred1 = new RyaURI(litdupsNS, "pred1");
- RyaURI pred2 = new RyaURI(litdupsNS, "pred2");
- RyaType one = new RyaType("1");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred1, one));
- dao.add(new RyaStatement(subj1, pred2, one));
- dao.add(new RyaStatement(subj2, pred1, one));
- dao.add(new RyaStatement(subj2, pred2, one));
- dao.add(new RyaStatement(subj3, pred1, one));
- dao.add(new RyaStatement(subj3, pred2, one));
- dao.add(new RyaStatement(subj4, pred1, one));
- dao.add(new RyaStatement(subj4, pred2, one));
-
-
- //1 join
- HashJoin ijoin = new HashJoin(dao.getQueryEngine());
- CloseableIteration<RyaStatement, RyaDAOException> join = ijoin.join(null, pred1, pred2);
-
- int count = 0;
- while (join.hasNext()) {
- RyaStatement next = join.next();
- count++;
- }
- assertEquals(4, count);
- join.close();
- }
-
- @Test
- public void testSimpleMergeJoinPredicateOnly2() throws Exception {
- //add data
- RyaURI pred1 = new RyaURI(litdupsNS, "pred1");
- RyaURI pred2 = new RyaURI(litdupsNS, "pred2");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred1, one));
- dao.add(new RyaStatement(subj1, pred1, two));
- dao.add(new RyaStatement(subj1, pred1, three));
- dao.add(new RyaStatement(subj1, pred2, one));
- dao.add(new RyaStatement(subj1, pred2, two));
- dao.add(new RyaStatement(subj1, pred2, three));
- dao.add(new RyaStatement(subj2, pred1, one));
- dao.add(new RyaStatement(subj2, pred1, two));
- dao.add(new RyaStatement(subj2, pred1, three));
- dao.add(new RyaStatement(subj2, pred2, one));
- dao.add(new RyaStatement(subj2, pred2, two));
- dao.add(new RyaStatement(subj2, pred2, three));
- dao.add(new RyaStatement(subj3, pred1, one));
- dao.add(new RyaStatement(subj3, pred1, two));
- dao.add(new RyaStatement(subj3, pred1, three));
- dao.add(new RyaStatement(subj3, pred2, one));
- dao.add(new RyaStatement(subj3, pred2, two));
- dao.add(new RyaStatement(subj3, pred2, three));
- dao.add(new RyaStatement(subj4, pred1, one));
- dao.add(new RyaStatement(subj4, pred1, two));
- dao.add(new RyaStatement(subj4, pred1, three));
- dao.add(new RyaStatement(subj4, pred2, one));
- dao.add(new RyaStatement(subj4, pred2, two));
- dao.add(new RyaStatement(subj4, pred2, three));
-
-
- //1 join
- HashJoin ijoin = new HashJoin(dao.getQueryEngine());
- CloseableIteration<RyaStatement, RyaDAOException> join = ijoin.join(null, pred1, pred2);
-
- int count = 0;
- while (join.hasNext()) {
- RyaStatement next = join.next();
- count++;
- }
- assertEquals(12, count);
- join.close();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/80faf06d/sail/rya.sail.impl/src/test/java/mvm/rya/IterativeJoinTest.java
----------------------------------------------------------------------
diff --git a/sail/rya.sail.impl/src/test/java/mvm/rya/IterativeJoinTest.java b/sail/rya.sail.impl/src/test/java/mvm/rya/IterativeJoinTest.java
deleted file mode 100644
index de20d47..0000000
--- a/sail/rya.sail.impl/src/test/java/mvm/rya/IterativeJoinTest.java
+++ /dev/null
@@ -1,364 +0,0 @@
-package mvm.rya;
-
-/*
- * #%L
- * mvm.rya.rya.sail.impl
- * %%
- * Copyright (C) 2014 Rya
- * %%
- * Licensed 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.
- * #L%
- */
-
-import info.aduna.iteration.CloseableIteration;
-import junit.framework.TestCase;
-import mvm.rya.accumulo.AccumuloRdfConfiguration;
-import mvm.rya.accumulo.AccumuloRyaDAO;
-import mvm.rya.api.RdfCloudTripleStoreUtils;
-import mvm.rya.api.domain.RyaStatement;
-import mvm.rya.api.domain.RyaType;
-import mvm.rya.api.domain.RyaURI;
-import mvm.rya.api.persist.RyaDAOException;
-import mvm.rya.api.persist.query.join.IterativeJoin;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.mock.MockInstance;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import static junit.framework.Assert.*;
-
-/**
- * Date: 7/24/12
- * Time: 5:51 PM
- */
-public class IterativeJoinTest {
- private AccumuloRyaDAO dao;
- static String litdupsNS = "urn:test:litdups#";
- private Connector connector;
- private AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
-
- @Before
- public void init() throws Exception {
- dao = new AccumuloRyaDAO();
- connector = new MockInstance().getConnector("", "");
- dao.setConnector(connector);
- dao.setConf(conf);
- dao.init();
- }
-
- @After
- public void destroy() throws Exception {
- dao.destroy();
- }
-
- @Test
- public void testSimpleIterativeJoin() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
-
- //1 join
- IterativeJoin iterJoin = new IterativeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = iterJoin.join(null, new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two));
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj3));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testSimpleIterativeJoinMultiWay() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj2, pred, three));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, three));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
- dao.add(new RyaStatement(subj4, pred, four));
-
- //1 join
- IterativeJoin iterativeJoin = new IterativeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = iterativeJoin.join(null,
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, three),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj3));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testIterativeJoinMultiWay() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj2, pred, three));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
- dao.add(new RyaStatement(subj4, pred, four));
-
- //1 join
- IterativeJoin iterativeJoin = new IterativeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = iterativeJoin.join(null,
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, three),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testIterativeJoinMultiWayNone() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
-
- //1 join
- IterativeJoin iterativeJoin = new IterativeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = iterativeJoin.join(null,
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, three),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- assertFalse(join.hasNext());
- join.close();
- }
-
- @Test
- public void testIterativeJoinMultiWayNone2() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
-
- //1 join
- IterativeJoin iterativeJoin = new IterativeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = iterativeJoin.join(null, new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, one),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, two),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, three),
- new RdfCloudTripleStoreUtils.CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- assertFalse(join.hasNext());
- join.close();
- }
-
- @Test
- public void testSimpleIterativeJoinPredicateOnly() throws Exception {
- //add data
- RyaURI pred1 = new RyaURI(litdupsNS, "pred1");
- RyaURI pred2 = new RyaURI(litdupsNS, "pred2");
- RyaType one = new RyaType("1");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred1, one));
- dao.add(new RyaStatement(subj1, pred2, one));
- dao.add(new RyaStatement(subj2, pred1, one));
- dao.add(new RyaStatement(subj2, pred2, one));
- dao.add(new RyaStatement(subj3, pred1, one));
- dao.add(new RyaStatement(subj3, pred2, one));
- dao.add(new RyaStatement(subj4, pred1, one));
- dao.add(new RyaStatement(subj4, pred2, one));
-
-
- //1 join
- IterativeJoin ijoin = new IterativeJoin(dao.getQueryEngine());
- CloseableIteration<RyaStatement, RyaDAOException> join = ijoin.join(null, pred1, pred2);
-
- int count = 0;
- while (join.hasNext()) {
- RyaStatement next = join.next();
- count++;
- }
- assertEquals(4, count);
- join.close();
- }
-
- @Test
- public void testSimpleIterativeJoinPredicateOnly2() throws Exception {
- //add data
- RyaURI pred1 = new RyaURI(litdupsNS, "pred1");
- RyaURI pred2 = new RyaURI(litdupsNS, "pred2");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred1, one));
- dao.add(new RyaStatement(subj1, pred1, two));
- dao.add(new RyaStatement(subj1, pred1, three));
- dao.add(new RyaStatement(subj1, pred2, one));
- dao.add(new RyaStatement(subj1, pred2, two));
- dao.add(new RyaStatement(subj1, pred2, three));
- dao.add(new RyaStatement(subj2, pred1, one));
- dao.add(new RyaStatement(subj2, pred1, two));
- dao.add(new RyaStatement(subj2, pred1, three));
- dao.add(new RyaStatement(subj2, pred2, one));
- dao.add(new RyaStatement(subj2, pred2, two));
- dao.add(new RyaStatement(subj2, pred2, three));
- dao.add(new RyaStatement(subj3, pred1, one));
- dao.add(new RyaStatement(subj3, pred1, two));
- dao.add(new RyaStatement(subj3, pred1, three));
- dao.add(new RyaStatement(subj3, pred2, one));
- dao.add(new RyaStatement(subj3, pred2, two));
- dao.add(new RyaStatement(subj3, pred2, three));
- dao.add(new RyaStatement(subj4, pred1, one));
- dao.add(new RyaStatement(subj4, pred1, two));
- dao.add(new RyaStatement(subj4, pred1, three));
- dao.add(new RyaStatement(subj4, pred2, one));
- dao.add(new RyaStatement(subj4, pred2, two));
- dao.add(new RyaStatement(subj4, pred2, three));
-
-
- //1 join
- IterativeJoin ijoin = new IterativeJoin(dao.getQueryEngine());
- CloseableIteration<RyaStatement, RyaDAOException> join = ijoin.join(null, pred1, pred2);
-
- int count = 0;
- while (join.hasNext()) {
- RyaStatement next = join.next();
- count++;
- }
- assertEquals(12, count);
- join.close();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/80faf06d/sail/rya.sail.impl/src/test/java/mvm/rya/MergeJoinTest.java
----------------------------------------------------------------------
diff --git a/sail/rya.sail.impl/src/test/java/mvm/rya/MergeJoinTest.java b/sail/rya.sail.impl/src/test/java/mvm/rya/MergeJoinTest.java
deleted file mode 100644
index 370f3fe..0000000
--- a/sail/rya.sail.impl/src/test/java/mvm/rya/MergeJoinTest.java
+++ /dev/null
@@ -1,369 +0,0 @@
-package mvm.rya;
-
-/*
- * #%L
- * mvm.rya.rya.sail.impl
- * %%
- * Copyright (C) 2014 Rya
- * %%
- * Licensed 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.
- * #L%
- */
-
-import info.aduna.iteration.CloseableIteration;
-import mvm.rya.accumulo.AccumuloRdfConfiguration;
-import mvm.rya.accumulo.AccumuloRyaDAO;
-import mvm.rya.api.domain.RyaStatement;
-import mvm.rya.api.domain.RyaType;
-import mvm.rya.api.domain.RyaURI;
-import mvm.rya.api.persist.RyaDAOException;
-import mvm.rya.api.persist.query.join.MergeJoin;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.mock.MockInstance;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import static junit.framework.Assert.*;
-import static mvm.rya.api.RdfCloudTripleStoreUtils.CustomEntry;
-
-/**
- * TODO: Move to rya.api when we have proper mock ryaDao
- *
- * Date: 7/24/12
- * Time: 9:49 AM
- */
-public class MergeJoinTest {
-
- private AccumuloRyaDAO dao;
- static String litdupsNS = "urn:test:litdups#";
- private Connector connector;
- private AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
-
- @Before
- public void init() throws Exception {
- dao = new AccumuloRyaDAO();
- connector = new MockInstance().getConnector("", "");
- dao.setConnector(connector);
- dao.setConf(conf);
- dao.init();
- }
-
- @After
- public void destroy() throws Exception {
- dao.destroy();
- }
-
- @Test
- public void testSimpleMergeJoin() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
-
-
- //1 join
- MergeJoin mergeJoin = new MergeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = mergeJoin.join(null, new CustomEntry<RyaURI, RyaType>(pred, one),
- new CustomEntry<RyaURI, RyaType>(pred, two));
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj3));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testSimpleMergeJoinPredicateOnly() throws Exception {
- //add data
- RyaURI pred1 = new RyaURI(litdupsNS, "pred1");
- RyaURI pred2 = new RyaURI(litdupsNS, "pred2");
- RyaType one = new RyaType("1");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred1, one));
- dao.add(new RyaStatement(subj1, pred2, one));
- dao.add(new RyaStatement(subj2, pred1, one));
- dao.add(new RyaStatement(subj2, pred2, one));
- dao.add(new RyaStatement(subj3, pred1, one));
- dao.add(new RyaStatement(subj3, pred2, one));
- dao.add(new RyaStatement(subj4, pred1, one));
- dao.add(new RyaStatement(subj4, pred2, one));
-
-
- //1 join
- MergeJoin mergeJoin = new MergeJoin(dao.getQueryEngine());
- CloseableIteration<RyaStatement, RyaDAOException> join = mergeJoin.join(null, pred1, pred2);
-
- int count = 0;
- while (join.hasNext()) {
- RyaStatement next = join.next();
- count++;
- }
- assertEquals(4, count);
- join.close();
- }
-
- @Test
- public void testSimpleMergeJoinPredicateOnly2() throws Exception {
- //add data
- RyaURI pred1 = new RyaURI(litdupsNS, "pred1");
- RyaURI pred2 = new RyaURI(litdupsNS, "pred2");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred1, one));
- dao.add(new RyaStatement(subj1, pred1, two));
- dao.add(new RyaStatement(subj1, pred1, three));
- dao.add(new RyaStatement(subj1, pred2, one));
- dao.add(new RyaStatement(subj1, pred2, two));
- dao.add(new RyaStatement(subj1, pred2, three));
- dao.add(new RyaStatement(subj2, pred1, one));
- dao.add(new RyaStatement(subj2, pred1, two));
- dao.add(new RyaStatement(subj2, pred1, three));
- dao.add(new RyaStatement(subj2, pred2, one));
- dao.add(new RyaStatement(subj2, pred2, two));
- dao.add(new RyaStatement(subj2, pred2, three));
- dao.add(new RyaStatement(subj3, pred1, one));
- dao.add(new RyaStatement(subj3, pred1, two));
- dao.add(new RyaStatement(subj3, pred1, three));
- dao.add(new RyaStatement(subj3, pred2, one));
- dao.add(new RyaStatement(subj3, pred2, two));
- dao.add(new RyaStatement(subj3, pred2, three));
- dao.add(new RyaStatement(subj4, pred1, one));
- dao.add(new RyaStatement(subj4, pred1, two));
- dao.add(new RyaStatement(subj4, pred1, three));
- dao.add(new RyaStatement(subj4, pred2, one));
- dao.add(new RyaStatement(subj4, pred2, two));
- dao.add(new RyaStatement(subj4, pred2, three));
-
-
- //1 join
- MergeJoin mergeJoin = new MergeJoin(dao.getQueryEngine());
- CloseableIteration<RyaStatement, RyaDAOException> join = mergeJoin.join(null, pred1, pred2);
-
- int count = 0;
- while (join.hasNext()) {
- RyaStatement next = join.next();
- count++;
- }
- assertEquals(12, count);
- join.close();
- }
-
- @Test
- public void testSimpleMergeJoinMultiWay() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj2, pred, three));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, three));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
- dao.add(new RyaStatement(subj4, pred, four));
-
-
- //1 join
- MergeJoin mergeJoin = new MergeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = mergeJoin.join(null, new CustomEntry<RyaURI, RyaType>(pred, one),
- new CustomEntry<RyaURI, RyaType>(pred, two),
- new CustomEntry<RyaURI, RyaType>(pred, three),
- new CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj3));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testMergeJoinMultiWay() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, two));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, two));
- dao.add(new RyaStatement(subj2, pred, three));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, one));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
- dao.add(new RyaStatement(subj4, pred, four));
-
-
- //1 join
- MergeJoin mergeJoin = new MergeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = mergeJoin.join(null, new CustomEntry<RyaURI, RyaType>(pred, one),
- new CustomEntry<RyaURI, RyaType>(pred, two),
- new CustomEntry<RyaURI, RyaType>(pred, three),
- new CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- Set<RyaURI> uris = new HashSet<RyaURI>();
- while (join.hasNext()) {
- uris.add(join.next());
- }
- assertTrue(uris.contains(subj1));
- assertTrue(uris.contains(subj2));
- assertTrue(uris.contains(subj4));
- join.close();
- }
-
- @Test
- public void testMergeJoinMultiWayNone() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, three));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
- dao.add(new RyaStatement(subj4, pred, three));
-
-
- //1 join
- MergeJoin mergeJoin = new MergeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = mergeJoin.join(null, new CustomEntry<RyaURI, RyaType>(pred, one),
- new CustomEntry<RyaURI, RyaType>(pred, two),
- new CustomEntry<RyaURI, RyaType>(pred, three),
- new CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- assertFalse(join.hasNext());
- join.close();
- }
-
- @Test
- public void testMergeJoinMultiWayNone2() throws Exception {
- //add data
- RyaURI pred = new RyaURI(litdupsNS, "pred1");
- RyaType zero = new RyaType("0");
- RyaType one = new RyaType("1");
- RyaType two = new RyaType("2");
- RyaType three = new RyaType("3");
- RyaType four = new RyaType("4");
- RyaURI subj1 = new RyaURI(litdupsNS, "subj1");
- RyaURI subj2 = new RyaURI(litdupsNS, "subj2");
- RyaURI subj3 = new RyaURI(litdupsNS, "subj3");
- RyaURI subj4 = new RyaURI(litdupsNS, "subj4");
-
- dao.add(new RyaStatement(subj1, pred, one));
- dao.add(new RyaStatement(subj1, pred, four));
- dao.add(new RyaStatement(subj2, pred, zero));
- dao.add(new RyaStatement(subj2, pred, one));
- dao.add(new RyaStatement(subj2, pred, four));
- dao.add(new RyaStatement(subj3, pred, two));
- dao.add(new RyaStatement(subj3, pred, four));
- dao.add(new RyaStatement(subj4, pred, one));
- dao.add(new RyaStatement(subj4, pred, two));
-
-
- //1 join
- MergeJoin mergeJoin = new MergeJoin(dao.getQueryEngine());
- CloseableIteration<RyaURI, RyaDAOException> join = mergeJoin.join(null, new CustomEntry<RyaURI, RyaType>(pred, one),
- new CustomEntry<RyaURI, RyaType>(pred, two),
- new CustomEntry<RyaURI, RyaType>(pred, three),
- new CustomEntry<RyaURI, RyaType>(pred, four)
- );
-
- assertFalse(join.hasNext());
- join.close();
- }
-}