Search in sources :

Example 11 with MultiUnion

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());
}
Also used : GraphStatisticsHandler(org.apache.jena.graph.GraphStatisticsHandler) MultiUnion(org.apache.jena.graph.compose.MultiUnion)

Example 12 with MultiUnion

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);
}
Also used : AbstractTestGraph(org.apache.jena.graph.test.AbstractTestGraph) Graph(org.apache.jena.graph.Graph) MultiUnion(org.apache.jena.graph.compose.MultiUnion)

Example 13 with MultiUnion

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());
}
Also used : AbstractTestGraph(org.apache.jena.graph.test.AbstractTestGraph) Graph(org.apache.jena.graph.Graph) MultiUnion(org.apache.jena.graph.compose.MultiUnion)

Example 14 with MultiUnion

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 );
}
Also used : AbstractTestGraph(org.apache.jena.graph.test.AbstractTestGraph) Graph(org.apache.jena.graph.Graph) Model(org.apache.jena.rdf.model.Model) MultiUnion(org.apache.jena.graph.compose.MultiUnion)

Example 15 with MultiUnion

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 ")));
}
Also used : AbstractTestGraph(org.apache.jena.graph.test.AbstractTestGraph) Graph(org.apache.jena.graph.Graph) MultiUnion(org.apache.jena.graph.compose.MultiUnion)

Aggregations

MultiUnion (org.apache.jena.graph.compose.MultiUnion)15 Graph (org.apache.jena.graph.Graph)9 AbstractTestGraph (org.apache.jena.graph.test.AbstractTestGraph)8 GraphStatisticsHandler (org.apache.jena.graph.GraphStatisticsHandler)1 Model (org.apache.jena.rdf.model.Model)1 InfGraph (org.apache.jena.reasoner.InfGraph)1 Reasoner (org.apache.jena.reasoner.Reasoner)1