"2 4",
"4 1",
"5 3"
};
GiraphConfiguration conf = new GiraphConfiguration();
conf.setVertexClass(TestVertexDoNothing.class);
conf.setOutEdgesClass(ByteArrayEdges.class);
conf.setVertexInputFormatClass(IntIntTextVertexValueInputFormat.class);
conf.setEdgeInputFormatClass(IntNullTextEdgeInputFormat.class);
conf.setVertexOutputFormatClass(IdWithValueTextOutputFormat.class);
// Run a job with a vertex that does nothing
Iterable<String> results = InternalVertexRunner.run(conf, vertices, edges);
Map<Integer, Integer> values = parseResults(results);
// Check that all vertices with either initial values or outgoing edges
// have been created
assertEquals(5, values.size());
// Check that the vertices have been created with correct values
assertEquals(75, (int) values.get(1));
assertEquals(34, (int) values.get(2));
assertEquals(13, (int) values.get(3));
assertEquals(32, (int) values.get(4));
// A vertex with edges but no initial value should have the default value
assertEquals(0, (int) values.get(5));
// Run a job with a custom VertexValueFactory
conf.setVertexValueFactoryClass(TestVertexValueFactory.class);
results = InternalVertexRunner.run(conf, vertices, edges);
values = parseResults(results);
// A vertex with edges but no initial value should have been constructed
// by the custom factory
assertEquals(3, (int) values.get(5));
conf = new GiraphConfiguration();
conf.setVertexClass(TestVertexWithNumEdges.class);
conf.setOutEdgesClass(ByteArrayEdges.class);
conf.setVertexInputFormatClass(IntIntTextVertexValueInputFormat.class);
conf.setEdgeInputFormatClass(IntNullTextEdgeInputFormat.class);
conf.setVertexOutputFormatClass(IdWithValueTextOutputFormat.class);
// Run a job with a vertex that counts outgoing edges
results = InternalVertexRunner.run(conf, vertices, edges);
values = parseResults(results);