}
public void doBasicTest(TransitiveGraphCache cache) {
// Test forward property patterns
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(a, directP, null)),
new Object[] {
new Triple(a, closedP, a),
new Triple(a, closedP, b)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(a, closedP, null)),
new Object[] {
new Triple(a, closedP, a),
new Triple(a, closedP, b),
new Triple(a, closedP, c),
new Triple(a, closedP, e),
new Triple(a, closedP, f),
new Triple(a, closedP, g)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(a, closedP, g)),
new Object[] {
new Triple(a, closedP, g),
});
// Test backward patterns
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(null, directP, f)),
new Object[] {
new Triple(e, closedP, f),
new Triple(f, closedP, f),
new Triple(c, closedP, f)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(null, closedP, f)),
new Object[] {
new Triple(f, closedP, f),
new Triple(e, closedP, f),
new Triple(b, closedP, f),
new Triple(c, closedP, f),
new Triple(a, closedP, f),
new Triple(d, closedP, f)
});
// List all cases
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(null, directP, null)),
new Object[] {
new Triple(a, closedP, a),
new Triple(a, closedP, b),
new Triple(d, closedP, d),
new Triple(d, closedP, b),
new Triple(b, closedP, b),
new Triple(b, closedP, e),
new Triple(b, closedP, c),
new Triple(e, closedP, e),
new Triple(e, closedP, f),
new Triple(c, closedP, c),
new Triple(c, closedP, f),
new Triple(f, closedP, f),
new Triple(f, closedP, g),
new Triple(g, closedP, g)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(null, closedP, null)),
new Object[] {
new Triple(a, closedP, a),
new Triple(a, closedP, b),
new Triple(a, closedP, c),
new Triple(a, closedP, e),
new Triple(a, closedP, f),
new Triple(a, closedP, g),
new Triple(d, closedP, d),
new Triple(d, closedP, b),
new Triple(d, closedP, e),
new Triple(d, closedP, c),
new Triple(d, closedP, f),
new Triple(d, closedP, g),
new Triple(b, closedP, b),
new Triple(b, closedP, e),
new Triple(b, closedP, c),
new Triple(b, closedP, f),
new Triple(b, closedP, g),
new Triple(e, closedP, e),
new Triple(e, closedP, f),
new Triple(e, closedP, g),
new Triple(c, closedP, c),
new Triple(c, closedP, f),
new Triple(c, closedP, g),
new Triple(f, closedP, f),
new Triple(f, closedP, g),
new Triple(g, closedP, g)
});
// Add a look in the graph and check the loop from each starting position
cache.addRelation(new Triple(g, closedP, e));
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(e, directP, null)),
new Object[] {
new Triple(e, closedP, e),
new Triple(e, closedP, f),
new Triple(e, closedP, g)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(f, directP, null)),
new Object[] {
new Triple(f, closedP, f),
new Triple(f, closedP, g),
new Triple(f, closedP, e)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(g, directP, null)),
new Object[] {
new Triple(g, closedP, g),
new Triple(g, closedP, e),
new Triple(g, closedP, f)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(null, directP, e)),
new Object[] {
new Triple(e, closedP, e),
new Triple(f, closedP, e),
new Triple(b, closedP, e),
new Triple(c, closedP, e),
new Triple(g, closedP, e)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(null, directP, f)),
new Object[] {
new Triple(f, closedP, f),
new Triple(g, closedP, f),
new Triple(b, closedP, f),
new Triple(c, closedP, f),
new Triple(e, closedP, f)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(null, directP, g)),
new Object[] {
new Triple(g, closedP, g),
new Triple(e, closedP, g),
new Triple(b, closedP, g),
new Triple(c, closedP, g),
new Triple(f, closedP, g)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(g, closedP, null)),
new Object[] {
new Triple(g, closedP, g),
new Triple(g, closedP, e),
new Triple(g, closedP, f)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(e, closedP, null)),
new Object[] {
new Triple(e, closedP, g),
new Triple(e, closedP, e),
new Triple(e, closedP, f)
});
TestUtil.assertIteratorValues(this,
cache.find(new TriplePattern(f, closedP, null)),
new Object[] {
new Triple(f, closedP, g),
new Triple(f, closedP, e),
new Triple(f, closedP, f)
});