This is an automated email from the ASF dual-hosted git repository.

colegreer pushed a commit to branch GValue-3.8
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/GValue-3.8 by this push:
     new fcf02cc13c strategy cleanup
fcf02cc13c is described below

commit fcf02cc13ca78d9079b0cfd10fc72a7e2fa2cdd2
Author: Cole-Greer <[email protected]>
AuthorDate: Mon Aug 18 19:27:24 2025 -0700

    strategy cleanup
---
 .../strategy/decoration/ConnectiveStrategy.java    |  7 ++--
 .../strategy/decoration/SubgraphStrategy.java      |  4 ---
 .../finalization/GValueReductionStrategy.java      |  3 --
 .../optimization/AdjacentToIncidentStrategy.java   |  9 +++--
 .../strategy/optimization/CountStrategy.java       |  8 ++---
 .../strategy/optimization/EarlyLimitStrategy.java  | 11 ++----
 .../optimization/FilterRankingStrategy.java        |  4 ++-
 .../optimization/IncidentToAdjacentStrategy.java   | 17 +++++----
 .../optimization/InlineFilterStrategy.java         |  8 -----
 .../optimization/PathProcessorStrategy.java        | 26 +++-----------
 .../ReservedKeysVerificationStrategy.java          |  8 -----
 .../traversal/strategy/GValueManagerVerifier.java  | 41 +++++++++++++++-------
 .../decoration/ElementIdStrategyTraverseTest.java  |  3 --
 .../strategy/decoration/PartitionStrategyTest.java |  7 ----
 .../strategy/decoration/SubgraphStrategyTest.java  |  7 ----
 .../AdjacentToIncidentStrategyTest.java            | 35 +++++++++---------
 .../ByModulatorOptimizationStrategyTest.java       |  4 ---
 .../strategy/optimization/CountStrategyTest.java   |  9 -----
 .../optimization/EarlyLimitStrategyTest.java       | 15 +++-----
 .../optimization/FilterRankingStrategyTest.java    |  6 ----
 .../IncidentToAdjacentStrategyTest.java            | 35 +++++++++---------
 .../optimization/InlineFilterStrategyTest.java     |  2 --
 .../optimization/OrderLimitStrategyTest.java       |  2 --
 .../optimization/PathProcessorStrategyTest.java    |  4 ---
 .../optimization/RepeatUnrollStrategyTest.java     |  5 ---
 25 files changed, 100 insertions(+), 180 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategy.java
