private void testPartitionSpread(boolean flush, boolean batchCommit) { Object[] options = {option(GraphDatabaseConfiguration.IDS_FLUSH), flush}; clopen(options); int[] groupDegrees = {10,15,10,17,10,4,7,20,11}; int numVertices = setupGroupClusters(groupDegrees,batchCommit?CommitMode.BATCH:CommitMode.PER_VERTEX); IntSet partitionIds = new IntHashSet(numVertices); //to track the "spread" of partition ids for (int i=0;i<groupDegrees.length;i++) { TitanVertex g = getOnlyVertex(tx.query().has("groupid","group"+i)); assertCount(groupDegrees[i],g.edges(Direction.OUT,"contain")); assertCount(groupDegrees[i],g.edges(Direction.IN,"member")); assertCount(groupDegrees[i],g.query().direction(Direction.OUT).edges()); assertCount(groupDegrees[i],g.query().direction(Direction.IN).edges()); assertCount(groupDegrees[i]*2,g.query().edges()); for (TitanVertex v : g.query().direction(Direction.IN).labels("member").vertices()) { int pid = getPartitionID(v); partitionIds.add(pid); assertEquals(g, getOnlyElement(v.query().direction(Direction.OUT).labels("member").vertices())); VertexList vlist = v.query().direction(Direction.IN).labels("contain").vertexIds(); assertEquals(1,vlist.size()); assertEquals(pid,idManager.getPartitionId(vlist.getID(0))); assertEquals(g,vlist.get(0)); } } if (flush || !batchCommit) { //In these cases we would expect significant spread across partitions assertTrue(partitionIds.size()>numPartitions/2); //This is a probabilistic test that might fail } else { assertEquals(1,partitionIds.size()); //No spread in this case } }
vl = v.query().labels().direction(dir).interval("time", 3, 31).vertexIds(); vl.sort(); for (int i = 0; i < vl.size(); i++) assertEquals(vidsubset[i], vl.getID(i)); vl = v.query().labels().direction(dir).interval("time", 3, 31).vertexIds(); vl.sort(); for (int i = 0; i < vl.size(); i++) assertEquals(vidsubset[i], vl.getID(i));
public void neighborhoodTest() { testCreateAndRetrieveComprehensive(); log.debug("Neighborhood:"); TitanVertex n1 = tx.getVertex("name", "Node1"); TitanVertexQuery q = n1.query().direction(OUT).types(tx.getEdgeLabel("connect")); VertexList res = q.vertexIds(); assertEquals(1, res.size()); TitanVertex n2 = tx.getVertex("name", "Node2"); assertEquals(n2.getID(), res.getID(0)); }
vl = v.query().labels().direction(dir).interval("time", 3, 31).vertexIds(); vl.sort(); for (int i = 0; i < vl.size(); i++) assertEquals(vidsubset[i], vl.getID(i)); vl = v.query().labels().direction(dir).interval("time", 3, 31).vertexIds(); vl.sort(); for (int i = 0; i < vl.size(); i++) assertEquals(vidsubset[i], vl.getID(i));
vl = v.query().labels().direction(dir).interval("time", 3, 31).vertexIds(); vl.sort(); for (int i = 0; i < vl.size(); i++) assertEquals(vidsubset[i], vl.getID(i)); vl = v.query().labels().direction(dir).interval("time", 3, 31).vertexIds(); vl.sort(); for (int i = 0; i < vl.size(); i++) assertEquals(vidsubset[i], vl.getID(i));