in gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputerTest.java [1858:1947]
public void execute(final Vertex vertex, final Messenger messenger, final Memory memory) {
switch (this.state) {
case SOFTWARE_ONLY: {
assertEquals("software", vertex.label());
assertFalse(vertex.edges(Direction.OUT).hasNext());
assertTrue(vertex.edges(Direction.IN).hasNext());
assertTrue(vertex.edges(Direction.IN, "created").hasNext());
assertFalse(vertex.edges(Direction.IN, "knows").hasNext());
break;
}
case PEOPLE_ONLY: {
assertEquals("person", vertex.label());
assertFalse(vertex.edges(Direction.IN, "created").hasNext());
assertTrue(IteratorUtils.count(vertex.edges(Direction.BOTH)) > 0);
break;
}
case KNOWS_ONLY: {
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH, "created")));
if (vertex.value("name").equals("marko"))
assertEquals(2, IteratorUtils.count(vertex.edges(Direction.BOTH, "knows")));
else if (vertex.value("name").equals("vadas"))
assertEquals(1, IteratorUtils.count(vertex.edges(Direction.IN, "knows")));
else if (vertex.value("name").equals("josh"))
assertEquals(1, IteratorUtils.count(vertex.edges(Direction.IN, "knows")));
else {
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH, "knows")));
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH)));
}
break;
}
case PEOPLE_KNOWS_ONLY: {
assertEquals("person", vertex.label());
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH, "created")));
if (vertex.value("name").equals("marko"))
assertEquals(2, IteratorUtils.count(vertex.edges(Direction.BOTH, "knows")));
else if (vertex.value("name").equals("vadas"))
assertEquals(1, IteratorUtils.count(vertex.edges(Direction.IN, "knows")));
else if (vertex.value("name").equals("josh"))
assertEquals(1, IteratorUtils.count(vertex.edges(Direction.IN, "knows")));
else {
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH, "knows")));
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH)));
}
break;
}
case PEOPLE_KNOWS_WELL_ONLY: {
assertEquals("person", vertex.label());
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH, "created")));
if (vertex.value("name").equals("marko")) {
assertEquals(1, IteratorUtils.count(vertex.edges(Direction.BOTH, "knows")));
assertEquals(1.0, vertex.edges(Direction.OUT, "knows").next().value("weight"), 0.001);
} else if (vertex.value("name").equals("vadas"))
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.IN, "knows")));
else if (vertex.value("name").equals("josh")) {
assertEquals(1, IteratorUtils.count(vertex.edges(Direction.IN, "knows")));
assertEquals(1.0, vertex.edges(Direction.IN, "knows").next().value("weight"), 0.001);
} else {
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH, "knows")));
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH)));
}
break;
}
case VERTICES_ONLY: {
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH)));
break;
}
case ONE_OUT_EDGE_ONLY: {
if (vertex.label().equals("software") || vertex.value("name").equals("vadas"))
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH)));
else {
assertEquals(1, IteratorUtils.count(vertex.edges(Direction.OUT)));
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.IN)));
assertEquals(1, IteratorUtils.count(vertex.edges(Direction.BOTH)));
}
break;
}
case OUT_EDGES_ONLY: {
if (vertex.label().equals("software") || vertex.value("name").equals("vadas"))
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.BOTH)));
else {
assertTrue(IteratorUtils.count(vertex.edges(Direction.OUT)) > 0);
assertEquals(0, IteratorUtils.count(vertex.edges(Direction.IN)));
assertEquals(IteratorUtils.count(vertex.edges(Direction.OUT)), IteratorUtils.count(vertex.edges(Direction.BOTH)));
}
break;
}
default:
throw new IllegalStateException("This is an illegal state for this test case: " + this.state);
}
}