index b749a1cb2e..d314b4d65c 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ConnectiveStrategy.java
@@ -34,6 +34,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
@@ -76,6 +77,7 @@ public final class ConnectiveStrategy extends 
AbstractTraversalStrategy<Traversa
     }
 
     private static void processConjunctionMarker(final Class<? extends 
ConnectiveStep> markerClass, final Traversal.Admin<?, ?> traversal) {
+
         final List<Step> steps = traversal.getSteps();
         for (int i = 0; i < steps.size(); i++) {
             final Step step = steps.get(i);
@@ -87,7 +89,6 @@ public final class ConnectiveStrategy extends 
AbstractTraversalStrategy<Traversa
                     for (int j = i - 1; j >= 0; i--, j--) {
                         final Step previousStep = steps.get(j);
                         if (legalCurrentStep(previousStep)) {
-                            // step is moving from one traversal to another. 
GValue state is unchanged so retain it
                             connectiveTraversal.addStep(0, previousStep);
                             traversal.removeStep(previousStep);
                         } else break;
@@ -98,13 +99,13 @@ public final class ConnectiveStrategy extends 
AbstractTraversalStrategy<Traversa
                     while (i < steps.size()) {
                         final Step nextStep = steps.get(i);
                         if (legalCurrentStep(nextStep)) {
-                            if (nextStep.getClass().equals(markerClass) && 
((ConnectiveStep) nextStep).getLocalChildren().isEmpty()) {
+                            if (nextStep.getClass().equals(markerClass) &&
+                                    ((ConnectiveStep) 
nextStep).getLocalChildren().isEmpty()) {
                                 final ConnectiveStep<?> nextConnectiveStep = 
(ConnectiveStep<?>) nextStep;
                                 currentStep.addLocalChild(connectiveTraversal 
= connectiveTraversal(connectiveTraversal, nextConnectiveStep));
                             } else {
                                 connectiveTraversal.addStep(nextStep);
                             }
-                            // step is moving from one traversal to another. 
GValue state is unchanged so retain it
                             traversal.removeStep(nextStep);
                         } else break;
                     }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
index 35ceec06cc..7d7ec63398 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategy.java
@@ -29,12 +29,8 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.ClassFilterSte
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.OrStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.TraversalFilterStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeOtherVertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeVertexStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyMapStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyValueStep;
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/GValueReductionStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/GValueReductionStrategy.java
index 9388a13218..6b775d56bf 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/GValueReductionStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/GValueReductionStrategy.java
@@ -23,13 +23,10 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValueHolder;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
-import org.apache.tinkerpop.gremlin.process.traversal.util.StepPosition;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 
 import java.util.List;
 
-//TODO migrate outside of strategies
-
 public final class GValueReductionStrategy extends 
AbstractTraversalStrategy<TraversalStrategy.FinalizationStrategy> implements 
TraversalStrategy.FinalizationStrategy {
 
     private static final GValueReductionStrategy INSTANCE = new 
GValueReductionStrategy();
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java
index 0d207cfe6f..0addb9f4d7 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategy.java
@@ -30,6 +30,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTraversal
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.CountGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
+import 
org.apache.tinkerpop.gremlin.process.traversal.step.stepContract.VertexStepInterface;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -116,18 +117,16 @@ public final class AdjacentToIncidentStrategy extends 
AbstractTraversalStrategy<
      */
     private static void optimizeStep(final Traversal.Admin traversal, final 
Step step) {
         final Step newStep;
-        if (step instanceof VertexStep) {
-            final VertexStep vs = (VertexStep) step;
+        if (step instanceof VertexStepInterface) {
+            final VertexStepInterface vs = (VertexStepInterface) step;
             newStep = new VertexStep<>(traversal, Edge.class, 
vs.getDirection(), vs.getEdgeLabels());
+            // TODO:: preserve GValue and leave unpinned if vs is a 
GValueHolder
         } else if (step instanceof PropertiesStep) {
             final PropertiesStep ps = (PropertiesStep) step;
             newStep = new PropertiesStep(traversal, PropertyType.PROPERTY, 
ps.getPropertyKeys());
         } else {
             return;
         }
-
-        // the newStep assumes the StepContract of original step
-        // TODO:: traversal.getGValueManager().copyRegistryState(step, 
newStep);
         TraversalHelper.replaceStep(step, newStep, traversal);
     }
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
index cf84511b5c..78c18d5260 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategy.java
@@ -149,11 +149,10 @@ public final class CountStrategy extends 
AbstractTraversalStrategy<TraversalStra
                         }
                     }
                 }
-
                 if (highRange != null) {
                     if (useNotStep || dismissCountIs) {
-                        TraversalHelper.removeStep(isStep, traversal); // 
IsStep
-                        TraversalHelper.removeStep(curr, traversal); // 
CountStep
+                        traversal.asAdmin().removeStep(isStep); // IsStep
+                        traversal.asAdmin().removeStep(curr); // CountStep
                         size -= 2;
                         if (!dismissCountIs) {
                             if (parent instanceof ConnectiveStep) {
@@ -176,14 +175,13 @@ public final class CountStrategy extends 
AbstractTraversalStrategy<TraversalStra
                                         inner.addStep(0, prev);
                                         if (pp instanceof EmptyStep || pp 
instanceof GraphStep ||
                                                 !(prev instanceof FilterStep 
|| prev instanceof SideEffectStep)) break;
-                                        TraversalHelper.removeStep(prev, 
traversal);
+                                        traversal.removeStep(prev);
                                         prev = pp;
                                         size--;
                                     }
                                 } else {
                                     inner = __.identity().asAdmin();
                                 }
-
                                 if (prev != null)
                                     TraversalHelper.replaceStep(prev, new 
NotStep<>(traversal, inner), traversal);
                                 else
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategy.java
index 5e17a6411b..1d73db22ea 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategy.java
@@ -131,12 +131,9 @@ public final class EarlyLimitStrategy
                 rangeStep = high > low ? new RangeGlobalStep(traversal, low, 
high) : new DiscardStep<>(traversal);
             }
             remove = merge;
-
-            final Step stepToRemove = merge ? insertAfter : step;
-            TraversalHelper.replaceStep(stepToRemove, rangeStep, traversal);
+            TraversalHelper.replaceStep(merge ? insertAfter : step, rangeStep, 
traversal);
         } else if (!step.getPreviousStep().equals(insertAfter, true)) {
-            // move the RangeStep behind the earliest possible map- or 
sideEffect-step.
-            // todo: reconsider clone() b/c it destroys the GValue - any 
reason to not just move the step?
+            // move the RangeStep behind the earliest possible map- or 
sideEffect-step
             rangeStep = step.clone();
             TraversalHelper.insertAfterStep(rangeStep, insertAfter, traversal);
         } else {
@@ -144,9 +141,7 @@ public final class EarlyLimitStrategy
             // already the current step's previous step
             return step;
         }
-        if (remove) {
-            traversal.removeStep(step);
-        }
+        if (remove) traversal.removeStep(step);
         return rangeStep;
     }
 
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java
index 10d7de081f..96630be526 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategy.java
@@ -38,6 +38,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTraversal
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderGlobalStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
+import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IdentityRemovalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.javatuples.Pair;
 
@@ -123,7 +124,8 @@ public final class FilterRankingStrategy extends 
AbstractTraversalStrategy<Trave
                                     modified = true;
                                 }
                                 if (stepRanking.computeIfAbsent(step, 
FilterRankingStrategy::getStepRank) > nextRank) {
-                                    TraversalHelper.moveStep(nextStep, i, t);
+                                    t.removeStep(nextStep);
+                                    t.addStep(i, nextStep);
                                     modified = true;
                                 }
                             }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
