private static void assumeRequirementsAreMetForTest(final Set<FeatureRequirement> featureRequirementSet,
                                                        final Graph.Features features, final boolean staticCheck)
            throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
        for (FeatureRequirement fr : featureRequirementSet) {
            try {
                assumeThat(String.format("Features of the graph do not support all of the features required by this test so it will be ignored: %s.%s=%s",
                        fr.featureClass().getSimpleName(), fr.feature(), fr.supported()),
                        features.supports(fr.featureClass(), fr.feature()), is(fr.supported()));
            } catch (NoSuchMethodException nsme) {
                throw new NoSuchMethodException(String.format("[supports%s] is not a valid feature on %s", fr.feature(), fr.featureClass()));
            } catch (UnsupportedOperationException uoe) {
                // no worries if this is a check of static features - it just means that we can't use the cache to
                // support this check and will have to incur the cost of instantiating a graph instance directly. but,
                // if this is not a static check then something else is amiss and we should throw.
                if (staticCheck) throw uoe;
            }
        }
    }
Sets up g based on the current graph configuration and checks required features for the test.

@author Stephen Mallette (http://stephen.genoprime.com)
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java