use of org.apache.jena.graph.compose.MultiUnion in project jena by apache.
the class TestMultiUnion method testMultiUnionHasMultiUnionStatisticsHandler.
/**
A MultiUnion graph should have a MultiUnionStatisticsHandler, and that
handler should point right back to that graph.
*/
public void testMultiUnionHasMultiUnionStatisticsHandler() {
MultiUnion mu = new MultiUnion();
GraphStatisticsHandler sh = mu.getStatisticsHandler();
assertInstanceOf(MultiUnionStatisticsHandler.class, sh);
assertSame(mu, ((MultiUnionStatisticsHandler) sh).getUnion());
}
use of org.apache.jena.graph.compose.MultiUnion in project jena by apache.
the class TestMultiUnion method testAdd.
public void testAdd() {
Graph g0 = graphWith("x p y");
// disjoint with g0
Graph g1 = graphWith("x p z; z p zz");
// intersects with g1
Graph g2 = graphWith("x p y; z p a");
MultiUnion m = new MultiUnion(new Graph[] { g0, g1 });
int s0 = g0.size();
int s1 = g1.size();
int s2 = g2.size();
int m0 = m.size();
// add a triple to the union
m.add(triple("a q b"));
assertEquals("m.size should have increased by one", m0 + 1, m.size());
assertEquals("g0.size should have increased by one", s0 + 1, g0.size());
assertEquals("g1 size should be constant", s1, g1.size());
// change the designated receiver and try again
m.setBaseGraph(g1);
s0 = g0.size();
s1 = g1.size();
s2 = g2.size();
m0 = m.size();
m.add(triple("a1 q b1"));
assertEquals("m.size should have increased by one", m0 + 1, m.size());
assertEquals("g0 size should be constant", s0, g0.size());
assertEquals("g1.size should have increased by one", s1 + 1, g1.size());
// check that we can't make g2 the designated updater
boolean expected = false;
try {
m.setBaseGraph(g2);
} catch (IllegalArgumentException e) {
expected = true;
}
assertTrue("Should not have been able to make g2 the updater", expected);
}
use of org.apache.jena.graph.compose.MultiUnion in project jena by apache.
the class TestMultiUnion method testGraphSize2.
public void testGraphSize2() {
Graph g0 = graphWith("x p y");
// disjoint with g0
Graph g1 = graphWith("x p z; z p zz");
// intersects with g1
Graph g2 = graphWith("x p y; z p a");
Graph m01 = new MultiUnion(iterateOver(g0, g1));
Graph m10 = new MultiUnion(iterateOver(g1, g0));
Graph m12 = new MultiUnion(iterateOver(g1, g2));
Graph m21 = new MultiUnion(iterateOver(g2, g1));
Graph m02 = new MultiUnion(iterateOver(g0, g2));
Graph m20 = new MultiUnion(iterateOver(g2, g0));
Graph m00 = new MultiUnion(iterateOver(g0, g0));
int s0 = g0.size();
int s1 = g1.size();
int s2 = g2.size();
assertEquals("Size of union of g0 and g1 not correct", s0 + s1, m01.size());
assertEquals("Size of union of g1 and g0 not correct", s0 + s1, m10.size());
assertEquals("Size of union of g1 and g2 not correct", s1 + s2, m12.size());
assertEquals("Size of union of g2 and g1 not correct", s1 + s2, m21.size());
assertEquals("Size of union of g0 and g2 not correct", s0 + s2 - 1, m02.size());
assertEquals("Size of union of g2 and g0 not correct", s0 + s2 - 1, m20.size());
assertEquals("Size of union of g0 with itself not correct", s0, m00.size());
}
use of org.apache.jena.graph.compose.MultiUnion in project jena by apache.
the class TestMultiUnion method testModel.
/* Test using a model to wrap a multi union */
public void testModel() {
Graph g0 = graphWith("x p y");
MultiUnion u = new MultiUnion(new Graph[] { g0 });
Model m = ModelFactory.createModelForGraph(u);
assertEquals("Model size not correct", 1, m.size());
// disjoint with g0
Graph g1 = graphWith("x p z; z p zz");
u.addGraph(g1);
assertEquals("Model size not correct", 3, m.size());
// adds one more statement to the model
m.read(getFileName("ontology/list0.rdf"));
assertEquals("Model size not correct", 4, m.size());
// debug m.write( System.out );
}
use of org.apache.jena.graph.compose.MultiUnion in project jena by apache.
the class TestMultiUnion method testContains.
public void testContains() {
Graph g0 = graphWith("x p y");
// disjoint with g0
Graph g1 = graphWith("x p z; z p zz");
MultiUnion m = new MultiUnion(new Graph[] { g0, g1 });
assertTrue("m should contain triple", m.contains(triple("x p y ")));
assertTrue("m should contain triple", m.contains(triple("x p z ")));
assertTrue("m should contain triple", m.contains(triple("z p zz ")));
assertFalse("m should not contain triple", m.contains(triple("zz p z ")));
}
Aggregations