index 1c9193e05d..c73071f8e4 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategy.java
@@ -31,6 +31,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.PathStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.TreeStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.TreeSideEffectStep;
+import 
org.apache.tinkerpop.gremlin.process.traversal.step.stepContract.VertexStepInterface;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Direction;
@@ -89,8 +90,8 @@ public final class IncidentToAdjacentStrategy extends 
AbstractTraversalStrategy<
      * otherwise <code>false</code>
      */
     private static boolean isOptimizable(final Step step1, final Step step2) {
-        if (step1 instanceof VertexStep && ((VertexStep) step1).returnsEdge() 
&& step1.getLabels().isEmpty()) {
-            final Direction step1Dir = ((VertexStep) step1).getDirection();
+        if (step1 instanceof VertexStepInterface && ((VertexStepInterface) 
step1).returnsEdge() && step1.getLabels().isEmpty()) {
+            final Direction step1Dir = ((VertexStepInterface) 
step1).getDirection();
             if (step1Dir.equals(Direction.BOTH)) {
                 return step2 instanceof EdgeOtherVertexStep;
             }
@@ -108,14 +109,12 @@ public final class IncidentToAdjacentStrategy extends 
AbstractTraversalStrategy<
      * @param step1     the edge-emitting step to replace
      * @param step2     the vertex-emitting step to replace
      */
-    private static void optimizeSteps(final Traversal.Admin traversal, final 
VertexStep step1, final Step step2) {
+    private static void optimizeSteps(final Traversal.Admin traversal, final 
VertexStepInterface step1, final Step step2) {
         final Step newStep = new VertexStep(traversal, Vertex.class, 
step1.getDirection(), step1.getEdgeLabels());
+        //TODO:: preserve GValue and leave unpinned if step1 is a GValueHolder
         for (final String label : (Iterable<String>) step2.getLabels()) {
             newStep.addLabel(label);
         }
-
-        // the newStep assumes the StepContract of original step
-        // TODO:: traversal.getGValueManager().copyRegistryState(step1, 
newStep);
         TraversalHelper.replaceStep(step1, newStep, traversal);
         traversal.removeStep(step2);
     }
@@ -135,7 +134,7 @@ public final class IncidentToAdjacentStrategy extends 
AbstractTraversalStrategy<
             return;
         }
         
////////////////////////////////////////////////////////////////////////////
-        final Collection<Pair<VertexStep, Step>> stepsToReplace = new 
ArrayList<>();
+        final Collection<Pair<VertexStepInterface, Step>> stepsToReplace = new 
ArrayList<>();
         Step prev = null;
         for (final Step curr : traversal.getSteps()) {
             if (curr instanceof TraversalParent) {
@@ -143,12 +142,12 @@ public final class IncidentToAdjacentStrategy extends 
AbstractTraversalStrategy<
                 ((TraversalParent) 
curr).getGlobalChildren().forEach(this::apply);
             }
             if (isOptimizable(prev, curr)) {
-                stepsToReplace.add(Pair.with((VertexStep) prev, curr));
+                stepsToReplace.add(Pair.with((VertexStepInterface) prev, 
curr));
             }
             prev = curr;
         }
         if (!stepsToReplace.isEmpty()) {
-            for (final Pair<VertexStep, Step> pair : stepsToReplace) {
+            for (final Pair<VertexStepInterface, Step> pair : stepsToReplace) {
                 optimizeSteps(traversal, pair.getValue0(), pair.getValue1());
             }
         }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
index f397ee7e11..f09c3d01fb 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategy.java
@@ -139,7 +139,6 @@ public final class InlineFilterStrategy extends 
AbstractTraversalStrategy<Traver
                                 
hasContainer.getPredicate().getGValues().iterator().next() :
                                 GValue.ofString((String) 
hasContainer.getValue()));
                         step.removeHasContainer(hasContainer);
-
                     } else if (hasContainer.getBiPredicate() == 
Contains.within &&
                             hasContainer.getValue() instanceof Collection &&
                             ((Collection) 
hasContainer.getValue()).containsAll(Arrays.asList(GValue.resolveToValues(edgeLabelGValues.toArray()))))
 {
@@ -214,7 +213,6 @@ public final class InlineFilterStrategy extends 
AbstractTraversalStrategy<Traver
         String key = null;
         P predicate = null;
         final List<String> labels = new ArrayList<>();
-        final List<Step> stepsToRemoveFromManager = new ArrayList<>();
         for (final Traversal.Admin<?, ?> childTraversal : 
step.getLocalChildren()) {
             InlineFilterStrategy.instance().apply(childTraversal);
             for (final Step<?, ?> childStep : childTraversal.getSteps()) {
@@ -235,7 +233,6 @@ public final class InlineFilterStrategy extends 
AbstractTraversalStrategy<Traver
                         predicate = null == predicate ? p : predicate.or(p);
                     }
                     labels.addAll(childStep.getLabels());
-                    stepsToRemoveFromManager.add(childStep);
                 } else {
                     process = false;
                     break;
@@ -247,11 +244,6 @@ public final class InlineFilterStrategy extends 
AbstractTraversalStrategy<Traver
         if (process) {
             final HasStep hasStep = new HasStep<>(traversal, new 
HasContainer(key, predicate));
             TraversalHelper.replaceStep(step, hasStep, traversal);
-            stepsToRemoveFromManager.forEach(s -> {
-                if (s instanceof GValueHolder) {
-                    traversal.getGValueManager().pinGValues(((GValueHolder<?, 
?>) s).getGValues()); //TODO
-                }
-            });
             TraversalHelper.copyLabels(step, hasStep, false);
             for (final String label : labels) {
                 hasStep.addLabel(label);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategy.java
index 36461c3968..dc1fd53771 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategy.java
@@ -20,7 +20,6 @@
 package org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization;
 
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.VertexProgramStep;
-import org.apache.tinkerpop.gremlin.process.traversal.GValueManager;
 import org.apache.tinkerpop.gremlin.process.traversal.Pop;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
@@ -99,8 +98,6 @@ public final class PathProcessorStrategy extends 
AbstractTraversalStrategy<Trave
             return;
         }
 
-        final GValueManager manager = traversal.getGValueManager();
-
         // process where(as("a").out()...) => select("a").where(out()...)
         final List<WhereTraversalStep> whereTraversalSteps = 
TraversalHelper.getStepsOfClass(WhereTraversalStep.class, traversal);
         for (final WhereTraversalStep<?> whereTraversalStep : 
whereTraversalSteps) {
@@ -113,7 +110,8 @@ public final class PathProcessorStrategy extends 
AbstractTraversalStrategy<Trave
                     final int index = 
TraversalHelper.stepIndex(whereTraversalStep, traversal);
                     if (whereTraversalStep.getPreviousStep() instanceof 
SelectStep) {
                         done = false;
-                        TraversalHelper.moveStep(whereTraversalStep, index - 
1, traversal);
+                        traversal.removeStep(index);
+                        traversal.addStep(index - 1, whereTraversalStep);
                     }
                 }
                 final WhereTraversalStep.WhereStartStep<?> whereStartStep = 
(WhereTraversalStep.WhereStartStep<?>) localChild.getStartStep();
@@ -130,9 +128,9 @@ public final class PathProcessorStrategy extends 
AbstractTraversalStrategy<Trave
                 whereStartStep.removeScopeKey();
                 // process where(as("a").out()) => 
as('xyz').select("a").filter(out()).select('xyz')
                 if (!(localChild.getEndStep() instanceof 
WhereTraversalStep.WhereEndStep)) {
-                    TraversalHelper.removeStep(localChild.getStartStep(), 
localChild);
+                    localChild.removeStep(localChild.getStartStep());
                     traversal.addStep(index + 1, new 
TraversalFilterStep<>(traversal, localChild));
-                    TraversalHelper.removeStep(whereTraversalStep, 
traversal.asAdmin());
+                    traversal.removeStep(whereTraversalStep);
                 }
             }
         }
@@ -181,22 +179,8 @@ public final class PathProcessorStrategy extends 
AbstractTraversalStrategy<Trave
                         
labelCount(selectOneStep.getScopeKeys().iterator().next(), 
TraversalHelper.getRootTraversal(traversal)) <= 1) {
                     final int index = TraversalHelper.stepIndex(selectOneStep, 
traversal);
                     final Traversal.Admin<?, ?> localChild = 
selectOneStep.getLocalChildren().get(0);
-
-                    final Traversal.Admin<?, ?> localChildClone = 
localChild.clone();
-                    final List<Step> localChildSteps = 
TraversalHelper.getStepsOfAssignableClassRecursively(Step.class, localChild);
-                    for (int ix = 0; ix < localChildSteps.size(); ix++) {
-                        // TODO:: 
manager.copyRegistryState(localChildSteps.get(ix), 
localChildClone.getSteps().get(ix));
-
-                        // todo: look at cases where we clone() traversal more 
carefully. so much to think about in these cases
-                        // TODO:: manager.pinGValues(localChildSteps.get(ix));
-                        // TODO:: manager.remove(localChildSteps.get(ix));
-                        // TODO:: 
localChildClone.getGValueManager().pinGValues(localChildSteps.get(ix));
-                        // TODO:: 
localChildClone.getGValueManager().remove(localChildSteps.get(ix));
-                    }
-
                     selectOneStep.removeLocalChild(localChild);
-
-                    final TraversalMapStep<?, ?> mapStep = new 
TraversalMapStep<>(traversal, localChildClone);
+                    final TraversalMapStep<?, ?> mapStep = new 
TraversalMapStep<>(traversal, localChild.clone());
                     traversal.addStep(index + 1, mapStep);
                 }
             }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java
