You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/05/12 20:28:07 UTC

incubator-tinkerpop git commit: ExceptStep and RetainStep no longer exist. WhereStep provides all the functionality.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 1a3a17b5c -> da05c0e33


ExceptStep and RetainStep no longer exist. WhereStep provides all the functionality.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/da05c0e3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/da05c0e3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/da05c0e3

Branch: refs/heads/master
Commit: da05c0e33af5083f12221fea45b9f10df8cb8a1a
Parents: 1a3a17b
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue May 12 12:28:03 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue May 12 12:28:03 2015 -0600

----------------------------------------------------------------------
 .../traversal/dsl/graph/GraphTraversal.java     |  27 ---
 .../gremlin/process/traversal/dsl/graph/__.java |  25 ---
 .../traversal/step/filter/ExceptStep.java       |  97 ---------
 .../traversal/step/filter/RetainStep.java       |  97 ---------
 .../step/filter/GroovyExceptTest.groovy         |  76 -------
 .../step/filter/GroovyRetainTest.groovy         |  46 -----
 .../process/GroovyProcessComputerSuite.java     |  47 ++++-
 .../process/GroovyProcessStandardSuite.java     |   4 -
 .../gremlin/process/ProcessComputerSuite.java   |  55 ++++--
 .../gremlin/process/ProcessStandardSuite.java   |   8 +-
 .../traversal/step/filter/ExceptTest.java       | 198 -------------------
 .../traversal/step/filter/RetainTest.java       |  94 ---------
 12 files changed, 83 insertions(+), 691 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index a84c923..62e1560 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -45,14 +45,12 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.filter.CoinStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.CyclicPathStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.DedupGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.ExceptStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTraversalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.IsStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.LambdaFilterStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.OrStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeGlobalStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RetainStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.SampleGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.SimplePathStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.TimeLimitStep;
@@ -132,7 +130,6 @@ import org.apache.tinkerpop.gremlin.util.function.ConstantSupplier;
 import org.javatuples.Pair;
 
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
@@ -445,18 +442,6 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.asAdmin().addStep(scope.equals(Scope.global) ? new DedupGlobalStep<>(this.asAdmin()) : new DedupLocalStep(this.asAdmin()));
     }
 
-    public default GraphTraversal<S, E> except(final String sideEffectKeyOrPathLabel) {
-        return this.asAdmin().addStep(new ExceptStep<E>(this.asAdmin(), sideEffectKeyOrPathLabel));
-    }
-
-    public default GraphTraversal<S, E> except(final E exceptObject) {
-        return this.asAdmin().addStep(new ExceptStep<>(this.asAdmin(), exceptObject));
-    }
-
-    public default GraphTraversal<S, E> except(final Collection<E> exceptCollection) {
-        return this.asAdmin().addStep(new ExceptStep<>(this.asAdmin(), exceptCollection));
-    }
-
     public default GraphTraversal<S, E> where(final Scope scope, final String startKey, final P<?> predicate) {
         return this.asAdmin().addStep(new WhereStep<>(this.asAdmin(), scope, Optional.ofNullable(startKey), predicate));
     }
@@ -575,18 +560,6 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.range(scope, 0, limit);
     }
 
