public static void validateEdgeEquality(final Edge originalEdge, final Edge otherEdge) {
        assertEquals(originalEdge, otherEdge);
        assertEquals(otherEdge, originalEdge);
        assertEquals(originalEdge.id(), otherEdge.id());
        assertEquals(originalEdge.label(), otherEdge.label());
        assertEquals(originalEdge.inVertex(), otherEdge.inVertex());
        assertEquals(originalEdge.outVertex(), otherEdge.outVertex());
        assertEquals(originalEdge.keys().size(), otherEdge.keys().size());
        for (final String key : originalEdge.keys()) {
            validatePropertyEquality(originalEdge.property(key), otherEdge.property(key));
        }
    }
Used at the start of a test to make it one that should only be executed when the {@code assertNonDeterministic}
system property is set to {@code true}. Tests that call this method are ones that may sometimes fail in certain
environments or behave in other random ways. Usually such tests should be removed or re-worked, but there are
situations where that may not be possible as there is no other good way to test the feature. In these cases, the
tests won't fail a standard build. For this benefit, the downside is that the feature isn't tested as often as
it would otherwise, since the {@code assertNonDeterministic} option is not used often and definitely not in
automated builds like Travis.
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/TestHelper.java