index b28d53f762..8cc8d700ed 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/ReservedKeysVerificationStrategy.java
@@ -21,15 +21,7 @@ package 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification;
 import org.apache.commons.configuration2.Configuration;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.step.Parameterizing;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStartStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertyAdding;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AddPropertyStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.util.Parameters;
-import org.apache.tinkerpop.gremlin.structure.Property;
 
 import java.util.Arrays;
 import java.util.LinkedHashSet;
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/GValueManagerVerifier.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/GValueManagerVerifier.java
index 4cd523a929..5e67971317 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/GValueManagerVerifier.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/GValueManagerVerifier.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.strategy;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.tinkerpop.gremlin.process.traversal.GValueManager;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
@@ -27,6 +28,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValueHolder;
 import org.apache.tinkerpop.gremlin.process.traversal.step.HasContainerHolder;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeStepPlaceholder.RangeGlobalStepPlaceholder;
+import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStepPlaceholder;
 import 
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.util.CollectionUtil;
@@ -295,19 +297,18 @@ public class GValueManagerVerifier {
         }
 
         /**
-         * Verifies that specific steps have been cleared from GValueManager
+         * Verifies whether steps are parameterized
          */
         public T stepsAreParameterized(final boolean isParameterized, final 
Step... steps) {
             assertThat("At least one step must be provided", steps.length > 0, 
is(true));
             for (Step step : steps) {
-                final GValueManager manager = 
step.getTraversal().getGValueManager();
                 assertThat("Step should not be parameterized", step instanceof 
GValueHolder && ((GValueHolder<?, ?>) step).isParameterized(), 
is(isParameterized));
             }
             return self();
         }
 
         /**
-         * Verifies that all steps of a certain class are not parameterized
+         * Verifies whether all steps of a certain class are parameterized
          */
         public <U extends Step> T stepsOfClassAreParameterized(final boolean 
isParameterized, final Class<U> stepClass) {
             final List<U> steps = 
TraversalHelper.getStepsOfAssignableClassRecursively(stepClass, traversal);
@@ -315,18 +316,34 @@ public class GValueManagerVerifier {
         }
 
         /**
-         * Verifies that a RangeContract is properly set up
-         */ //TODO rename
-        public T isRangeGlobalGValueContract(final Step step, final long 
expectedLow, final long expectedHigh,
-                                             final String lowName, final 
String highName) {
+         * Verifies that a RangeGlobalStepPlaceholder is properly set up
+         */
+        public T isRangeGlobalStepPlaceholder(final Step step, final long 
expectedLow, final long expectedHigh,
+                                              final String lowName, final 
String highName) {
             assertThat("Step should be parameterized", step instanceof 
RangeGlobalStepPlaceholder && ((RangeGlobalStepPlaceholder<?>) 
step).isParameterized(), is(true));
 
-            RangeGlobalStepPlaceholder<?> rangeGValueContract = 
(RangeGlobalStepPlaceholder<?>) step;
+            RangeGlobalStepPlaceholder<?> rangeGlobalStepPlaceholder = 
(RangeGlobalStepPlaceholder<?>) step;
+
+            assertEquals("Low range should match", expectedLow, 
rangeGlobalStepPlaceholder.getLowRangeGValueSafe());
+            assertEquals("High range should match", expectedHigh, 
rangeGlobalStepPlaceholder.getHighRangeGValueSafe());
+            assertEquals("Low range name should match", lowName, 
rangeGlobalStepPlaceholder.getLowName());
+            assertEquals("High range name should match", highName, 
rangeGlobalStepPlaceholder.getHighName());
+
+            return self();
+        }
+
+        /**
+         * Verifies that a VertexStepPlaceholder is properly set up
+         */
+        public T isVertexStepPlaceholder(final Step step, final int 
expectedLabelCount, final Set<String> expectedNames,
+                                              final Set<String> 
expectedValues) {
+            assertThat("Step should be parameterized", step instanceof 
VertexStepPlaceholder && ((VertexStepPlaceholder<?>) step).isParameterized(), 
is(true));
+
+            VertexStepPlaceholder<?> vertexStepPlaceholder = 
(VertexStepPlaceholder<?>) step;
 
-            assertEquals("Low range should match", expectedLow, 
rangeGValueContract.getLowRangeGValueSafe());
-            assertEquals("High range should match", expectedHigh, 
rangeGValueContract.getHighRangeGValueSafe());
-            assertEquals("Low range name should match", lowName, 
rangeGValueContract.getLowName());
-            assertEquals("High range name should match", highName, 
rangeGValueContract.getHighName());
+            assertEquals("Label count should match", expectedLabelCount, 
vertexStepPlaceholder.getEdgeLabelsGValueSafe().length);
+            assertTrue("Expected names should match", 
CollectionUtils.isEqualCollection(expectedNames, 
vertexStepPlaceholder.getGValues().stream().map(GValue::getName).collect(Collectors.toSet())));
+            assertTrue("Expected values should match", 
CollectionUtils.isEqualCollection(expectedValues, 
Set.of(vertexStepPlaceholder.getEdgeLabelsGValueSafe())));
 
             return self();
         }
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ElementIdStrategyTraverseTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ElementIdStrategyTraverseTest.java
index 819d4db63d..1e4b0640b0 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ElementIdStrategyTraverseTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/ElementIdStrategyTraverseTest.java
@@ -23,9 +23,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.PropertiesStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.stepContract.AddEdgeStepInterface;
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
index a5bfa592fb..607ce40723 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/PartitionStrategyTest.java
@@ -24,12 +24,8 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.filter.HasStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.stepContract.AddEdgeStepInterface;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.stepContract.AddVertexStepInterface;
@@ -37,10 +33,8 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.GValueManagerVerifier;
 import 
org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
-import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Graph;
-import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.junit.Test;
@@ -57,7 +51,6 @@ import java.util.Set;
 import static org.hamcrest.core.IsInstanceOf.instanceOf;
 import static org.hamcrest.core.IsIterableContaining.hasItem;
 import static org.hamcrest.core.IsNot.not;
-import static org.hamcrest.core.IsIterableContaining.hasItem;
 import static org.junit.Assert.assertEquals;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.fail;
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
index 4726d76a1e..60d05810b7 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SubgraphStrategyTest.java
@@ -24,15 +24,11 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.AndStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.TraversalFilterStep;
-import 
org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStartStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.EdgeVertexStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IdentityStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.GValueManagerVerifier;
@@ -41,7 +37,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.Stan
 import 
org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator;
 import 
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
-import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
@@ -55,7 +50,6 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.stream.Collectors;
 
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.hasLabel;
@@ -68,7 +62,6 @@ import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.values
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
 
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
index f785ce1997..109a34086f 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/AdjacentToIncidentStrategyTest.java
@@ -31,6 +31,7 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
 import java.util.Arrays;
+import java.util.Set;
 
 import static org.junit.Assert.assertEquals;
 
@@ -97,10 +98,10 @@ public class AdjacentToIncidentStrategyTest {
         public int expectedLabelCount;
 
         @Parameterized.Parameter(value = 2)
-        public String[] expectedNames;
+        public Set<String> expectedNames;
 
         @Parameterized.Parameter(value = 3)
-        public String[] expectedValues;
+        public Set<String> expectedValues;
 
         @Parameterized.Parameters(name = "{0}")
         public static Iterable<Object[]> generateTestParameters() {
@@ -108,38 +109,38 @@ public class AdjacentToIncidentStrategyTest {
                     {
                         __.out(GValue.of("x", "link")).count().asAdmin(),
                         1,
-                        new String[]{"x"},
-                        new String[]{"link"}
+                        Set.of("x"),
+                        Set.of("link")
                     },
                     {
                         __.out(GValue.of("x", "link"), GValue.of("y", 
"knows"), GValue.of("z", "created")).count().asAdmin(),
                         3,
-                        new String[]{"x", "y", "z"},
-                        new String[]{"link", "knows", "created"}
+                        Set.of("x", "y", "z"),
+                        Set.of("link", "knows", "created")
                     },
                     {
                         __.in(GValue.of("x", "link")).count().asAdmin(),
                         1,
-                        new String[]{"x"},
-                        new String[]{"link"}
+                        Set.of("x"),
+                        Set.of("link")
                     },
                     {
                         __.in(GValue.of("x", "link"), GValue.of("y", "knows"), 
GValue.of("z", "created")).count().asAdmin(),
                         3,
-                        new String[]{"x", "y", "z"},
-                        new String[]{"link", "knows", "created"}
+                        Set.of("x", "y", "z"),
+                        Set.of("link", "knows", "created")
                     },
                     {
                         __.both(GValue.of("x", "link")).count().asAdmin(),
                         1,
-                        new String[]{"x"},
-                        new String[]{"link"}
+                        Set.of("x"),
+                        Set.of("link")
                     },
                     {
                         __.both(GValue.of("x", "link"), GValue.of("y", 
"knows"), GValue.of("z", "created")).count().asAdmin(),
                         3,
-                        new String[]{"x", "y", "z"},
-                        new String[]{"link", "knows", "created"}
+                        Set.of("x", "y", "z"),
+                        Set.of("link", "knows", "created")
                     }
             });
         }
@@ -152,11 +153,11 @@ public class AdjacentToIncidentStrategyTest {
             GValueManagerVerifier.verify(traversal, 
AdjacentToIncidentStrategy.instance()).
                     beforeApplying().
                         hasVariables(expectedNames).
-                        //TODO:: edgeLabelContractIsValid(step, 
expectedLabelCount, expectedNames, expectedValues).
+                        isVertexStepPlaceholder(step, expectedLabelCount, 
expectedNames, expectedValues).
                     afterApplying().
                         hasVariables(expectedNames).
-                        variablesArePreserved();
-            //TODO:: edgeLabelContractIsValid(traversal.getStartStep(), 
expectedLabelCount, expectedNames, expectedValues);
+                        variablesArePreserved().
+                        isVertexStepPlaceholder(traversal.getStartStep(), 
expectedLabelCount, expectedNames, expectedValues);
         }
     }
 }
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategyTest.java
index f97b3e7f6b..6d60205f8d 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/ByModulatorOptimizationStrategyTest.java
@@ -22,12 +22,10 @@ import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.GValueManagerVerifier;
 import 