-    public default GraphTraversal<S, E> retain(final String sideEffectKeyOrPathLabel) {
-        return this.asAdmin().addStep(new RetainStep<>(this.asAdmin(), sideEffectKeyOrPathLabel));
-    }
-
-    public default GraphTraversal<S, E> retain(final E retainObject) {
-        return this.asAdmin().addStep(new RetainStep<>(this.asAdmin(), retainObject));
-    }
-
-    public default GraphTraversal<S, E> retain(final Collection<E> retainCollection) {
-        return this.asAdmin().addStep(new RetainStep<>(this.asAdmin(), retainCollection));
-    }
-
     public default GraphTraversal<S, E> simplePath() {
         return this.asAdmin().addStep(new SimplePathStep<>(this.asAdmin()));
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
index 4e63693..fbb7dbc 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
@@ -31,7 +31,6 @@ import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 
-import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -303,18 +302,6 @@ public class __ {
         return __.<A>start().dedup(scope);
     }
 
-    public static <A> GraphTraversal<A, A> except(final String sideEffectKeyOrPathLabel) {
-        return __.<A>start().except(sideEffectKeyOrPathLabel);
-    }
-
-    public static <A> GraphTraversal<A, A> except(final Object exceptObject) {
-        return __.<A>start().except((A) exceptObject);
-    }
-
-    public static <A> GraphTraversal<A, A> except(final Collection<A> exceptCollection) {
-        return __.<A>start().except(exceptCollection);
-    }
-
     public static <A> GraphTraversal<A, A> has(final Traversal<?, ?> hasNextTraversal) {
         return __.<A>start().has(hasNextTraversal);
     }
@@ -423,18 +410,6 @@ public class __ {
         return __.<A>start().limit(scope, limit);
     }
 
-    public static <A> GraphTraversal<A, A> retain(final String sideEffectKeyOrPathLabel) {
-        return __.<A>start().retain(sideEffectKeyOrPathLabel);
-    }
-
-    public static <A> GraphTraversal<A, A> retain(final Object retainObject) {
-        return __.<A>start().retain((A) retainObject);
-    }
-
-    public static <A> GraphTraversal<A, A> retain(final Collection<A> retainCollection) {
-        return __.<A>start().retain(retainCollection);
-    }
-
     public static <A> GraphTraversal<A, A> simplePath() {
         return __.<A>start().simplePath();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptStep.java
deleted file mode 100644
index 8ad0749..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptStep.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
-
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
-import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public final class ExceptStep<S> extends FilterStep<S> {
-
-    private final String sideEffectKeyOrPathLabel;
-    private final Collection<S> exceptCollection;
-    private final S exceptObject;
-    private final short choice;
-
-    public ExceptStep(final Traversal.Admin traversal, final String sideEffectKeyOrPathLabel) {
-        super(traversal);
-        this.sideEffectKeyOrPathLabel = sideEffectKeyOrPathLabel;
-        this.exceptCollection = null;
-        this.exceptObject = null;
-        this.choice = 0;
-    }
-
-    public ExceptStep(final Traversal.Admin traversal, final Collection<S> exceptionCollection) {
-        super(traversal);
-        this.sideEffectKeyOrPathLabel = null;
-        this.exceptCollection = exceptionCollection;
-        this.exceptObject = null;
-        this.choice = 1;
-    }
-
-    public ExceptStep(final Traversal.Admin traversal, final S exceptionObject) {
-        super(traversal);
-        this.sideEffectKeyOrPathLabel = null;
-        this.exceptCollection = null;
-        this.exceptObject = exceptionObject;
-        this.choice = 2;
-    }
-
-    @Override
-    protected boolean filter(final Traverser.Admin<S> traverser) {
-        switch (this.choice) {
-            case 0: {
-                final Object except = traverser.asAdmin().getSideEffects().get(this.sideEffectKeyOrPathLabel).isPresent() ?
-                        traverser.sideEffects(this.sideEffectKeyOrPathLabel) :
-                        traverser.path(this.sideEffectKeyOrPathLabel);
-                return except instanceof Collection ?
-                        !((Collection) except).contains(traverser.get()) :
-                        !except.equals(traverser.get());
-            }
-            case 1:
-                return !this.exceptCollection.contains(traverser.get());
-            default:
-                return !this.exceptObject.equals(traverser.get());
-        }
-    }
-
-    @Override
-    public String toString() {
-        return TraversalHelper.makeStepString(this, this.sideEffectKeyOrPathLabel);
-    }
-
-    @Override
-    public Set<TraverserRequirement> getRequirements() {
-        return null == this.sideEffectKeyOrPathLabel ?
-                Collections.singleton(TraverserRequirement.OBJECT) :
-                Stream.of(TraverserRequirement.OBJECT,
-                        TraverserRequirement.SIDE_EFFECTS,
-                        TraverserRequirement.PATH).collect(Collectors.toSet());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RetainStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RetainStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RetainStep.java
deleted file mode 100644
index 06b8a62..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RetainStep.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
-
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
-import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public final class RetainStep<S> extends FilterStep<S> {
-
-    private final String sideEffectKeyOrPathLabel;
-    private final Collection<S> retainCollection;
-    private final S retainObject;
-    private final short choice;
-
-    public RetainStep(final Traversal.Admin traversal, final String sideEffectKeyOrPathLabel) {
-        super(traversal);
-        this.sideEffectKeyOrPathLabel = sideEffectKeyOrPathLabel;
-        this.retainCollection = null;
-        this.retainObject = null;
-        this.choice = 0;
-    }
-
-    public RetainStep(final Traversal.Admin traversal, final Collection<S> retainCollection) {
-        super(traversal);
-        this.sideEffectKeyOrPathLabel = null;
-        this.retainCollection = retainCollection;
-        this.retainObject = null;
-        this.choice = 1;
-    }
-
-    public RetainStep(final Traversal.Admin traversal, final S retainObject) {
-        super(traversal);
-        this.sideEffectKeyOrPathLabel = null;
-        this.retainCollection = null;
-        this.retainObject = retainObject;
-        this.choice = 2;
-    }
-
-    @Override
-    protected boolean filter(final Traverser.Admin<S> traverser) {
-        switch (this.choice) {
-            case 0: {
-                final Object retain = traverser.asAdmin().getSideEffects().get(this.sideEffectKeyOrPathLabel).isPresent() ?
-                        traverser.sideEffects(this.sideEffectKeyOrPathLabel) :
-                        traverser.path(this.sideEffectKeyOrPathLabel);
-                return retain instanceof Collection ?
-                        ((Collection) retain).contains(traverser.get()) :
-                        retain.equals(traverser.get());
-            }
-            case 1:
-                return this.retainCollection.contains(traverser.get());
-            default:
-                return this.retainObject.equals(traverser.get());
-        }
-    }
-
-    @Override
-    public String toString() {
-        return TraversalHelper.makeStepString(this, this.sideEffectKeyOrPathLabel);
-    }
-
-    @Override
-    public Set<TraverserRequirement> getRequirements() {
-        return null == this.sideEffectKeyOrPathLabel ?
-                Collections.singleton(TraverserRequirement.OBJECT) :
-                Stream.of(TraverserRequirement.OBJECT,
-                        TraverserRequirement.SIDE_EFFECTS,
-                        TraverserRequirement.PATH).collect(Collectors.toSet());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy
deleted file mode 100644
index 96b68b9..0000000
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.process.traversal.step.filter
-
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper
-import org.apache.tinkerpop.gremlin.process.traversal.Path
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal
-import org.apache.tinkerpop.gremlin.structure.Vertex
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- * @author Daniel Kuppitz (http://gremlin.guru)
- */
-public abstract class GroovyExceptTest {
-
-    public static class Traversals extends ExceptTest {
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_VX1X_out_exceptXg_v2X(final Object v1Id, final Object v2Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).out.except(g.V(v2Id).next())", g, "v1Id", v1Id, "v2Id", v2Id);
-        }
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_VX1X_out_aggregateXxX_out_exceptXxX(final Object v1Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).out.aggregate('x').out.except('x')", g, "v1Id", v1Id);
-        }
-
-        @Override
-        public Traversal<Vertex, String> get_g_VX1X_outXcreatedX_inXcreatedX_exceptXg_v1X_name(final Object v1Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).out('created').in('created').except(g.V(v1Id).next()).values('name')", g, "v1Id", v1Id);
-        }
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_V_exceptXg_V_toListX() {
-            TraversalScriptHelper.compute("g.V.out.except(g.V.toList())", g);
-        }
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_V_exceptXX() {
-            TraversalScriptHelper.compute("g.V.out.except([])", g);
-        }
-
-        @Override
-        public Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_exceptXeX_aggregateXeX_otherVX_emit_path(
-                final Object v1Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).repeat(__.bothE('created').except('e').aggregate('e').otherV).emit.path", g, "v1Id", v1Id);
-        }
-
-        @Override
-        public Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(
-                final Object v1Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).repeat(__.bothE('created').dedup.otherV).emit.path", g, "v1Id", v1Id);
-        }
-
-        @Override
-        public Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(final Object v1Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).as('a').out('created').in('created').except('a').name", g, "v1Id", v1Id);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyRetainTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyRetainTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyRetainTest.groovy
deleted file mode 100644
index 5067093..0000000
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyRetainTest.groovy
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.process.traversal.step.filter
-
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal
-import org.apache.tinkerpop.gremlin.structure.Vertex
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-public abstract class GroovyRetainTest {
-
-    public static class Traversals extends RetainTest {
-        @Override
-        public Traversal<Vertex, Vertex> get_g_VX1X_out_retainXg_v2X(final Object v1Id, final Object v2Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).out.retain(g.V(v2Id).next())", g, "v1Id", v1Id, "v2Id", v2Id);
-        }
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_VX1X_out_aggregateXxX_out_retainXxX(final Object v1Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).out.aggregate('x').out.retain('x')", g, "v1Id", v1Id);
-        }
-
-        @Override
-        public Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_retainXaX_name(final Object v1Id) {
-            TraversalScriptHelper.compute("g.V(v1Id).as('a').out('created').in('created').retain('a').name", g, "v1Id", v1Id);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessComputerSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessComputerSuite.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessComputerSuite.java
index ed6cfee..cc60acd 100644
--- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessComputerSuite.java
+++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessComputerSuite.java
@@ -24,10 +24,47 @@ import org.apache.tinkerpop.gremlin.groovy.loaders.SugarLoader;
 import org.apache.tinkerpop.gremlin.groovy.util.SugarTestHelper;
 import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.process.computer.ranking.PageRankVertexProgramTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.branch.*;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.*;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.*;
-import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.*;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.GroovyBranchTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.GroovyChooseTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.GroovyLocalTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.GroovyRepeatTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.GroovyUnionTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyAndTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyCoinTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyCyclicPathTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyDedupTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyFilterTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyHasNotTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyHasTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyIsTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyOrTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyRangeTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovySampleTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovySimplePathTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyWhereTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyCoalesceTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyCountTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyFoldTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyMapTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyMaxTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyMeanTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyMinTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyOrderTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyPathTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyPropertiesTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovySelectTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovySumTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyUnfoldTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyValueMapTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroovyVertexTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovyAggregateTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovyGroupCountTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovyGroupTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovyProfileTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovySackTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovySideEffectCapTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovyStoreTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroovyTreeTest;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.StructureStandardSuite;
 import org.junit.runners.model.InitializationError;
@@ -64,14 +101,12 @@ public class GroovyProcessComputerSuite extends ProcessComputerSuite {
             GroovyCoinTest.Traversals.class,
             GroovyCyclicPathTest.Traversals.class,
             GroovyDedupTest.Traversals.class,
-            GroovyExceptTest.Traversals.class,
             GroovyFilterTest.Traversals.class,
             GroovyHasNotTest.Traversals.class,
             GroovyHasTest.Traversals.class,
             GroovyIsTest.Traversals.class,
             GroovyOrTest.Traversals.class,
             GroovyRangeTest.Traversals.class,
-            GroovyRetainTest.Traversals.class,
             GroovySampleTest.Traversals.class,
             GroovySimplePathTest.Traversals.class,
             GroovyWhereTest.Traversals.class,

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java
index 75aa509..b67d6e1 100644
--- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java
+++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/process/GroovyProcessStandardSuite.java
@@ -34,14 +34,12 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyCoinTest
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyCyclicPathTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyDedupTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyDropTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyExceptTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyFilterTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyHasNotTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyHasTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyIsTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyOrTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyRangeTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyRetainTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovySampleTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovySimplePathTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.GroovyWhereTest;
@@ -107,14 +105,12 @@ public class GroovyProcessStandardSuite extends ProcessStandardSuite {
             GroovyCyclicPathTest.Traversals.class,
             GroovyDedupTest.Traversals.class,
             GroovyDropTest.Traversals.class,
-            GroovyExceptTest.Traversals.class,
             GroovyFilterTest.Traversals.class,
             GroovyHasNotTest.Traversals.class,
             GroovyHasTest.Traversals.class,
             GroovyIsTest.Traversals.class,
             GroovyOrTest.Traversals.class,
             GroovyRangeTest.Traversals.class,
-            GroovyRetainTest.Traversals.class,
             GroovySampleTest.Traversals.class,
             GroovySimplePathTest.Traversals.class,
             GroovyWhereTest.Traversals.class,

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
index f093d31..e060974 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
@@ -24,23 +24,54 @@ import org.apache.tinkerpop.gremlin.process.computer.GraphComputer;
 import org.apache.tinkerpop.gremlin.process.computer.GraphComputerTest;
 import org.apache.tinkerpop.gremlin.process.computer.ranking.PageRankVertexProgramTest;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.traversal.step.branch.*;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.*;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.*;
-import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.*;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.BranchTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.ChooseTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.LocalTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.RepeatTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.branch.UnionTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.AndTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.CoinTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.CyclicPathTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.DedupTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasNotTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.IsTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.OrTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.SampleTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.SimplePathTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.CoalesceTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.CountTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.FoldTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MapTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MaxTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MeanTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.MinTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.PathTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.SelectTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.SumTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.UnfoldTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.ValueMapTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AggregateTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupCountTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.ProfileTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SackTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectCapTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.StoreTest;
+import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.TreeTest;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategyProcessTest;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComputerVerificationException;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComputerVerificationStrategyProcessTest;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategyProcessTest;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.StructureStandardSuite;
-import org.junit.internal.AssumptionViolatedException;
-import org.junit.internal.runners.model.EachTestNotifier;
-import org.junit.runner.notification.RunNotifier;
-import org.junit.runner.notification.StoppedByUserException;
 import org.junit.runners.model.InitializationError;
 import org.junit.runners.model.RunnerBuilder;
-import org.junit.runners.model.Statement;
 
 import java.util.stream.Stream;
 
@@ -79,14 +110,12 @@ public class ProcessComputerSuite extends AbstractGremlinSuite {
             CoinTest.Traversals.class,
             CyclicPathTest.Traversals.class,
             DedupTest.Traversals.class,
-            ExceptTest.Traversals.class,
             FilterTest.Traversals.class,
             HasNotTest.Traversals.class,
             HasTest.Traversals.class,
             IsTest.Traversals.class,
             OrTest.Traversals.class,
             RangeTest.Traversals.class,
-            RetainTest.Traversals.class,
             SampleTest.Traversals.class,
             SimplePathTest.Traversals.class,
             WhereTest.Traversals.class,
@@ -150,14 +179,12 @@ public class ProcessComputerSuite extends AbstractGremlinSuite {
             CoinTest.class,
             CyclicPathTest.class,
             DedupTest.class,
-            ExceptTest.class,
             FilterTest.class,
             HasNotTest.class,
             HasTest.class,
             IsTest.class,
             OrTest.class,
             RangeTest.class,
-            RetainTest.class,
             SampleTest.class,
             SimplePathTest.class,
             WhereTest.class,

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
index 7901987..fa1d376 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
@@ -33,14 +33,12 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.filter.CoinTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.CyclicPathTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.DedupTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.ExceptTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasNotTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.IsTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.OrTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RetainTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.SampleTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.SimplePathTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest;
@@ -76,8 +74,8 @@ import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.Elemen
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.EventStrategyProcessTest;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategyProcessTest;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategyProcessTest;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategyProcessTest;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComputerVerificationStrategyProcessTest;
+import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategyProcessTest;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.StructureStandardSuite;
 import org.junit.runners.model.InitializationError;
@@ -113,14 +111,12 @@ public class ProcessStandardSuite extends AbstractGremlinSuite {
             CyclicPathTest.Traversals.class,
             DedupTest.Traversals.class,
             DropTest.Traversals.class,
-            ExceptTest.Traversals.class,
             FilterTest.Traversals.class,
             HasNotTest.Traversals.class,
             HasTest.Traversals.class,
             IsTest.Traversals.class,
             OrTest.Traversals.class,
             RangeTest.Traversals.class,
-            RetainTest.Traversals.class,
             SampleTest.Traversals.class,
             SimplePathTest.Traversals.class,
             WhereTest.Traversals.class,
@@ -196,14 +192,12 @@ public class ProcessStandardSuite extends AbstractGremlinSuite {
             CyclicPathTest.class,
             DedupTest.class,
             DropTest.class,
-            ExceptTest.class,
             FilterTest.class,
             HasNotTest.class,
             HasTest.class,
             IsTest.class,
             OrTest.class,
             RangeTest.class,
-            RetainTest.class,
             SampleTest.class,
             SimplePathTest.class,
             WhereTest.class,

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java
deleted file mode 100644
index e3c2503..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.process.traversal.Path;
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.*;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.bothE;
-import static org.junit.Assert.*;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- * @author Stephen Mallette (http://stephen.genoprime.com)
- * @author Daniel Kuppitz (http://gremlin.guru)
- */
-@RunWith(GremlinProcessRunner.class)
-public abstract class ExceptTest extends AbstractGremlinProcessTest {
-
-    public abstract Traversal<Vertex, Vertex> get_g_VX1X_out_exceptXg_v2X(final Object v1Id, final Object v2Id);
-
-    public abstract Traversal<Vertex, Vertex> get_g_VX1X_out_aggregateXxX_out_exceptXxX(final Object v1Id);
-
-    public abstract Traversal<Vertex, String> get_g_VX1X_outXcreatedX_inXcreatedX_exceptXg_v1X_name(final Object v1Id);
-
-    public abstract Traversal<Vertex, Vertex> get_g_V_exceptXg_V_toListX();
-
-    public abstract Traversal<Vertex, Vertex> get_g_V_exceptXX();
-
-    public abstract Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_exceptXeX_aggregateXeX_otherVX_emit_path(final Object v1Id);
-
-    public abstract Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(final Object v1Id);
-
-    public abstract Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(final Object v1Id);
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_out_exceptXg_v2X() {
-        final Traversal<Vertex, Vertex> traversal = get_g_VX1X_out_exceptXg_v2X(convertToVertexId("marko"), convertToVertexId("vadas"));
-        printTraversalForm(traversal);
-        int counter = 0;
-        final Set<Vertex> vertices = new HashSet<>();
-        while (traversal.hasNext()) {
-            counter++;
-            final Vertex vertex = traversal.next();
-            vertices.add(vertex);
-            assertTrue(vertex.value("name").equals("josh") || vertex.value("name").equals("lop"));
-        }
-        assertEquals(2, counter);
-        assertEquals(2, vertices.size());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_out_aggregateXxX_out_exceptXxX() {
-        final Traversal<Vertex, Vertex> traversal = get_g_VX1X_out_aggregateXxX_out_exceptXxX(convertToVertexId("marko"));
-        printTraversalForm(traversal);
-        assertEquals("ripple", traversal.next().<String>value("name"));
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_outXcreatedX_inXcreatedX_exceptXg_v1X_name() {
-        final Traversal<Vertex, String> traversal = get_g_VX1X_outXcreatedX_inXcreatedX_exceptXg_v1X_name(convertToVertexId("marko"));
-        printTraversalForm(traversal);
-        final List<String> names = Arrays.asList(traversal.next(), traversal.next());
-        assertFalse(traversal.hasNext());
-        assertEquals(2, names.size());
-        assertTrue(names.contains("peter"));
-        assertTrue(names.contains("josh"));
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_V_exceptXg_V_toListX() {
-        final Traversal<Vertex, Vertex> traversal = get_g_V_exceptXg_V_toListX();
-        printTraversalForm(traversal);
-        final List<Vertex> vertices = traversal.toList();
-        assertEquals(0, vertices.size());
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_V_exceptXX() {
-        final Traversal<Vertex, Vertex> traversal = get_g_V_exceptXX();
-        printTraversalForm(traversal);
-        final List<Vertex> vertices = traversal.toList();
-        assertEquals(6, vertices.size());
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_repeatXbothEXcreatedX_exceptXeX_aggregateXeX_otherVX_emit_path() {
-        final Traversal<Vertex, Path> traversal = get_g_VX1X_repeatXbothEXcreatedX_exceptXeX_aggregateXeX_otherVX_emit_path(convertToVertexId("marko"));
-        printTraversalForm(traversal);
-        final List<Path> paths = traversal.toList();
-        assertEquals(4, paths.size());
-        assertEquals(1, paths.stream().filter(path -> path.size() == 3).count());
-        assertEquals(2, paths.stream().filter(path -> path.size() == 5).count());
-        assertEquals(1, paths.stream().filter(path -> path.size() == 7).count());
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path() {
-        final Traversal<Vertex, Path> traversal = get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(convertToVertexId("marko"));
-        printTraversalForm(traversal);
-        final List<Path> paths = traversal.toList();
-        assertEquals(4, paths.size());
-        assertEquals(1, paths.stream().filter(path -> path.size() == 3).count());
-        assertEquals(2, paths.stream().filter(path -> path.size() == 5).count());
-        assertEquals(1, paths.stream().filter(path -> path.size() == 7).count());
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name() {
-        final Traversal<Vertex, String> traversal = get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(convertToVertexId("marko"));
-        printTraversalForm(traversal);
-        checkResults(Arrays.asList("peter", "josh"), traversal);
-    }
-
-    @UseEngine(TraversalEngine.Type.STANDARD)
-    @UseEngine(TraversalEngine.Type.COMPUTER)
-    public static class Traversals extends ExceptTest {
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_VX1X_out_exceptXg_v2X(final Object v1Id, final Object v2Id) {
-            return g.V(v1Id).out().except(g.V(v2Id).next());
-        }
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_VX1X_out_aggregateXxX_out_exceptXxX(final Object v1Id) {
-            return g.V(v1Id).out().aggregate("x").out().except("x");
-        }
-
-        @Override
-        public Traversal<Vertex, String> get_g_VX1X_outXcreatedX_inXcreatedX_exceptXg_v1X_name(final Object v1Id) {
-            return g.V(v1Id).out("created").in("created").except(g.V(v1Id).next()).values("name");
-        }
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_V_exceptXg_V_toListX() {
-            return g.V().except(g.V().toList());
-        }
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_V_exceptXX() {
-            return g.V().except(Collections.emptyList());
-        }
-
-        @Override
-        public Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_exceptXeX_aggregateXeX_otherVX_emit_path(final Object v1Id) {
-            return g.V(v1Id).repeat(bothE("created").except("e").aggregate("e").otherV()).emit().path();
-        }
-
-        @Override
-        public Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(final Object v1Id) {
-            return g.V(v1Id).repeat(bothE("created").dedup().otherV()).emit().path();
-        }
-
-        @Override
-        public Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(final Object v1Id) {
-            return g.V(v1Id).as("a").out("created").in("created").except("a").values("name");
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/da05c0e3/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RetainTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RetainTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RetainTest.java
deleted file mode 100644
index 75d9e89..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RetainTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-@RunWith(GremlinProcessRunner.class)
-public abstract class RetainTest extends AbstractGremlinProcessTest {
-
-    public abstract Traversal<Vertex, Vertex> get_g_VX1X_out_retainXg_v2X(final Object v1Id, final Object v2Id);
-
-    public abstract Traversal<Vertex, Vertex> get_g_VX1X_out_aggregateXxX_out_retainXxX(final Object v1Id);
-
-    public abstract Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_retainXaX_name(final Object v1Id);
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_out_retainXg_v2X() {
-        final Traversal<Vertex, Vertex> traversal = get_g_VX1X_out_retainXg_v2X(convertToVertexId("marko"), convertToVertexId("vadas"));
-        printTraversalForm(traversal);
-        assertEquals("vadas", traversal.next().<String>value("name"));
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_out_aggregateXxX_out_retainXxX() {
-        final Traversal<Vertex, Vertex> traversal = get_g_VX1X_out_aggregateXxX_out_retainXxX(convertToVertexId("marko"));
-        printTraversalForm(traversal);
-        assertEquals("lop", traversal.next().<String>value("name"));
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_VX1X_asXaX_outXcreatedX_inXcreatedX_retainXaX_name() {
-        final Traversal<Vertex, String> traversal = get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_retainXaX_name(convertToVertexId("marko"));
-        printTraversalForm(traversal);
-        assertEquals("marko", traversal.next());
-        assertFalse(traversal.hasNext());
-    }
-
-    @UseEngine(TraversalEngine.Type.STANDARD)
-    @UseEngine(TraversalEngine.Type.COMPUTER)
-    public static class Traversals extends RetainTest {
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_VX1X_out_retainXg_v2X(final Object v1Id, final Object v2Id) {
-            return g.V(v1Id).out().retain(g.V(v2Id).next());
-        }
-
-        @Override
-        public Traversal<Vertex, Vertex> get_g_VX1X_out_aggregateXxX_out_retainXxX(final Object v1Id) {
-            return g.V(v1Id).out().aggregate("x").out().retain("x");
-        }
-
-        @Override
-        public Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_retainXaX_name(final Object v1Id) {
-            return g.V(v1Id).as("a").out("created").in("created").retain("a").values("name");
-        }
-    }
-}