The test suite doesn't seem to enforce behavior related to self-relating edges. TinkerGraph does this:
gremlin> g = TinkerGraph.open().traversal() ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] gremlin> g.addV().as('a').addE('self').to('a') ==>e[1][0-self->0] gremlin> g.E() ==>e[1][0-self->0] gremlin> g.V().bothE().count() ==>2 Should bothE() return 2 in this case or 1? I think that we've said in the past that g.E() is the same as g.V().outE() or g.V().inE(), but not necessarily g.V().bothE(). Thoughts?