org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator;
-import 
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,8 +36,6 @@ import java.util.List;
 
 import static org.apache.tinkerpop.gremlin.process.traversal.Operator.assign;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.values;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertEquals;
 
 /**
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
index 01a8ba7706..3b7791a96d 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/CountStrategyTest.java
@@ -22,25 +22,18 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.GValueManager;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
-import org.apache.tinkerpop.gremlin.process.traversal.step.filter.IsStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeGlobalStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.step.stepContract.IsStepInterface;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.GValueManagerVerifier;
 import 
org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator;
-import 
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
-import org.apache.tinkerpop.gremlin.util.CollectionUtil;
 import org.junit.Test;
 import org.junit.experimental.runners.Enclosed;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
 import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
 
 import static org.apache.tinkerpop.gremlin.process.traversal.P.eq;
 import static org.apache.tinkerpop.gremlin.process.traversal.P.gt;
@@ -52,8 +45,6 @@ import static 
org.apache.tinkerpop.gremlin.process.traversal.P.neq;
 import static org.apache.tinkerpop.gremlin.process.traversal.P.outside;
 import static org.apache.tinkerpop.gremlin.process.traversal.P.within;
 import static org.apache.tinkerpop.gremlin.process.traversal.P.without;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertEquals;
 
 /**
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategyTest.java
index 5825e642f3..35d7d674af 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/EarlyLimitStrategyTest.java
@@ -51,11 +51,6 @@ import java.util.Set;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
 
 /**
  * @author Daniel Kuppitz (http://gremlin.guru)
@@ -205,12 +200,12 @@ public class EarlyLimitStrategyTest {
             // Use GValueManagerVerifier to verify the state before and after 
applying the strategy
             GValueManagerVerifier.verify(traversal, 
EarlyLimitStrategy.instance()).
                     beforeApplying().
-                    isRangeGlobalGValueContract(originalRangeGlobalStep, 
expectedLowRange, expectedHighRange, expectedNames[0], expectedNames[1]).
+                    isRangeGlobalStepPlaceholder(originalRangeGlobalStep, 
expectedLowRange, expectedHighRange, expectedNames[0], expectedNames[1]).
                     afterApplying().
-                    isRangeGlobalGValueContract(
+                    isRangeGlobalStepPlaceholder(
                                 
TraversalHelper.getFirstStepOfAssignableClass(RangeGlobalStepInterface.class, 
traversal).get(),
                                 expectedLowRange, expectedHighRange, 
expectedNames[0], expectedNames[1]).
-                        
hasVariables(CollectionUtil.asSet(Arrays.stream(expectedNames).filter(Objects::nonNull).toArray(String[]::new)));
+                    
hasVariables(CollectionUtil.asSet(Arrays.stream(expectedNames).filter(Objects::nonNull).toArray(String[]::new)));
         }
     }
 
@@ -269,9 +264,9 @@ public class EarlyLimitStrategyTest {
             // Use GValueManagerVerifier to verify the state before and after 
applying the strategy
             GValueManagerVerifier.verify(traversal, 
EarlyLimitStrategy.instance()).
                     beforeApplying().
-                    isRangeGlobalGValueContract(originalRangeGlobalStep, 
expectedLowRange, expectedHighRange, expectedNames[0], expectedNames[1]).
+                    isRangeGlobalStepPlaceholder(originalRangeGlobalStep, 
expectedLowRange, expectedHighRange, expectedNames[0], expectedNames[1]).
                     afterApplying().
-                    
isRangeGlobalGValueContract(TraversalHelper.getFirstStepOfAssignableClass(RangeGlobalStepInterface.class,
 traversal).get(),expectedLowRange, expectedHighRange, expectedNames[0], 
expectedNames[1]).
+                    
isRangeGlobalStepPlaceholder(TraversalHelper.getFirstStepOfAssignableClass(RangeGlobalStepInterface.class,
 traversal).get(),expectedLowRange, expectedHighRange, expectedNames[0], 
expectedNames[1]).
                         
hasVariables(CollectionUtil.asSet(Arrays.stream(expectedNames).filter(Objects::nonNull).toArray(String[]::new)));
         }
     }
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategyTest.java
index 6329122414..5054ca6415 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/FilterRankingStrategyTest.java
@@ -28,7 +28,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.GValueManagerVerifier;
 import 
org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator;
-import 
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.util.CollectionUtil;
 import org.apache.tinkerpop.gremlin.util.function.Lambda;
@@ -37,12 +36,9 @@ import org.junit.experimental.runners.Enclosed;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
 import java.util.Set;
 import java.util.function.Predicate;
 
@@ -57,8 +53,6 @@ import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.or;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.out;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.outE;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.properties;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertEquals;
 
 /**
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
index 4c102844ae..0fc14f396d 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/IncidentToAdjacentStrategyTest.java
@@ -33,6 +33,7 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
 import java.util.Arrays;
+import java.util.Set;
 import java.util.function.Function;
 
 import static org.junit.Assert.assertEquals;
@@ -103,10 +104,10 @@ public class IncidentToAdjacentStrategyTest {
         public int expectedLabelCount;
 
         @Parameterized.Parameter(value = 2)
-        public String[] expectedNames;
+        public Set<String> expectedNames;
 
         @Parameterized.Parameter(value = 3)
-        public String[] expectedValues;
+        public Set<String> expectedValues;
 
         @Parameterized.Parameters(name = "{0}")
         public static Iterable<Object[]> generateTestParameters() {
@@ -114,38 +115,38 @@ public class IncidentToAdjacentStrategyTest {
                     {
                         __.outE(GValue.of("x", "link")).inV().asAdmin(),
                         1,
-                        new String[]{"x"},
-                        new String[]{"link"}
+                        Set.of("x"),
+                        Set.of("link")
                     },
                     {
                         __.outE(GValue.of("x", "link"), GValue.of("y", 
"knows"), GValue.of("z", "created")).inV().asAdmin(),
                         3,
-                        new String[]{"x", "y", "z"},
-                        new String[]{"link", "knows", "created"}
+                        Set.of("x", "y", "z"),
+                        Set.of("link", "knows", "created")
                     },
                     {
                         __.inE(GValue.of("x", "link")).outV().asAdmin(),
                         1,
-                        new String[]{"x"},
-                        new String[]{"link"}
+                        Set.of("x"),
+                        Set.of("link")
                     },
                     {
                         __.inE(GValue.of("x", "link"), GValue.of("y", 
"knows"), GValue.of("z", "created")).outV().asAdmin(),
                         3,
-                        new String[]{"x", "y", "z"},
-                        new String[]{"link", "knows", "created"}
+                        Set.of("x", "y", "z"),
+                        Set.of("link", "knows", "created")
                     },
                     {
                         __.bothE(GValue.of("x", "link")).otherV().asAdmin(),
                         1,
-                        new String[]{"x"},
-                        new String[]{"link"}
+                        Set.of("x"),
+                        Set.of("link")
                     },
                     {
                         __.bothE(GValue.of("x", "link"), GValue.of("y", 
"knows"), GValue.of("z", "created")).otherV().asAdmin(),
                         3,
-                        new String[]{"x", "y", "z"},
-                        new String[]{"link", "knows", "created"}
+                        Set.of("x", "y", "z"),
+                        Set.of("link", "knows", "created")
                     }
             });
         }
@@ -158,11 +159,11 @@ public class IncidentToAdjacentStrategyTest {
             GValueManagerVerifier.verify(traversal, 
AdjacentToIncidentStrategy.instance()).
                     beforeApplying().
                         hasVariables(expectedNames).
-                    // TODO:: edgeLabelContractIsValid(step, 
expectedLabelCount, expectedNames, expectedValues).
+                        isVertexStepPlaceholder(step, expectedLabelCount, 
expectedNames, expectedValues).
                     afterApplying().
                         hasVariables(expectedNames).
-                        variablesArePreserved();
-            // TODO:: edgeLabelContractIsValid(traversal.getStartStep(), 
expectedLabelCount, expectedNames, expectedValues);
+                        variablesArePreserved().
+                        isVertexStepPlaceholder(traversal.getStartStep(), 
expectedLabelCount, expectedNames, expectedValues);
         }
     }
 }
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategyTest.java
index 7e9b8fb236..bf9d853bd9 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/InlineFilterStrategyTest.java
@@ -33,8 +33,6 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.GValueManagerVerifier;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ConnectiveStrategy;
 import 
org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator;
-import 
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
-import org.apache.tinkerpop.gremlin.process.traversal.util.EmptyTraversal;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph;
 import org.junit.Test;
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/OrderLimitStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/OrderLimitStrategyTest.java
index 4c0737d97e..14bfa64ee8 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/OrderLimitStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/OrderLimitStrategyTest.java
@@ -22,14 +22,12 @@ package 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.TraversalVertexProgramStep;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderGlobalStep;
 import 
org.apache.tinkerpop.gremlin.process.traversal.strategy.GValueManagerVerifier;
 import 
org.apache.tinkerpop.gremlin.process.traversal.translator.GroovyTranslator;
-import 
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversalStrategies;
 import org.apache.tinkerpop.gremlin.process.traversal.util.EmptyTraversal;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.junit.Test;
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategyTest.java
index 6318ea2d2c..2c6b61a4c1 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/PathProcessorStrategyTest.java
@@ -20,7 +20,6 @@
 package org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization;
 
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.TraversalVertexProgramStep;
-import org.apache.tinkerpop.gremlin.process.traversal.GValueManager;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Pop;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
@@ -50,10 +49,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.coalesce;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategyTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategyTest.java
index bf4b960723..32cf92aa37 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategyTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/optimization/RepeatUnrollStrategyTest.java
@@ -19,8 +19,6 @@
 
 package org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization;
 
-import org.apache.tinkerpop.gremlin.process.traversal.GValueManager;
-import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Translator;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategies;
@@ -47,10 +45,7 @@ import java.util.function.Predicate;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.in;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.out;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.path;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)

Reply via email to