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/06/23 16:46:09 UTC

[1/3] incubator-tinkerpop git commit: TINKERPOP3-619: Add SelectTest cases for 'select should not throw'

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master d183526bd -> 161250061


TINKERPOP3-619: Add SelectTest cases for 'select should not throw'


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

Branch: refs/heads/master
Commit: 1f8ff690c463802f6e5a9f6d6f8aaa6a84f627a0
Parents: 242a823
Author: mhfrantz <mf...@redsealnetworks.com>
Authored: Sat Jun 20 08:35:57 2015 -0700
Committer: mhfrantz <mf...@redsealnetworks.com>
Committed: Sat Jun 20 09:21:49 2015 -0700

----------------------------------------------------------------------
 .../traversal/step/map/GroovySelectTest.groovy  |  62 +++++-
 .../process/traversal/step/map/SelectTest.java  | 192 ++++++++++++++++++-
 2 files changed, 251 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/1f8ff690/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
index c31e772..6663fe7 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.step.map
 
+import org.apache.tinkerpop.gremlin.process.traversal.Pop
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper
@@ -98,7 +99,8 @@ public abstract class GroovySelectTest {
         Traversal<Vertex, Map<String, List<Vertex>>> get_g_V_asXaX_outXcreatedX_asXaX_select() {
             TraversalScriptHelper.compute("g.V.as('a').out('created').as('a').select", g)
         }
-//
+
+        // below are original back()-tests
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_asXhereX_out_selectXhereX(final Object v1Id) {
@@ -163,6 +165,64 @@ public abstract class GroovySelectTest {
                     by(__.in('created').values('name').fold().order(local))""", g)
         }
 
+        // TINKERPOP3-619: select should not throw
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_select(final Pop pop) {
+            root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select" : "select(pop)"), g)
+        }
+
+        @Override
+        public Traversal<Vertex, Object> get_g_V_selectXaX(final Pop pop) {
+            root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select('a')" : "select(pop, 'a')"), g)
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX(final Pop pop) {
+            root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select('a', 'b')" : "select(pop, 'a', 'b')"), g)
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_selectXglobalX(final Pop pop) {
+            root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(global)" : "select(global, pop)"), g)
+        }
+
+        @Override
+        public Traversal<Vertex, Object> get_g_V_selectXglobal_aX(final Pop pop) {
+            root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(global, 'a')" : "select(global, pop, 'a')"), g)
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_selectXglobal_a_bX(final Pop pop) {
+            root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(global, 'a', 'b')" : "select(global, pop, 'a', 'b')"), g)
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_valueMapXaX_selectXlocalX(final Pop pop) {
+            root = "g.V.valueMap('a')."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(local)" : "select(local, pop)"), g)
+        }
+
+        @Override
+        public Traversal<Vertex, Object> get_g_V_valueMap_selectXlocal_aX(final Pop pop) {
+            root = "g.V.valueMap."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(local, 'a')" : "select(local, pop, 'a')"), g)
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXlocal_a_bX(final Pop pop) {
+            root = "g.V.valueMap."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(local, 'a', 'b')" : "select(local, pop, 'a', 'b')"), g)
+        }
+
+        // when labels don't exist
+
         @Override
         public Traversal<Vertex, String> get_g_V_untilXout_outX_repeatXin_asXaXX_selectXaX_byXtailXlocalX_nameX() {
             TraversalScriptHelper.compute("g.V.until(__.out.out).repeat(__.in.as('a')).select('a').by(tail(local).name)", g)

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/1f8ff690/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
index 1a0d48f..59b90ba 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java
@@ -22,14 +22,17 @@ 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.Order;
+import org.apache.tinkerpop.gremlin.process.traversal.Pop;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -38,6 +41,7 @@ import java.util.Set;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.CREW;
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.process.traversal.Scope.global;
 import static org.apache.tinkerpop.gremlin.process.traversal.Scope.local;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.as;
 import static org.junit.Assert.*;
@@ -100,6 +104,26 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Map<String, Object>> get_g_V_hasLabelXsoftwareX_asXnameX_asXlanguageX_asXcreatorsX_select_byXnameX_byXlangX_byXinXcreatedX_valuesXnameX_fold_orderXlocalXX();
 
+    // TINKERPOP3-619: select should not throw
+
+    public abstract Traversal<Vertex, Map<String, Object>> get_g_V_select(final Pop pop);
+
+    public abstract Traversal<Vertex, Object> get_g_V_selectXaX(final Pop pop);
+
+    public abstract Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX(final Pop pop);
+
+    public abstract Traversal<Vertex, Map<String, Object>> get_g_V_selectXglobalX(final Pop pop);
+
+    public abstract Traversal<Vertex, Object> get_g_V_selectXglobal_aX(final Pop pop);
+
+    public abstract Traversal<Vertex, Map<String, Object>> get_g_V_selectXglobal_a_bX(final Pop pop);
+
+    public abstract Traversal<Vertex, Map<String, Object>> get_g_V_valueMapXaX_selectXlocalX(final Pop pop);
+
+    public abstract Traversal<Vertex, Object> get_g_V_valueMap_selectXlocal_aX(final Pop pop);
+
+    public abstract Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXlocal_a_bX(final Pop pop);
+
     // when labels don't exist
 
     public abstract Traversal<Vertex, String> get_g_V_untilXout_outX_repeatXin_asXaXX_selectXaX_byXtailXlocalX_nameX();
@@ -108,6 +132,9 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Vertex> get_g_V_asXaX_whereXoutXknowsXX_selectXaX();
 
+    // Useful for permuting Pop use cases
+    protected final static List<Pop> POPS = Arrays.asList(null, Pop.first, Pop.last, Pop.all);
+
     @Test
     @LoadGraphWith(MODERN)
     public void g_VX1X_asXaX_outXknowsX_asXbX_select() {
@@ -329,7 +356,7 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
         assertEquals(4, counter);
     }
 
-    //
+    // below are original back()-tests
 
     @Test
     @LoadGraphWith(MODERN)
@@ -469,6 +496,109 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
         assertFalse(traversal.hasNext());
     }
 
+    // TINKERPOP3-619: select should not throw
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_select() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_select(pop);
+                printTraversalForm(traversal);
+                // When there is nothing to select, empty map is produced
+                final List<Map<String, Object>> actual = traversal.toList();
+                assertEquals(6, actual.size());
+                actual.stream().forEach(m -> assertEquals(0, m.size()));
+            });
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_selectXaX() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Object> traversal = get_g_V_selectXaX(pop);
+                printTraversalForm(traversal);
+                assertEquals(Collections.emptyList(), traversal.toList());
+            });
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_selectXa_bX() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_selectXa_bX(pop);
+                printTraversalForm(traversal);
+                assertEquals(Collections.emptyList(), traversal.toList());
+            });
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_selectXglobalX() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_selectXglobalX(pop);
+                printTraversalForm(traversal);
+                // When there is nothing to select, empty map is produced
+                final List<Map<String, Object>> actual = traversal.toList();
+                assertEquals(6, actual.size());
+                actual.stream().forEach(m -> assertEquals(0, m.size()));
+            });
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_selectXglobal_aX() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Object> traversal = get_g_V_selectXglobal_aX(pop);
+                printTraversalForm(traversal);
+                assertEquals(Collections.emptyList(), traversal.toList());
+            });
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_selectXglobal_a_bX() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_selectXglobal_a_bX(pop);
+                printTraversalForm(traversal);
+                assertEquals(Collections.emptyList(), traversal.toList());
+            });
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_valueMapXaX_selectXlocalX() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_valueMapXaX_selectXlocalX(pop);
+                printTraversalForm(traversal);
+                // When there is nothing to select, empty map is produced
+                final List<Map<String, Object>> actual = traversal.toList();
+                assertEquals(6, actual.size());
+                actual.stream().forEach(m -> assertEquals(0, m.size()));
+            });
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_valueMap_selectXlocal_aX() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Object> traversal = get_g_V_valueMap_selectXlocal_aX(pop);
+                printTraversalForm(traversal);
+                assertEquals(Collections.emptyList(), traversal.toList());
+            });
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_valueMap_selectXlocal_a_bX() {
+        POPS.forEach(pop -> {
+                final Traversal<Vertex, Map<String, Object>> traversal = get_g_V_valueMap_selectXlocal_a_bX(pop);
+                printTraversalForm(traversal);
+                assertEquals(Collections.emptyList(), traversal.toList());
+            });
+    }
+
+    // when labels don't exist
+
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_untilXout_outX_repeatXin_asXaXX_selectXaX_byXtailXlocalX_nameX() {
@@ -568,7 +698,7 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
             return g.V().as("a").out("created").as("a").select();
         }
 
-        //
+        // below are original back()-tests
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_asXhereX_out_selectXhereX(final Object v1Id) {
@@ -628,6 +758,64 @@ public abstract class SelectTest extends AbstractGremlinProcessTest {
                     by(__.in("created").values("name").fold().order(local));
         }
 
+        // TINKERPOP3-619: select should not throw
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_select(final Pop pop) {
+            final GraphTraversal<Vertex, Vertex> root = g.V();
+            return null == pop ? root.select() : root.select(pop);
+        }
+
+        @Override
+        public Traversal<Vertex, Object> get_g_V_selectXaX(final Pop pop) {
+            final GraphTraversal<Vertex, Vertex> root = g.V();
+            return null == pop ? root.select("a") : root.select(pop, "a");
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX(final Pop pop) {
+            final GraphTraversal<Vertex, Vertex> root = g.V();
+            return null == pop ? root.select("a", "b") : root.select(pop, "a", "b");
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_selectXglobalX(final Pop pop) {
+            final GraphTraversal<Vertex, Vertex> root = g.V();
+            return null == pop ? root.select(global) : root.select(global, pop);
+        }
+
+        @Override
+        public Traversal<Vertex, Object> get_g_V_selectXglobal_aX(final Pop pop) {
+            final GraphTraversal<Vertex, Vertex> root = g.V();
+            return null == pop ? root.select(global, "a") : root.select(global, pop, "a");
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_selectXglobal_a_bX(final Pop pop) {
+            final GraphTraversal<Vertex, Vertex> root = g.V();
+            return null == pop ? root.select(global, "a", "b") : root.select(global, pop, "a", "b");
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_valueMapXaX_selectXlocalX(final Pop pop) {
+            final GraphTraversal<Vertex, Map<String, Object>> root = g.V().valueMap("a");
+            return null == pop ? root.select(local) : root.select(local, pop);
+        }
+
+        @Override
+        public Traversal<Vertex, Object> get_g_V_valueMap_selectXlocal_aX(final Pop pop) {
+            final GraphTraversal<Vertex, Map<String, Object>> root = g.V().valueMap();
+            return null == pop ? root.select(local, "a") : root.select(local, pop, "a");
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXlocal_a_bX(final Pop pop) {
+            final GraphTraversal<Vertex, Map<String, Object>> root = g.V().valueMap();
+            return null == pop ? root.select(local, "a", "b") : root.select(local, pop, "a", "b");
+        }
+
+        // when labels don't exist
+
         @Override
         public Traversal<Vertex, String> get_g_V_untilXout_outX_repeatXin_asXaXX_selectXaX_byXtailXlocalX_nameX() {
             return g.V().until(__.out().out()).repeat(__.in().as("a")).<String>select("a").by(__.tail(local).values("name"));


[2/3] incubator-tinkerpop git commit: Merge branch 'TINKERPOP3-619-select-should-not-throw' of https://github.com/RedSeal-co/incubator-tinkerpop

Posted by ok...@apache.org.
Merge branch 'TINKERPOP3-619-select-should-not-throw' of https://github.com/RedSeal-co/incubator-tinkerpop


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

Branch: refs/heads/master
Commit: c2717221a0c4f1ca67684a966c09ce7a51abc6ad
Parents: d183526 1f8ff69
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Jun 23 08:30:03 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Jun 23 08:30:03 2015 -0600

----------------------------------------------------------------------
 .../traversal/step/map/GroovySelectTest.groovy  |  62 +++++-
 .../process/traversal/step/map/SelectTest.java  | 192 ++++++++++++++++++-
 2 files changed, 251 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[3/3] incubator-tinkerpop git commit: Scoping.local is lenient on incoming objects that are not Maps. If the incoming object is not a Map, then assume Collections.emptyMap(). Fixed up GroovySelectTests.

Posted by ok...@apache.org.
Scoping.local is lenient on incoming objects that are not Maps. If the incoming object is not a Map, then assume Collections.emptyMap(). Fixed up GroovySelectTests.


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

Branch: refs/heads/master
Commit: 161250061a1230ad293915b1d5d19a647d202aae
Parents: c271722
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Jun 23 08:45:51 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Jun 23 08:45:51 2015 -0600

----------------------------------------------------------------------
 .../gremlin/process/traversal/step/Scoping.java | 14 ++++----
 .../traversal/step/map/GroovySelectTest.groovy  | 36 ++++++++++----------
 2 files changed, 26 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/16125006/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java
index 0b37d9a..ddb06a6 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/Scoping.java
@@ -43,7 +43,10 @@ public interface Scoping {
             return traverser.getSideEffects().<S>get(key).get();
         if (Scope.local == this.getScope()) {
             try {
-                final S s = ((Map<String, S>) traverser.get()).get(key);
+                Object object = traverser.get();
+                if (!(object instanceof Map))
+                    object = Collections.emptyMap();
+                final S s = ((Map<String, S>) object).get(key);
                 if (null != s)
                     return s;
                 else
@@ -65,11 +68,10 @@ public interface Scoping {
             return traverser.getSideEffects().<S>get(key);
 
         if (Scope.local == this.getScope()) {
-            try {
-                return Optional.ofNullable(((Map<String, S>) traverser.get()).get(key));
-            } catch (ClassCastException e) {
-                throw new IllegalStateException("The current step was compiled to an invalid local scope and this is a compilation error. Please report the full traversal that yielded this exception: " + this);
-            }
+                Object object = traverser.get();
+                if (!(object instanceof Map))
+                    object = Collections.emptyMap();
+                return Optional.ofNullable(((Map<String, S>) object).get(key));
         } else {
             final Path path = traverser.path();
             return path.hasLabel(key) ? Optional.of(null == pop ? path.get(key) : path.get(pop, key)) : Optional.<S>empty();

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/16125006/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
index 6663fe7..fa79a89 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovySelectTest.groovy
@@ -169,56 +169,56 @@ public abstract class GroovySelectTest {
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_select(final Pop pop) {
-            root = "g.V."
-            TraversalScriptHelper.compute(root + (null == pop ? "select" : "select(pop)"), g)
+            final String root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select" : "select(${pop})"), g)
         }
 
         @Override
         public Traversal<Vertex, Object> get_g_V_selectXaX(final Pop pop) {
-            root = "g.V."
-            TraversalScriptHelper.compute(root + (null == pop ? "select('a')" : "select(pop, 'a')"), g)
+            final String root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select('a')" : "select(${pop}, 'a')"), g)
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_selectXa_bX(final Pop pop) {
-            root = "g.V."
-            TraversalScriptHelper.compute(root + (null == pop ? "select('a', 'b')" : "select(pop, 'a', 'b')"), g)
+            final String root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select('a', 'b')" : "select(${pop}, 'a', 'b')"), g)
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_selectXglobalX(final Pop pop) {
-            root = "g.V."
-            TraversalScriptHelper.compute(root + (null == pop ? "select(global)" : "select(global, pop)"), g)
+            final String root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(global)" : "select(global, ${pop})"), g)
         }
 
         @Override
         public Traversal<Vertex, Object> get_g_V_selectXglobal_aX(final Pop pop) {
-            root = "g.V."
-            TraversalScriptHelper.compute(root + (null == pop ? "select(global, 'a')" : "select(global, pop, 'a')"), g)
+            final String root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(global, 'a')" : "select(global, ${pop}, 'a')"), g)
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_selectXglobal_a_bX(final Pop pop) {
-            root = "g.V."
-            TraversalScriptHelper.compute(root + (null == pop ? "select(global, 'a', 'b')" : "select(global, pop, 'a', 'b')"), g)
+            final String root = "g.V."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(global, 'a', 'b')" : "select(global, ${pop}, 'a', 'b')"), g)
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_valueMapXaX_selectXlocalX(final Pop pop) {
-            root = "g.V.valueMap('a')."
-            TraversalScriptHelper.compute(root + (null == pop ? "select(local)" : "select(local, pop)"), g)
+            final String root = "g.V.valueMap('a')."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(local)" : "select(local, ${pop})"), g)
         }
 
         @Override
         public Traversal<Vertex, Object> get_g_V_valueMap_selectXlocal_aX(final Pop pop) {
-            root = "g.V.valueMap."
-            TraversalScriptHelper.compute(root + (null == pop ? "select(local, 'a')" : "select(local, pop, 'a')"), g)
+            final String root = "g.V.valueMap."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(local, 'a')" : "select(local, ${pop}, 'a')"), g)
         }
 
         @Override
         public Traversal<Vertex, Map<String, Object>> get_g_V_valueMap_selectXlocal_a_bX(final Pop pop) {
-            root = "g.V.valueMap."
-            TraversalScriptHelper.compute(root + (null == pop ? "select(local, 'a', 'b')" : "select(local, pop, 'a', 'b')"), g)
+            final String root = "g.V.valueMap."
+            TraversalScriptHelper.compute(root + (null == pop ? "select(local, 'a', 'b')" : "select(local, ${pop}, 'a', 'b')"), g)
         }
 
         // when labels don't exist