@Test
public void degreeCounting() throws Exception {
int numV = 200;
int numE = generateRandomGraph(numV);
clopen();
final TitanGraphComputer computer = graph.compute();
computer.resultMode(TitanGraphComputer.ResultMode.NONE);
computer.workers(4);
computer.program(new DegreeCounter());
computer.mapReduce(new DegreeMapper());
ComputerResult result = computer.submit().get();
System.out.println("Execution time (ms) ["+numV+"|"+numE+"]: " + result.memory().getRuntime());
assertTrue(result.memory().exists(DegreeMapper.DEGREE_RESULT));
Map<Long,Integer> degrees = result.memory().get(DegreeMapper.DEGREE_RESULT);
assertNotNull(degrees);
assertEquals(numV,degrees.size());
int totalCount = 0;
for (Map.Entry<Long,Integer> entry : degrees.entrySet()) {
int degree = entry.getValue();
TitanVertex v = getV(tx, entry.getKey().longValue());
int count = v.value("uid");
assertEquals(count,degree);
totalCount+= degree;
}
assertEquals(numV*(numV+1)/2,totalCount);
assertEquals(1,result.memory().getIteration());
}