You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by co...@apache.org on 2026/10/05 21:49:54 UTC

(tinkerpop) 01/01: Merge branch '3.7-dev' into 3.8-dev

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

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

commit 9dcdcc689183c0524c3d82106651623548802836
Merge: 5fdfe38a66 d05ddc04a1
Author: Cole Greer <co...@colegreer.ca>
AuthorDate: Mon Oct 5 14:49:39 2026 -0700

    Merge branch '3.7-dev' into 3.8-dev

 CHANGELOG.asciidoc                                 |  1 +
 docs/src/dev/provider/gremlin-semantics.asciidoc   |  4 ++
 docs/src/reference/the-traversal.asciidoc          |  3 +
 .../traverser/B_NL_O_S_SE_SL_Traverser.java        |  2 +-
 .../traversal/traverser/B_O_S_SE_SL_Traverser.java |  6 +-
 .../traversal/traverser/NL_SL_Traverser.java       | 13 ++--
 .../traverser/O_OB_S_SE_SL_Traverser.java          |  6 +-
 .../traversal/traverser/util/LabelledCounter.java  | 10 +--
 .../traverser/LoopCounterOverflowTest.java         | 74 ++++++++++++++++++++++
 .../traverser/util/LabelledCounterTest.java        | 46 ++++++++++++++
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs |  1 +
 gremlin-go/driver/cucumber/gremlin.go              |  1 +
 .../gremlin-javascript/test/cucumber/gremlin.js    |  1 +
 .../src/main/python/tests/feature/gremlin.py       |  1 +
 .../gremlin/test/features/branch/Repeat.feature    | 14 +++-
 15 files changed, 166 insertions(+), 17 deletions(-)

diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_NL_O_S_SE_SL_Traverser.java
index 72c0e0dfbe,c37b568daa..1653dae2ba
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_NL_O_S_SE_SL_Traverser.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_NL_O_S_SE_SL_Traverser.java
@@@ -44,13 -47,33 +44,13 @@@ public class B_NL_O_S_SE_SL_Traverser<T
      }
  
      @Override
 -    public int loops(final String loopName) {
 -        if (loopName == null)
 -            return loops();
 -        else if (this.loopNames.containsKey(loopName))
 -            return ((LabelledCounter) this.loopNames.get(loopName)).count();
 -        else
 -            throw new IllegalArgumentException("Loop name not defined: " + loopName);
 +    public ReferenceMap getNestedLoopNames() {
 +        return loopNames;
      }
-     
+ 
      @Override
 -    public void initialiseLoops(final String stepLabel, final String loopName) {
 -        if (this.nestedLoops.empty() || !this.nestedLoops.peek().hasLabel(stepLabel)) {
 -            final LabelledCounter lc = new LabelledCounter(stepLabel, 0);
 -            this.nestedLoops.push(lc);
 -            if (loopName != null)
 -                this.loopNames.put(loopName, lc);
 -        }
 -    }
 -
 -    @Override
 -    public void incrLoops() {
 -        this.nestedLoops.peek().increment();
 -    }
 -
 -    @Override
 -    public void resetLoops() {
 -        this.nestedLoops.pop();
 +    public TraverserRequirement getLoopRequirement() {
 +        return TraverserRequirement.NESTED_LOOP;
      }
  
      /////////////////
diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_O_S_SE_SL_Traverser.java
index cd0a8aa5e7,10ec80ef7a..88354873cd
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_O_S_SE_SL_Traverser.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_O_S_SE_SL_Traverser.java
@@@ -26,12 -25,15 +26,12 @@@ import org.apache.tinkerpop.gremlin.pro
  /**
   * @author Marko A. Rodriguez (http://markorodriguez.com)
   */
 -public class B_O_S_SE_SL_Traverser<T> extends B_O_Traverser<T> {
 +public class B_O_S_SE_SL_Traverser<T> extends B_O_Traverser<T> implements NL_SL_Traverser<T> {
  
      protected Object sack = null;
-     protected short loops = 0;  // an optimization hack to use a short internally to save bits :)
+     protected int loops = 0;
      protected String loopName = null;
 +    protected String stepLabel;
      protected transient TraversalSideEffects sideEffects;
  
      protected B_O_S_SE_SL_Traverser() {
@@@ -44,24 -46,23 +44,24 @@@
              this.sack = this.sideEffects.getSackInitialValue().get();
      }
  
 -    /////////////////
 -
      @Override
-     public short getSingleLoopCount() {
 -    public <S> S sack() {
 -        return (S) this.sack;
++    public int getSingleLoopCount() {
 +        return this.loops;
      }
  
      @Override
-     public void setSingleLoopCount(short loops) {
 -    public <S> void sack(final S object) {
 -        this.sack = object;
++    public void setSingleLoopCount(final int loops) {
 +        this.loops = loops;
      }
  
 -    /////////////////
 +    @Override
 +    public String getSingleLoopName() {
 +        return this.loopName;
 +    }
  
      @Override
 -    public int loops() {
 -        return this.loops;
 +    public void setSingleLoopName(String loopName) {
 +        this.loopName = loopName;
      }
  
      @Override
diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/NL_SL_Traverser.java
index 7d5ae0e0be,0000000000..8f934c91b1
mode 100644,000000..100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/NL_SL_Traverser.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/NL_SL_Traverser.java
@@@ -1,248 -1,0 +1,251 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one
 + * or more contributor license agreements.  See the NOTICE file
 + * distributed with this work for additional information
 + * regarding copyright ownership.  The ASF licenses this file
 + * to you under the Apache License, Version 2.0 (the
 + * "License"); you may not use this file except in compliance
 + * with the License.  You may obtain a copy of the License at
 + *
 + *   http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing,
 + * software distributed under the License is distributed on an
 + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 + * KIND, either express or implied.  See the License for the
 + * specific language governing permissions and limitations
 + * under the License.
 + */
 +package org.apache.tinkerpop.gremlin.process.traversal.traverser;
 +
 +import java.util.HashMap;
 +import java.util.Map;
 +import java.util.Objects;
 +import java.util.Set;
 +import java.util.Stack;
 +import java.util.stream.Collectors;
 +import java.util.stream.Stream;
 +import org.apache.commons.collections.map.ReferenceMap;
 +import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 +import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.LabelledCounter;
 +
 +import static org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement.NESTED_LOOP;
 +import static org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement.SINGLE_LOOP;
 +
 +/**
 + * Intermediate helper interface for {@link Traverser}s that support loops. Implementations are expected to override 
 + * either the single or nested loop functions depending on the type of loop {@link TraverserRequirement} they are using.
 + * <p>
 + * Note: it would be nice to separate the {@link TraverserRequirement#SINGLE_LOOP} vs {@link TraverserRequirement#NESTED_LOOP}
 + * logic into different traverser interfaces in the future however the current {@link Traverser} class hierarchy makes
 + * that difficult as {@link Traverser}s that support nested loops extend from {@link Traverser}s that support single
 + * loops but override all single loop logic with nested loop logic.
 + */
 +public interface NL_SL_Traverser<T> extends Traverser.Admin<T> {
 +    /**
 +     * @return the supported loop type - either {@link TraverserRequirement#NESTED_LOOP} or {@link TraverserRequirement#SINGLE_LOOP}
 +     */
 +    TraverserRequirement getLoopRequirement();
 +
 +    // NESTED LOOPS
 +
 +    /**
 +     * Override this method to support nested loops.
 +     *
 +     * @return the {@link Stack} of {@link LabelledCounter} which holds the nested loops.
 +     */
 +    default Stack<LabelledCounter> getNestedLoops() {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /**
 +     * Override this method to support nested loops.
 +     *
 +     * @return the {@link ReferenceMap} where key=loop name and value=reference to the {@link LabelledCounter}.
 +     */
 +    default ReferenceMap getNestedLoopNames() {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    // SINGLE LOOPS
 +
 +    /**
 +     * Override this method to support single loop.
 +     *
 +     * @return the single loop count.
 +     */
-     default short getSingleLoopCount() {
++    default int getSingleLoopCount() {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /**
 +     * Override this method to support single loop. Sets the single loop count.
 +     */
-     default void setSingleLoopCount(short loops) {
++    default void setSingleLoopCount(final int loops) {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /**
 +     * Override this method to support single loop.
 +     *
 +     * @return the single loop name.
 +     */
 +    default String getSingleLoopName() {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /**
 +     * Override this method to support single loop. Sets the single loop name.
 +     */
 +    default void setSingleLoopName(final String loopName) {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /**
 +     * Override this method to support single loop.
 +     *
 +     * @return the single loop step label.
 +     */
 +    default String getSingleLoopStepLabel() {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    /**
 +     * Override this method to support single loop. Sets the single loop step label.
 +     */
 +    default void setSingleLoopStepLabel(final String stepLabel) {
 +        throw new UnsupportedOperationException();
 +    }
 +
 +    @Override
 +    default void incrLoops() {
 +        if (NESTED_LOOP.equals(getValidLoopRequirement())) {
 +            getNestedLoops().peek().increment();
 +        } else {
-             setSingleLoopCount((short) (getSingleLoopCount() + 1));
++            final int loops = getSingleLoopCount();
++            if (loops == Integer.MAX_VALUE)
++                throw new IllegalStateException("Loop counter has exceeded the maximum supported value of " + Integer.MAX_VALUE);
++            setSingleLoopCount(loops + 1);
 +        }
 +    }
 +
 +    /**
 +     * @return the current loop count for single loops or the latest loop count for nested loops.
 +     */
 +    @Override
 +    default int loops() {
 +        return loops(null);
 +    }
 +
 +    /**
 +     * Obtain a loop count for a named loop or for the current loop count for single loops or the latest loop count for nested loops.
 +     *
 +     * @param loopName the optional name applied to the loop
 +     * @return the count for the loop identified by the given loopName or current loop count for single loops or latest loop for nested loops.
 +     */
 +    @Override
 +    default int loops(final String loopName) {
 +        if (NESTED_LOOP.equals(getValidLoopRequirement())) {
 +            return getNestedLoopCount(loopName);
 +        } else if (loopName == null ||
 +                Objects.equals(loopName, getSingleLoopName()) ||
 +                Objects.equals(loopName, getSingleLoopStepLabel())) {
 +            return getSingleLoopCount();
 +        }
 +        throw new IllegalArgumentException("Single loop name not defined: " + loopName);
 +    }
 +
 +    /**
 +     * Initialises loops depending on the {@link #getLoopRequirement()} loop type.
 +     *
 +     * @param stepLabel the label of the step initialising the loops.
 +     * @param loopName  the optional user defined name for referencing the loop counter
 +     */
 +    @Override
 +    default void initialiseLoops(final String stepLabel, final String loopName) {
 +        if (NESTED_LOOP.equals(getValidLoopRequirement())) {
 +            initialiseNestedLoops(stepLabel, loopName);
 +        } else {
 +            setSingleLoopStepLabel(stepLabel);
 +            setSingleLoopName(loopName);
 +        }
 +    }
 +
 +    /**
 +     * Resets loops depending on the {@link #getLoopRequirement()} loop type.
 +     */
 +    @Override
 +    default void resetLoops() {
 +        if (NESTED_LOOP.equals(getValidLoopRequirement())) {
 +            getNestedLoops().pop();
 +        } else {
-             setSingleLoopCount((short) 0);
++            setSingleLoopCount(0);
 +        }
 +    }
 +
 +    /**
 +     * @return the loop names that can be used to reference loops.
 +     */
 +    @Override
 +    default Set<String> getLoopNames() {
 +        if (NESTED_LOOP.equals(getValidLoopRequirement())) {
 +            return getNestedLoopNames().keySet();
 +        } else {
 +            return Stream.of(getSingleLoopName(), getSingleLoopStepLabel())
 +                    .filter(Objects::nonNull)
 +                    .collect(Collectors.toSet());
 +        }
 +    }
 +
 +    default TraverserRequirement getValidLoopRequirement() {
 +        final TraverserRequirement loopRequirement = getLoopRequirement();
 +        if (!SINGLE_LOOP.equals(loopRequirement) && !NESTED_LOOP.equals(loopRequirement)) {
 +            throw new IllegalStateException("Invalid loop TraverserRequirement " + loopRequirement);
 +        }
 +        return loopRequirement;
 +    }
 +
 +    default void initialiseNestedLoops(final String stepLabel, final String loopName) {
 +        final Stack<LabelledCounter> nestedLoops = getNestedLoops();
 +        final ReferenceMap loopNames = getNestedLoopNames();
 +        if (nestedLoops.empty() || !nestedLoops.peek().hasLabel(stepLabel)) {
-             final LabelledCounter lc = new LabelledCounter(stepLabel, (short) 0);
++            final LabelledCounter lc = new LabelledCounter(stepLabel, 0);
 +            nestedLoops.push(lc);
 +            loopNames.put(stepLabel, lc);
 +            if (loopName != null && !loopName.equals(stepLabel)) {
 +                loopNames.put(loopName, lc);
 +            }
 +        }
 +    }
 +
 +    default int getNestedLoopCount(final String loopName) {
 +        if (loopName == null) {
 +            return getNestedLoops().peek().count();
 +        } else if (getNestedLoopNames().containsKey(loopName)) {
 +            return ((LabelledCounter) getNestedLoopNames().get(loopName)).count();
 +        } else {
 +            throw new IllegalArgumentException("Nested loop name not defined: " + loopName);
 +        }
 +    }
 +
 +    default void copyNestedLoops(final Stack<LabelledCounter> targetNestedLoops, final ReferenceMap targetLoopNames) {
 +        final Map<LabelledCounter, LabelledCounter> counterMapping = new HashMap<>();
 +
 +        for (LabelledCounter original : getNestedLoops()) {
 +            final LabelledCounter cloned = (LabelledCounter) original.clone();
 +            targetNestedLoops.push(cloned);
 +            counterMapping.put(original, cloned);
 +        }
 +
 +        if (getNestedLoopNames() != null) {
 +            for (Object entry : getNestedLoopNames().entrySet()) {
 +                final ReferenceMap.Entry pair = (ReferenceMap.Entry) entry;
 +                final LabelledCounter original = (LabelledCounter) pair.getValue();
 +                final LabelledCounter cloned = counterMapping.get(original);
 +                if (cloned != null) {
 +                    targetLoopNames.put(pair.getKey(), cloned);
 +                }
 +            }
 +        }
 +    }
 +}
diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
index a9449f5e1a,a6ff843d55..10e5fcd915
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
@@@ -27,12 -26,15 +27,12 @@@ import org.apache.tinkerpop.gremlin.pro
  /**
   * @author Marko A. Rodriguez (http://markorodriguez.com)
   */
 -public class O_OB_S_SE_SL_Traverser<T> extends O_Traverser<T> {
 +public class O_OB_S_SE_SL_Traverser<T> extends O_Traverser<T> implements NL_SL_Traverser<T> {
  
      protected Object sack = null;
-     protected short loops = 0;  // an optimization hack to use a short internally to save bits :)
+     protected int loops = 0;
      protected String loopName = null;
 +    protected String stepLabel;
      protected transient TraversalSideEffects sideEffects;
      protected String future = HALT;
      protected long bulk = 1L;
@@@ -47,14 -49,16 +47,14 @@@
              this.sack = this.sideEffects.getSackInitialValue().get();
      }
  
 -    /////////////////
 -
      @Override
-     public short getSingleLoopCount() {
 -    public void setBulk(final long count) {
 -        this.bulk = count > 0 ? 1L : 0L;
++    public int getSingleLoopCount() {
 +        return this.loops;
      }
  
      @Override
-     public void setSingleLoopCount(short loops) {
 -    public long bulk() {
 -        return this.bulk;
++    public void setSingleLoopCount(final int loops) {
 +        this.loops = loops;
      }
  
      @Override
diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index 881c945e96,6a85f9ebb7..f2a34a9f16
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@@ -154,178 -119,29 +154,179 @@@ namespace Gremlin.Net.IntegrationTest.G
                 {"g_V_emit", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Emit()}}, 
                 {"g_V_untilXidentityX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Until(__.Identity())}}, 
                 {"g_V_timesX5X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Times(5)}}, 
+                {"g_VX1X_repeatXloopsX_timesX100000X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.Loops()).Times(100000)}}, 
 -               {"g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person","name","marko").Repeat(__.Out("created")).Times(1).Values<object>("name")}}, 
 -               {"g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person","name","marko").Repeat(__.Out("created")).Times(0).Values<object>("name")}}, 
 -               {"g_V_haxXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person","name","marko").Times(1).Repeat(__.Out("created")).Values<object>("name")}}, 
 -               {"g_V_haxXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person","name","marko").Times(0).Repeat(__.Out("created")).Values<object>("name")}}, 
 +               {"g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Repeat(__.Out("created")).Times(1).Values<object>("name")}}, 
 +               {"g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Repeat(__.Out("created")).Times(0).Values<object>("name")}}, 
 +               {"g_V_hasXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Times(1).Repeat(__.Out("created")).Values<object>("name")}}, 
 +               {"g_V_hasXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Times(0).Repeat(__.Out("created")).Values<object>("name")}}, 
 +               {"g_V_repeatXboth_hasXnot_productiveXX_timesX3X_constantX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Both().Has("not", "productive")).Times(3).Constant<object>(1)}}, 
 +               {"g_V_hasXnot_productiveX_repeatXbothX_timesX3X_constantX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("not", "productive").Repeat(__.Both()).Times(3).Constant<object>(1)}}, 
 +               {"g_VX1_2_3X_repeatXboth_barrierX_emit_timesX2X_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"], p["vid2"], p["vid3"]).Repeat(__.Both().Barrier()).Emit().Times(2).Path()}}, 
 +               {"g_V_order_byXname_descX_repeatXboth_simplePath_order_byXname_descXX_timesX2X_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Order().By("name", Order.Desc).Repeat(__.Both().SimplePath().Order().By("name", Order.Desc)).Times(2).Path()}}, 
 +               {"g_V_repeatXboth_repeatXorder_byXnameXX_timesX1XX_timesX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Both().Repeat(__.Order().By("name")).Times(1)).Times(1)}}, 
 +               {"g_V_order_byXname_descX_repeatXlocalXout_order_byXnameXXX_timesX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Order().By("name", Order.Desc).Repeat(__.Local<object>(__.Out().Order().By("name"))).Times(1)}}, 
 +               {"g_V_order_byXnameX_repeatXlocalXboth_simplePath_order_byXnameXXX_timesX2X_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Order().By("name").Repeat(__.Local<object>(__.Both().SimplePath().Order().By("name"))).Times(2).Path()}}, 
 +               {"g_V_repeatXunionXoutXknowsX_order_byXnameX_inXcreatedX_order_byXnameXXX_timesX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Union<object>(__.Out("knows").Order().By("name"), __.In("created").Order().By("name"))).Times(1)}}, 
 +               {"g_V_repeatXaddV_propertyXgenerated_trueXX_timesX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV().Property("notGenerated", "true").AddV().Property("notGenerated", "true"), (g,p) =>g.V().Repeat(__.AddV().Property("generated", "true")).Times(2), (g,p) =>g.V().Has("notGenerated"), (g,p) =>g.V().Has("generated")}}, 
 +               {"g_V_repeatXdedup_bothX_timesX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Dedup().Both()).Times(2)}}, 
 +               {"g_V_repeatXaggregateXxXX_timesX2X_selectXxX_limitX1X_unfold", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Aggregate("x")).Times(2).Select<object>("x").Limit<object>(1).Unfold<object>()}}, 
 +               {"g_V_valuesXstrX_repeatXsplitXabcX_conjoinX_timesX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV().Property("str", "ababcczababcc").AddV().Property("str", "abcyabc"), (g,p) =>g.V().Values<object>("str").Repeat(__.Split("abc").Conjoin((string) "")).Times(2)}}, 
 +               {"g_withSackX0X_V_repeatXsackXsumX_byXageX_whereXsack_isXltX59XXXX_timesX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(0l).V().Repeat(__.Sack(Operator.Sum).By("age").Where(__.Sack<object>().Is(P.Lt(59)))).Times(2)}}, 
 +               {"g_V_repeatXinjectXyXX_timesX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Inject("y")).Times(2)}}, 
 +               {"g_V_repeatXunionXconstantXyX_limitX1X_identityXX_timesX3X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Union<object>(__.Constant<object>("y").Limit<object>(1), __.Identity())).Times(2)}}, 
 +               {"g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX1X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances").Tail<object>(2)).Times(1).Values<object>("name")}}, 
 +               {"g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances").Tail<object>(2)).Times(2).Values<object>("name")}}, 
 +               {"g_VX2X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX1X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid2"]).Repeat(__.Out().Local<object>(__.Order().By("performances").Tail<object>(1))).Times(1).Values<object>("name")}}, 
 +               {"g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid250"]).Repeat(__.Out().Local<object>(__.Order().By("performances").Tail<object>(1))).Times(2).Values<object>("name")}}, 
 +               {"g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances").Tail<object>(3).Limit<object>(1)).Times(2).Values<object>("name")}}, 
 +               {"g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances", Order.Desc).Limit<object>(5).Tail<object>(1)).Times(2).Values<object>("name")}}, 
 +               {"g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.OutE().Order().By("weight").Tail<object>(2).InV()).Times(2).Values<object>("name")}}, 
 +               {"g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.OutE().Order().By("weight", Order.Desc).Limit<object>(2).InV()).Times(2).Values<object>("name")}}, 
 +               {"g_V_emit_repeatXout_order_byXnameXX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Out().Order().By("name")).Times(2).Values<object>("name")}}, 
 +               {"g_V_localXemit_repeatXout_order_byXnameXX_timesX2X_valuesXnameXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Local<object>(__.Emit().Repeat(__.Out().Order().By("name")).Times(2).Values<object>("name"))}}, 
 +               {"g_V_emit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Local<object>(__.Out().Order().By("name"))).Times(2).Values<object>("name")}}, 
 +               {"g_V_localXemit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Local<object>(__.Emit().Repeat(__.Local<object>(__.Out().Order().By("name"))).Times(2).Values<object>("name"))}}, 
 +               {"g_V_emitXhasLabelXpersonXX_repeatXout_order_byXnameXX_timesX2X_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Emit(__.HasLabel("person")).Repeat(__.Out().Order().By("name")).Times(2).Values<object>("name")}}, 
 +               {"g_V_untilXloops_isX2XX_repeatXout_order_byXnameXX_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Until(__.Loops().Is(2)).Repeat(__.Out().Order().By("name")).Values<object>("name")}}, 
 +               {"g_V_emit_repeatXdedupX_timesX1X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Dedup()).Times(1)}}, 
 +               {"g_V_emit_repeatXdedupX_timesX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Dedup()).Times(2)}}, 
                 {"g_unionXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>()}}, 
                 {"g_unionXV_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V().Values<object>("name"))}}, 
 -               {"g_unionXVXv1X_VX4XX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V((Vertex) p["v1"]),__.V((Vertex) p["v4"])).Values<object>("name")}}, 
 -               {"g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V().HasLabel("software"),__.V().HasLabel("person")).Values<object>("name")}}, 
 -               {"g_unionXV_out_out_V_hasLabelXsoftwareXX_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V().Out().Out(),__.V().HasLabel("software")).Path()}}, 
 -               {"g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V().Out().Out(),__.V().HasLabel("software")).Path().By("name")}}, 
 -               {"g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.Union<object>(__.V().Out().Out()),__.V().HasLabel("software")).Path().By("name")}}, 
 -               {"g_unionXinjectX1X_injectX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.Inject(1),__.Inject(2))}}, 
 -               {"g_V_unionXconstantX1X_constantX2X_constantX3XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V((Vertex) p["v2"]).Union<object>(__.Constant<object>(p["xx1"]),__.Constant<object>(p["xx2"]),__.Constant<object>(p["xx3"]))}}, 
 -               {"g_V_unionXout__inX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Out(),__.In()).Values<object>("name")}}, 
 -               {"g_VX1X_unionXrepeatXoutX_timesX2X__outX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Union<object>(__.Repeat(__.Out()).Times(2),__.Out()).Values<object>("name")}}, 
 -               {"g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Choose<object>(__.Label().Is("person"),__.Union<object>(__.Out().Values<object>("lang"),__.Out().Values<object>("name")),__.In().Label())}}, 
 -               {"g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Choose<object>(__.Label().Is("person"),__.Union<object>(__.Out().Values<object>("lang"),__.Out().Values<object>("name")),__.In().Label()).GroupCount<object>()}}, 
 -               {"g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Repeat(__.Union<object>(__.Out("created"),__.In("created"))).Times(2),__.Repeat(__.Union<object>(__.In("created"),__.Out("created"))).Times(2)).Label().GroupCount<object>()}}, 
 -               {"g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"],p["vid2"]).Union<object>(__.OutE().Count(),__.InE().Count(),__.OutE().Values<object>("weight").Sum<object>())}}, 
 -               {"g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"],p["vid2"]).Local<object>(__.Union<object>(__.OutE().Count(),__.InE().Count(),__.OutE().Values<object>("weight").Sum<object>()))}}, 
 -               {"g_VX1_2X_localXunionXcountXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"],p["vid2"]).Local<object>(__.Union<object>(__.Count()))}}, 
 -               {"g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.AddV("person").Property("name","alice"),__.AddV("person").Property("name","bob"),__.AddV("person").Property("name","chris")).Values<object>("name")}}, 
 +               {"g_unionXVXv1X_VX4XX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V(p["vid1"]), __.V(p["vid4"])).Values<object>("name")}}, 
 +               {"g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V().HasLabel("software"), __.V().HasLabel("person")).Values<object>("name")}}, 
 +               {"g_unionXV_out_out_V_hasLabelXsoftwareXX_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V().Out().Out(), __.V().HasLabel("software")).Path()}}, 
 +               {"g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.V().Out().Out(), __.V().HasLabel("software")).Path().By("name")}}, 
 +               {"g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.Union<object>(__.V().Out().Out()), __.V().HasLabel("software")).Path().By("name")}}, 
 +               {"g_unionXinjectX1X_injectX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.Inject(1), __.Inject(2))}}, 
 +               {"g_V_unionXconstantX1X_constantX2X_constantX3XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid2"]).Union<object>(__.Constant<object>(1), __.Constant<object>(2), __.Constant<object>(3))}}, 
 +               {"g_V_unionXout__inX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Out(), __.In()).Values<object>("name")}}, 
 +               {"g_VX1X_unionXrepeatXoutX_timesX2X__outX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Union<object>(__.Repeat(__.Out()).Times(2), __.Out()).Values<object>("name")}}, 
 +               {"g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Choose<object>(__.Label().Is("person"), __.Union<object>(__.Out().Values<object>("lang"), __.Out().Values<object>("name")), __.In().Label())}}, 
 +               {"g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Choose<object>(__.Label().Is("person"), __.Union<object>(__.Out().Values<object>("lang"), __.Out().Values<object>("name")), __.In().Label()).GroupCount<object>()}}, 
 +               {"g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Repeat(__.Union<object>(__.Out("created"), __.In("created"))).Times(2), __.Repeat(__.Union<object>(__.In("created"), __.Out("created"))).Times(2)).Label().GroupCount<object>()}}, 
 +               {"g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"], p["vid2"]).Union<object>(__.OutE().Count(), __.InE().Count(), __.OutE().Values<object>("weight").Sum<object>())}}, 
 +               {"g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"], p["vid2"]).Local<object>(__.Union<object>(__.OutE().Count(), __.InE().Count(), __.OutE().Values<object>("weight").Sum<object>()))}}, 
 +               {"g_VX1_2X_localXunionXcountXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"], p["vid2"]).Local<object>(__.Union<object>(__.Count()))}}, 
 +               {"g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Union<object>(__.AddV("person").Property("name", "alice"), __.AddV("person").Property("name", "bob"), __.AddV("person").Property("name", "chris")).Values<object>("name")}}, 
 +               {"g_VX_hasLabelXpersonX_unionX_whereX_out_count_isXgtX2XXX_valuesXageX_notX_whereX_bothE_count_isXgt2XXX_valusXnameXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").Union<object>(__.Where(__.OutE().Count().Is(P.Gt(2))).Values<object>("age"), __.Not(__.Where(__.OutE().Count().Is(P.Gt(2)))).Values<object>("name"))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 123), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_mathXaddX0_5XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 10), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Math("_ + 0.5")}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_isXgtX0XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 5), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Is(P.Gt(0))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 2).AddV("data").Property("int", 3).AddV("data").Property("int", 4), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Sum<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_minX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 1).AddV("data").Property("int", 5).AddV("data").Property("int", 10), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Min<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_maxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 7).AddV("data").Property("int", 14).AddV("data").Property("int", 21), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Max<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_project_byXidentityX_byXmathXmulX10XXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 6), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Project<object>("original", "multiplied").By(__.Identity()).By(__.Math("_ * 10"))}}, 
 +               {"g_injectX99X_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(99).AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).GroupCount<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_BIGDECIMALXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.BigDecimal))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 456), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_mathXmulX1000XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 100), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Math("_ * 1000")}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_isXeqX42XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 42), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Is(P.Eq(42))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 10).AddV("data").Property("int", 20).AddV("data").Property("int", 30), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Sum<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_minX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 5).AddV("data").Property("int", 15).AddV("data").Property("int", 25), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Min<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_maxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 100).AddV("data").Property("int", 200).AddV("data").Property("int", 300), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Max<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_project_byXidentityX_byXmathXaddX999XXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 50), (g,p) =>g.V().Values<object>("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Project<object>("original", "added").By(__.Identity()).By(__.Math("_ + 999"))}}, 
 +               {"g_injectX777X_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(777).AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).GroupCount<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_BIGINTXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.BigInt))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 5), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_mathXaddX20XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 10), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).Math("_ + 20")}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_isXltX10XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 7), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).Is(P.Lt(10))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 1).AddV("data").Property("int", 2).AddV("data").Property("int", 3), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).Sum<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_project_byXidentityX_byXmathXmulX2XXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 8), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).Project<object>("original", "doubled").By(__.Identity()).By(__.Math("_ * 2"))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_chooseXisXeqX12XX_constantXtwelveX_constantXotherXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 12), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).Choose<object>(__.Is(P.Eq(12)), __.Constant<object>("twelve"), __.Constant<object>("other"))}}, 
 +               {"g_injectX15X_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(15).AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).GroupCount<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_BYTEXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Byte))}}, 
 +               {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values<object>("datetime").Is(P.TypeOf(GType.DateTime))}}, 
 +               {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_project_byXidentityX_byXdateAddXDT_dayX1XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values<object>("datetime").Is(P.TypeOf(GType.DateTime)).Project<object>("original", "nextDay").By(__.Identity()).By(__.DateAdd(DT.Day, 1))}}, 
 +               {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_dateDiffXdatetimeX2023_08_10XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values<object>("datetime").Is(P.TypeOf(GType.DateTime)).DateDiff(DateTimeOffset.Parse("2023-08-08T00:00:30Z"))}}, 
 +               {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_whereXisXgtXdatetimeX2020_01_01XXXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values<object>("datetime").Is(P.TypeOf(GType.DateTime)).Where(__.Is(P.Gt(DateTimeOffset.Parse("2020-01-01T00:00Z"))))}}, 
 +               {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_chooseXisXeqXdatetimeX2023_08_08XXXX_constantXmatchX_constantXnoMatchXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values<object>("datetime").Is(P.TypeOf(GType.DateTime)).Choose<object>(__.Is(P.Eq(DateTimeOffset.Parse("2023-08-08T00:00Z"))), __.Constant<object>("match"), __.Constant<o [...]
 +               {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_localXaggregateXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values<object>("datetime").Is(P.TypeOf(GType.DateTime)).Local<object>(__.Aggregate("a")).Cap<object>("a")}}, 
 +               {"g_injectXdatetimeX_isXtypeOfXGType_DATETIMEXX_aggregateXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(DateTimeOffset.Parse("2023-08-08T00:00Z")).Is(P.TypeOf(GType.DateTime)).Aggregate("a").Cap<object>("a")}}, 
 +               {"g_injectXdatetimeX_isXtypeOfXGType_DATETIMEXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(DateTimeOffset.Parse("2023-08-08T00:00Z")).Is(P.TypeOf(GType.DateTime)).GroupCount<object>()}}, 
 +               {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("double", 1.5d), (g,p) =>g.V().Values<object>("double").Is(P.TypeOf(GType.Double))}}, 
 +               {"g_E_valuesXweightX_isXtypeOfXGType_DOUBLEXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.E().Values<object>("weight").Is(P.TypeOf(GType.Double))}}, 
 +               {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_mathXceilX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("double", 2.7d), (g,p) =>g.V().Values<object>("double").Is(P.TypeOf(GType.Double)).Math("ceil _")}}, 
 +               {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_isXgtX1_0XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("double", 0.8d).AddV("data").Property("double", 1.2d), (g,p) =>g.V().Values<object>("double").Is(P.TypeOf(GType.Double)).Is(P.Gt(1.0d))}}, 
 +               {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("double", 1.5d).AddV("data").Property("double", 2.5d).AddV("data").Property("double", 3.5d), (g,p) =>g.V().Values<object>("double").Is(P.TypeOf(GType.Double)).Sum<object>()}}, 
 +               {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_minX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("double", 0.1d).AddV("data").Property("double", 0.5d).AddV("data").Property("double", 0.9d), (g,p) =>g.V().Values<object>("double").Is(P.TypeOf(GType.Double)).Min<object>()}}, 
 +               {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_maxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("double", 2.1d).AddV("data").Property("double", 3.7d).AddV("data").Property("double", 1.9d), (g,p) =>g.V().Values<object>("double").Is(P.TypeOf(GType.Double)).Max<object>()}}, 
 +               {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_meanX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("double", 2.1d).AddV("data").Property("double", 4.1d).AddV("data").Property("double", 6.1d), (g,p) =>g.V().Values<object>("double").Is(P.TypeOf(GType.Double)).Mean<object>()}}, 
 +               {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_order_byXascX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("double", 3.2d).AddV("data").Property("double", 1.8d).AddV("data").Property("double", 2.5d), (g,p) =>g.V().Values<object>("double").Is(P.TypeOf(GType.Double)).Order().By(Order.Asc)}}, 
 +               {"g_injectX5_5dX_isXtypeOfXGType_DOUBLEXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(5.5d).Is(P.TypeOf(GType.Double)).GroupCount<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_DOUBLEXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Double))}}, 
 +               {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("float", 2.5), (g,p) =>g.V().Values<object>("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float))}}, 
 +               {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_mathXmulX2XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("float", 3.0), (g,p) =>g.V().Values<object>("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Math("_ * 2")}}, 
 +               {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_isXeqX1_5XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("float", 1.5), (g,p) =>g.V().Values<object>("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Is(P.Eq(1.5))}}, 
 +               {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("float", 1.5).AddV("data").Property("float", 2.5).AddV("data").Property("float", 3.0), (g,p) =>g.V().Values<object>("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Sum<object>()}}, 
 +               {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_project_byXidentityX_byXmathXmulX10XXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("float", 4.5), (g,p) =>g.V().Values<object>("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Project<object>("original", "multiplied").By(__.Identity()).By(__.Math("_ * 10"))}}, 
 +               {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_whereXisXgtX1_0XXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("float", 0.5).AddV("data").Property("float", 1.5), (g,p) =>g.V().Values<object>("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Where(__.Is(P.Gt(1.0)))}}, 
 +               {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_chooseXisXeqX3_0XX_constantXthreeX_constantXotherXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("float", 3.0), (g,p) =>g.V().Values<object>("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Choose<object>(__.Is(P.Eq(3.0)), __.Constant<object>("three"), __.Constant<object>("other"))}}, 
 +               {"g_injectX2_0fX_isXtypeOfXGType_FLOATXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(2.0).AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).GroupCount<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_FLOATXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Float))}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_INTXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Int))}}, 
 +               {"g_V_hasXage_typeOfXGType_INTXX_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("age", P.TypeOf(GType.Int)).Values<object>("name")}}, 
 +               {"g_V_whereXvaluesXageX_isXtypeOfXGType_INTXXX_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Where(__.Values<object>("age").Is(P.TypeOf(GType.Int))).Values<object>("name")}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_INTXX_mathXincX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("name", "age").Is(P.TypeOf(GType.Int)).Math("_ + 1")}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_INTXX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Int)).Sum<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_INTXX_minX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Int)).Min<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_INTXX_maxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Int)).Max<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_INTXX_meanX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Int)).Mean<object>()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_INTXX_order_byXdescX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Int)).Order().By(Order.Desc)}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_INTXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Int)).GroupCount<object>()}}, 
 +               {"g_V_valuesXnameX_fold_isXtypeOfXGType_LISTXX_count", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("name").Fold().Is(P.TypeOf(GType.List)).Count()}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_LISTXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.List))}}, 
 +               {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("list", new List<object> { "a", "b", "c" }), (g,p) =>g.V().Values<object>("list").Is(P.TypeOf(GType.List))}}, 
 +               {"g_V_hasXlist_typeOfXGType_LISTXX_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("name", "test").Property("list", new List<object> { 1, 2, 3 }), (g,p) =>g.V().Has("list", P.TypeOf(GType.List)).Values<object>("name")}}, 
 +               {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_unfold", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("list", new List<object> { "x", "y", "z" }), (g,p) =>g.V().Values<object>("list").Is(P.TypeOf(GType.List)).Unfold<object>()}}, 
 +               {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_countXlocalX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("list", new List<object> { 1, 2, 3, 4, 5 }), (g,p) =>g.V().Values<object>("list").Is(P.TypeOf(GType.List)).Count(Scope.Local)}}, 
 +               {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_unfold_rangeX1_3X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("list", new List<object> { "first", "second", "third", "fourth" }), (g,p) =>g.V().Values<object>("list").Is(P.TypeOf(GType.List)).Unfold<object>().Range<object>(1, 3)}}, 
 +               {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_project_byXidentityX_byXcountXlocalX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("list", new List<object> { "apple", "banana" }), (g,p) =>g.V().Values<object>("list").Is(P.TypeOf(GType.List)).Project<object>("original", "size").By(__.Identity()).By(__.Count(Scope.Local))}}, 
 +               {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_whereXcountXlocalX_isXgtX2XXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("list", new List<object> { 1 }).AddV("data").Property("list", new List<object> { 1, 2, 3 }), (g,p) =>g.V().Values<object>("list").Is(P.TypeOf(GType.List)).Where(__.Count(Scope.Local).Is(P.Gt(2)))}}, 
 +               {"g_injectXlistX_isXtypeOfXGType_LISTXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new List<object> { "test" }).Is(P.TypeOf(GType.List)).GroupCount<object>()}}, 
 +               {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("long", 1l), (g,p) =>g.V().Values<object>("long").Is(P.TypeOf(GType.Long))}}, 
 +               {"g_V_hasXlong_typeOfXGType_LONGXX_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("name", "test").Property("long", 1l), (g,p) =>g.V().Has("long", P.TypeOf(GType.Long)).Values<object>("name")}}, 
 +               {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX_mathXmulX2XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("long", 5l), (g,p) =>g.V().Values<object>("long").Is(P.TypeOf(GType.Long)).Math("_ * 2")}}, 
 +               {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX_isXgtX5XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("long", 10l), (g,p) =>g.V().Values<object>("long").Is(P.TypeOf(GType.Long)).Is(P.Gt(5l))}}, 
 +               {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("long", 1l).AddV("data").Property("long", 2l).AddV("data").Property("long", 3l), (g,p) =>g.V().Values<object>("long").Is(P.TypeOf(GType.Long)).Sum<object>()}}, 
 +               {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX_localXaggregateXaXX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("long", 100l), (g,p) =>g.V().Values<object>("long").Is(P.TypeOf(GType.Long)).Local<object>(__.Aggregate("a")).Cap<object>("a")}}, 
 +               {"g_V_hasLabelXpersonX_valueMap_isXtypeOfXGType_MAPXX_count", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").ValueMap<object, object>().Is(P.TypeOf(GType.Map)).Count()}}, 
 +               {"g_V_groupCount_byXlabelX_isXtypeOfXGType_MAPX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().GroupCount<object>().By(T.Label).Is(P.TypeOf(GType.Map))}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_MAPXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Map))}}, 
 +               {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("map", new Dictionary<object, object> {{ "key1", "1" }, { "key2", "2" }}), (g,p) =>g.V().Values<object>("map").Is(P.TypeOf(GType.Map))}}, 
 +               {"g_V_hasXmap_typeOfXGType_MAPXX_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("name", "test").Property("map", new Dictionary<object, object> {{ "a", 1 }, { "b", 2 }}), (g,p) =>g.V().Has("map", P.TypeOf(GType.Map)).Values<object>("name")}}, 
 +               {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX_countXlocalX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("map", new Dictionary<object, object> {{ "a", 1 }, { "b", 2 }, { "c", 3 }}), (g,p) =>g.V().Values<object>("map").Is(P.TypeOf(GType.Map)).Count(Scope.Local)}}, 
 +               {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX_selectXvaluesX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("map", new Dictionary<object, object> {{ "city", "NYC" }, { "country", "USA" }}), (g,p) =>g.V().Values<object>("map").Is(P.TypeOf(GType.Map)).Select<object>(Column.Values)}}, 
 +               {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX_whereX_countXlocalX_isXgtX1XXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("map", new Dictionary<object, object> {{ "single", "value" }}).AddV("data").Property("map", new Dictionary<object, object> {{ "key1", "1" }, { "key2", "2" }}), (g,p) =>g.V().Values<object>("map").Is(P.TypeOf(GType.Map)).Where(__.Count(Scope.Local).Is(P.Gt(1)))}}, 
 +               {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX_foldX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("map", new Dictionary<object, object> {{ "a", 1 }}).AddV("data").Property("map", new Dictionary<object, object> {{ "b", 2 }, { "c", 3 }}), (g,p) =>g.V().Values<object>("map").Is(P.TypeOf(GType.Map)).Fold()}}, 
 +               {"g_V_valueXnameX_aggregateXxX_capXxX_isXtypeOfXGType_SETX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("name").Aggregate("x").Cap<object>("x").Is(P.TypeOf(GType.Set))}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_SETXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Set))}}, 
 +               {"g_V_valueMap_selectXkeysX_dedup_isXtypeOfXGType_SETXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().ValueMap<object, object>().Select<object>(Column.Keys).Dedup().Is(P.TypeOf(GType.Set))}}, 
 +               {"g_V_valuesXsetX_isXtypeOfXGType_SETXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("set", new HashSet<object> { "a", "b", "c" }), (g,p) =>g.V().Values<object>("set").Is(P.TypeOf(GType.Set))}}, 
 +               {"g_V_hasXset_typeOfXGType_SETXX_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("name", "test").Property("set", new HashSet<object> { 1, 2, 3 }), (g,p) =>g.V().Has("set", P.TypeOf(GType.Set)).Values<object>("name")}}, 
 +               {"g_V_valuesXsetX_isXtypeOfXGType_SETXX_unfold", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("set", new HashSet<object> { "x", "y", "z" }), (g,p) =>g.V().Values<object>("set").Is(P.TypeOf(GType.Set)).Unfold<object>()}}, 
 +               {"g_V_valuesXsetX_isXtypeOfXGType_SETXX_countXlocalX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("set", new HashSet<object> { 1, 2, 3, 4, 5 }), (g,p) =>g.V().Values<object>("set").Is(P.TypeOf(GType.Set)).Count(Scope.Local)}}, 
 +               {"g_V_valuesXsetX_isXtypeOfXGType_SETXX_whereXcountXlocalX_isXeqX3XXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("set", new HashSet<object> { 1, 2 }).AddV("data").Property("set", new HashSet<object> { 1, 2, 3 }), (g,p) =>g.V().Values<object>("set").Is(P.TypeOf(GType.Set)).Where(__.Count(Scope.Local).Is(P.Eq(3)))}}, 
 +               {"g_V_valuesXsetX_isXtypeOfXGType_SETXX_unfold_limitX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("set", new HashSet<object> { "first", "second", "third", "fourth" }), (g,p) =>g.V().Values<object>("set").Is(P.TypeOf(GType.Set)).Unfold<object>().Limit<object>(2)}}, 
 +               {"g_injectXsetX_isXtypeOfXGType_SETXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new HashSet<object> { "test" }).Is(P.TypeOf(GType.Set)).GroupCount<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 100), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_mathXmulX10XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 50), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short)).Math("_ * 10")}}, 
 +               {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_isXbetweenX20_30XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 25), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short)).Is(P.Between(20, 30))}}, 
 +               {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_minX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 10).AddV("data").Property("int", 20).AddV("data").Property("int", 30), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short)).Min<object>()}}, 
 +               {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_maxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("int", 15).AddV("data").Property("int", 25).AddV("data").Property("int", 35), (g,p) =>g.V().Values<object>("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short)).Max<object>()}}, 
 +               {"g_injectX42X_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_storeXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(42).AsNumber(GType.Short).Is(P.TypeOf(GType.Short))}}, 
 +               {"g_V_valuesXageX_isXtypeOfXGType_SHORTXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Short))}}, 
 +               {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values<object>("uuid").Is(P.TypeOf(GType.UUID))}}, 
 +               {"g_V_hasXuuid_typeOfXGType_UUIDXX_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("name", "test").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Has("uuid", P.TypeOf(GType.UUID)).Values<object>("name")}}, 
 +               {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_project_byXidentityX_byXconstantXuuidXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values<object>("uuid").Is(P.TypeOf(GType.UUID)).Project<object>("original", "type").By(__.Identity()).By(__.Constant<object>("uuid"))}}, 
 +               {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_whereXisXeqXuuidXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values<object>("uuid").Is(P.TypeOf(GType.UUID)).Where(__.Is(P.Eq(Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479"))))}}, 
 +               {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_chooseXisXeqXuuidXX_constantXmatchX_constantXnoMatchXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values<object>("uuid").Is(P.TypeOf(GType.UUID)).Choose<object>(__.Is(P.Eq(Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479"))), __.Constant<object>("match"), __.Constant<object>("noMatch"))}}, 
 +               {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_localXaggregateXaXX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values<object>("uuid").Is(P.TypeOf(GType.UUID)).Local<object>(__.Aggregate("a")).Cap<object>("a")}}, 
 +               {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_aggregateXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values<object>("uuid").Is(P.TypeOf(GType.UUID)).Aggregate("a").Cap<object>("a")}}, 
 +               {"g_injectXuuidX_isXtypeOfXGType_UUIDXX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")).Is(P.TypeOf(GType.UUID)).GroupCount<object>()}}, 
 +               {"g_injectXUUIDX47af10b_58cc_4372_a567_0f02b2f3d479XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479"))}}, 
 +               {"g_injectXUUIDXXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(Guid.NewGuid())}}, 
 +               {"g_V_aggregateXxX_byXnameX_byXageX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate("x").By("name").By("age").Cap<object>("x")}}, 
 +               {"g_V_localXaggregateXxX_byXnameXX_byXageX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Local<object>(__.Aggregate("x").By("name").By("age")).Cap<object>("x")}}, 
                 {"g_V_valuesXageX_allXgtX32XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").All(P.Gt(32))}}, 
                 {"g_V_valuesXageX_whereXisXP_gtX33XXX_fold_allXgtX33XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Where(__.Is(P.Gt(33))).Fold().All(P.Gt(33))}}, 
                 {"g_V_valuesXageX_order_byXdescX_fold_allXgtX10XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Values<object>("age").Order().By(Order.Desc).Fold().All(P.Gt(10))}}, 
diff --cc gremlin-go/driver/cucumber/gremlin.go
index bd5e0137b6,321b7fc946..a48d603a5a
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@@ -124,44 -90,14 +124,45 @@@ var translationMap = map[string][]func(
      "g_V_emit": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Emit()}}, 
      "g_V_untilXidentityX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Until(gremlingo.T__.Identity())}}, 
      "g_V_timesX5X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Times(5)}}, 
+     "g_VX1X_repeatXloopsX_timesX100000X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid1"]).Repeat(gremlingo.T__.Loops()).Times(100000)}}, 
 -    "g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("person", "name", "marko").Repeat(gremlingo.T__.Out("created")).Times(1).Values("name")}}, 
 -    "g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("person", "name", "marko").Repeat(gremlingo.T__.Out("created")).Times(0).Values("name")}}, 
 -    "g_V_haxXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("person", "name", "marko").Times(1).Repeat(gremlingo.T__.Out("created")).Values("name")}}, 
 -    "g_V_haxXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("person", "name", "marko").Times(0).Repeat(gremlingo.T__.Out("created")).Values("name")}}, 
 +    "g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("person", "name", "marko").Repeat(gremlingo.T__.Out("created")).Times(1).Values("name")}}, 
 +    "g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("person", "name", "marko").Repeat(gremlingo.T__.Out("created")).Times(0).Values("name")}}, 
 +    "g_V_hasXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("person", "name", "marko").Times(1).Repeat(gremlingo.T__.Out("created")).Values("name")}}, 
 +    "g_V_hasXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("person", "name", "marko").Times(0).Repeat(gremlingo.T__.Out("created")).Values("name")}}, 
 +    "g_V_repeatXboth_hasXnot_productiveXX_timesX3X_constantX1X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.Both().Has("not", "productive")).Times(3).Constant(1)}}, 
 +    "g_V_hasXnot_productiveX_repeatXbothX_timesX3X_constantX1X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("not", "productive").Repeat(gremlingo.T__.Both()).Times(3).Constant(1)}}, 
 +    "g_VX1_2_3X_repeatXboth_barrierX_emit_timesX2X_path": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid1"], p["vid2"], p["vid3"]).Repeat(gremlingo.T__.Both().Barrier()).Emit().Times(2).Path()}}, 
 +    "g_V_order_byXname_descX_repeatXboth_simplePath_order_byXname_descXX_timesX2X_path": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Order().By("name", gremlingo.Order.Desc).Repeat(gremlingo.T__.Both().SimplePath().Order().By("name", gremlingo.Order.Desc)).Times(2).Path()}}, 
 +    "g_V_repeatXboth_repeatXorder_byXnameXX_timesX1XX_timesX1X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.Both().Repeat(gremlingo.T__.Order().By("name")).Times(1)).Times(1)}}, 
 +    "g_V_order_byXname_descX_repeatXlocalXout_order_byXnameXXX_timesX1X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Order().By("name", gremlingo.Order.Desc).Repeat(gremlingo.T__.Local(gremlingo.T__.Out().Order().By("name"))).Times(1)}}, 
 +    "g_V_order_byXnameX_repeatXlocalXboth_simplePath_order_byXnameXXX_timesX2X_path": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Order().By("name").Repeat(gremlingo.T__.Local(gremlingo.T__.Both().SimplePath().Order().By("name"))).Times(2).Path()}}, 
 +    "g_V_repeatXunionXoutXknowsX_order_byXnameX_inXcreatedX_order_byXnameXXX_timesX1X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.Union(gremlingo.T__.Out("knows").Order().By("name"), gremlingo.T__.In("created").Order().By("name"))).Times(1)}}, 
 +    "g_V_repeatXaddV_propertyXgenerated_trueXX_timesX2X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.AddV().Property("notGenerated", "true").AddV().Property("notGenerated", "true")}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.AddV().Property("generated", "true")).Times(2)}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *greml [...]
 +    "g_V_repeatXdedup_bothX_timesX2X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.Dedup().Both()).Times(2)}}, 
 +    "g_V_repeatXaggregateXxXX_timesX2X_selectXxX_limitX1X_unfold": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.Aggregate("x")).Times(2).Select("x").Limit(1).Unfold()}}, 
 +    "g_V_valuesXstrX_repeatXsplitXabcX_conjoinX_timesX2X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.AddV().Property("str", "ababcczababcc").AddV().Property("str", "abcyabc")}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Values("str").Repeat(gremlingo.T__.Split("abc").Conjoin("")).Times(2)}}, 
 +    "g_withSackX0X_V_repeatXsackXsumX_byXageX_whereXsack_isXltX59XXXX_timesX2X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int64(0)).V().Repeat(gremlingo.T__.Sack(gremlingo.Operator.Sum).By("age").Where(gremlingo.T__.Sack().Is(gremlingo.P.Lt(59)))).Times(2)}}, 
 +    "g_V_repeatXinjectXyXX_timesX2X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.Inject("y")).Times(2)}}, 
 +    "g_V_repeatXunionXconstantXyX_limitX1X_identityXX_timesX3X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Repeat(gremlingo.T__.Union(gremlingo.T__.Constant("y").Limit(1), gremlingo.T__.Identity())).Times(2)}}, 
 +    "g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX1X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.Out().Order().By("performances").Tail(2)).Times(1).Values("name")}}, 
 +    "g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.Out().Order().By("performances").Tail(2)).Times(2).Values("name")}}, 
 +    "g_VX2X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX1X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid2"]).Repeat(gremlingo.T__.Out().Local(gremlingo.T__.Order().By("performances").Tail(1))).Times(1).Values("name")}}, 
 +    "g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid250"]).Repeat(gremlingo.T__.Out().Local(gremlingo.T__.Order().By("performances").Tail(1))).Times(2).Values("name")}}, 
 +    "g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.Out().Order().By("performances").Tail(3).Limit(1)).Times(2).Values("name")}}, 
 +    "g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.Out().Order().By("performances", gremlingo.Order.Desc).Limit(5).Tail(1)).Times(2).Values("name")}}, 
 +    "g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.OutE().Order().By("weight").Tail(2).InV()).Times(2).Values("name")}}, 
 +    "g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid3"]).Repeat(gremlingo.T__.OutE().Order().By("weight", gremlingo.Order.Desc).Limit(2).InV()).Times(2).Values("name")}}, 
 +    "g_V_emit_repeatXout_order_byXnameXX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Emit().Repeat(gremlingo.T__.Out().Order().By("name")).Times(2).Values("name")}}, 
 +    "g_V_localXemit_repeatXout_order_byXnameXX_timesX2X_valuesXnameXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Local(gremlingo.T__.Emit().Repeat(gremlingo.T__.Out().Order().By("name")).Times(2).Values("name"))}}, 
 +    "g_V_emit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Emit().Repeat(gremlingo.T__.Local(gremlingo.T__.Out().Order().By("name"))).Times(2).Values("name")}}, 
 +    "g_V_localXemit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Local(gremlingo.T__.Emit().Repeat(gremlingo.T__.Local(gremlingo.T__.Out().Order().By("name"))).Times(2).Values("name"))}}, 
 +    "g_V_emitXhasLabelXpersonXX_repeatXout_order_byXnameXX_timesX2X_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Emit(gremlingo.T__.HasLabel("person")).Repeat(gremlingo.T__.Out().Order().By("name")).Times(2).Values("name")}}, 
 +    "g_V_untilXloops_isX2XX_repeatXout_order_byXnameXX_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Until(gremlingo.T__.Loops().Is(2)).Repeat(gremlingo.T__.Out().Order().By("name")).Values("name")}}, 
 +    "g_V_emit_repeatXdedupX_timesX1X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Emit().Repeat(gremlingo.T__.Dedup()).Times(1)}}, 
 +    "g_V_emit_repeatXdedupX_timesX2X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Emit().Repeat(gremlingo.T__.Dedup()).Times(2)}}, 
      "g_unionXX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union()}}, 
      "g_unionXV_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V().Values("name"))}}, 
 -    "g_unionXVXv1X_VX4XX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V(p["v1"]), gremlingo.T__.V(p["v4"])).Values("name")}}, 
 +    "g_unionXVXv1X_VX4XX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V(p["vid1"]), gremlingo.T__.V(p["vid4"])).Values("name")}}, 
      "g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V().HasLabel("software"), gremlingo.T__.V().HasLabel("person")).Values("name")}}, 
      "g_unionXV_out_out_V_hasLabelXsoftwareXX_path": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V().Out().Out(), gremlingo.T__.V().HasLabel("software")).Path()}}, 
      "g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V().Out().Out(), gremlingo.T__.V().HasLabel("software")).Path().By("name")}}, 
diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
index 01680cf878,4749161753..c9567d4455
--- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
+++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
@@@ -155,178 -110,29 +155,179 @@@ const gremlins = 
      g_V_emit: [function({g}) { return g.V().emit() }], 
      g_V_untilXidentityX: [function({g}) { return g.V().until(__.identity()) }], 
      g_V_timesX5X: [function({g}) { return g.V().times(5) }], 
+     g_VX1X_repeatXloopsX_timesX100000X: [function({g, vid1}) { return g.V(vid1).repeat(__.loops()).times(100000) }], 
 -    g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name: [function({g}) { return g.V().has("person","name","marko").repeat(__.out("created")).times(1).values("name") }], 
 -    g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name: [function({g}) { return g.V().has("person","name","marko").repeat(__.out("created")).times(0).values("name") }], 
 -    g_V_haxXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name: [function({g}) { return g.V().has("person","name","marko").times(1).repeat(__.out("created")).values("name") }], 
 -    g_V_haxXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name: [function({g}) { return g.V().has("person","name","marko").times(0).repeat(__.out("created")).values("name") }], 
 +    g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name: [function({g}) { return g.V().has("person", "name", "marko").repeat(__.out("created")).times(1).values("name") }], 
 +    g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name: [function({g}) { return g.V().has("person", "name", "marko").repeat(__.out("created")).times(0).values("name") }], 
 +    g_V_hasXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name: [function({g}) { return g.V().has("person", "name", "marko").times(1).repeat(__.out("created")).values("name") }], 
 +    g_V_hasXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name: [function({g}) { return g.V().has("person", "name", "marko").times(0).repeat(__.out("created")).values("name") }], 
 +    g_V_repeatXboth_hasXnot_productiveXX_timesX3X_constantX1X: [function({g}) { return g.V().repeat(__.both().has("not", "productive")).times(3).constant(1) }], 
 +    g_V_hasXnot_productiveX_repeatXbothX_timesX3X_constantX1X: [function({g}) { return g.V().has("not", "productive").repeat(__.both()).times(3).constant(1) }], 
 +    g_VX1_2_3X_repeatXboth_barrierX_emit_timesX2X_path: [function({g, vid3, vid2, vid1}) { return g.V(vid1, vid2, vid3).repeat(__.both().barrier()).emit().times(2).path() }], 
 +    g_V_order_byXname_descX_repeatXboth_simplePath_order_byXname_descXX_timesX2X_path: [function({g}) { return g.V().order().by("name", Order.desc).repeat(__.both().simplePath().order().by("name", Order.desc)).times(2).path() }], 
 +    g_V_repeatXboth_repeatXorder_byXnameXX_timesX1XX_timesX1X: [function({g}) { return g.V().repeat(__.both().repeat(__.order().by("name")).times(1)).times(1) }], 
 +    g_V_order_byXname_descX_repeatXlocalXout_order_byXnameXXX_timesX1X: [function({g}) { return g.V().order().by("name", Order.desc).repeat(__.local(__.out().order().by("name"))).times(1) }], 
 +    g_V_order_byXnameX_repeatXlocalXboth_simplePath_order_byXnameXXX_timesX2X_path: [function({g}) { return g.V().order().by("name").repeat(__.local(__.both().simplePath().order().by("name"))).times(2).path() }], 
 +    g_V_repeatXunionXoutXknowsX_order_byXnameX_inXcreatedX_order_byXnameXXX_timesX1X: [function({g}) { return g.V().repeat(__.union(__.out("knows").order().by("name"), __.in_("created").order().by("name"))).times(1) }], 
 +    g_V_repeatXaddV_propertyXgenerated_trueXX_timesX2X: [function({g}) { return g.addV().property("notGenerated", "true").addV().property("notGenerated", "true") }, function({g}) { return g.V().repeat(__.addV().property("generated", "true")).times(2) }, function({g}) { return g.V().has("notGenerated") }, function({g}) { return g.V().has("generated") }], 
 +    g_V_repeatXdedup_bothX_timesX2X: [function({g}) { return g.V().repeat(__.dedup().both()).times(2) }], 
 +    g_V_repeatXaggregateXxXX_timesX2X_selectXxX_limitX1X_unfold: [function({g}) { return g.V().repeat(__.aggregate("x")).times(2).select("x").limit(1).unfold() }], 
 +    g_V_valuesXstrX_repeatXsplitXabcX_conjoinX_timesX2X: [function({g}) { return g.addV().property("str", "ababcczababcc").addV().property("str", "abcyabc") }, function({g}) { return g.V().values("str").repeat(__.split("abc").conjoin("")).times(2) }], 
 +    g_withSackX0X_V_repeatXsackXsumX_byXageX_whereXsack_isXltX59XXXX_timesX2X: [function({g}) { return g.withSack(0).V().repeat(__.sack(Operator.sum).by("age").where(__.sack().is(P.lt(59)))).times(2) }], 
 +    g_V_repeatXinjectXyXX_timesX2X: [function({g}) { return g.V().repeat(__.inject("y")).times(2) }], 
 +    g_V_repeatXunionXconstantXyX_limitX1X_identityXX_timesX3X: [function({g}) { return g.V().repeat(__.union(__.constant("y").limit(1), __.identity())).times(2) }], 
 +    g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX1X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.out().order().by("performances").tail(2)).times(1).values("name") }], 
 +    g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.out().order().by("performances").tail(2)).times(2).values("name") }], 
 +    g_VX2X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX1X_valuesXnameX: [function({g, vid2}) { return g.V(vid2).repeat(__.out().local(__.order().by("performances").tail(1))).times(1).values("name") }], 
 +    g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX: [function({g, vid250}) { return g.V(vid250).repeat(__.out().local(__.order().by("performances").tail(1))).times(2).values("name") }], 
 +    g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.out().order().by("performances").tail(3).limit(1)).times(2).values("name") }], 
 +    g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.out().order().by("performances", Order.desc).limit(5).tail(1)).times(2).values("name") }], 
 +    g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.outE().order().by("weight").tail(2).inV()).times(2).values("name") }], 
 +    g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX: [function({g, vid3}) { return g.V(vid3).repeat(__.outE().order().by("weight", Order.desc).limit(2).inV()).times(2).values("name") }], 
 +    g_V_emit_repeatXout_order_byXnameXX_timesX2X_valuesXnameX: [function({g}) { return g.V().emit().repeat(__.out().order().by("name")).times(2).values("name") }], 
 +    g_V_localXemit_repeatXout_order_byXnameXX_timesX2X_valuesXnameXX: [function({g}) { return g.V().local(__.emit().repeat(__.out().order().by("name")).times(2).values("name")) }], 
 +    g_V_emit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameX: [function({g}) { return g.V().emit().repeat(__.local(__.out().order().by("name"))).times(2).values("name") }], 
 +    g_V_localXemit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameXX: [function({g}) { return g.V().local(__.emit().repeat(__.local(__.out().order().by("name"))).times(2).values("name")) }], 
 +    g_V_emitXhasLabelXpersonXX_repeatXout_order_byXnameXX_timesX2X_valuesXnameX: [function({g}) { return g.V().emit(__.hasLabel("person")).repeat(__.out().order().by("name")).times(2).values("name") }], 
 +    g_V_untilXloops_isX2XX_repeatXout_order_byXnameXX_valuesXnameX: [function({g}) { return g.V().until(__.loops().is(2)).repeat(__.out().order().by("name")).values("name") }], 
 +    g_V_emit_repeatXdedupX_timesX1X: [function({g}) { return g.V().emit().repeat(__.dedup()).times(1) }], 
 +    g_V_emit_repeatXdedupX_timesX2X: [function({g}) { return g.V().emit().repeat(__.dedup()).times(2) }], 
      g_unionXX: [function({g}) { return g.union() }], 
      g_unionXV_name: [function({g}) { return g.union(__.V().values("name")) }], 
 -    g_unionXVXv1X_VX4XX_name: [function({g, v4, v1}) { return g.union(__.V(v1),__.V(v4)).values("name") }], 
 -    g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name: [function({g}) { return g.union(__.V().hasLabel("software"),__.V().hasLabel("person")).values("name") }], 
 -    g_unionXV_out_out_V_hasLabelXsoftwareXX_path: [function({g}) { return g.union(__.V().out().out(),__.V().hasLabel("software")).path() }], 
 -    g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX: [function({g}) { return g.union(__.V().out().out(),__.V().hasLabel("software")).path().by("name") }], 
 -    g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX: [function({g}) { return g.union(__.union(__.V().out().out()),__.V().hasLabel("software")).path().by("name") }], 
 -    g_unionXinjectX1X_injectX2X: [function({g}) { return g.union(__.inject(1),__.inject(2)) }], 
 -    g_V_unionXconstantX1X_constantX2X_constantX3XX: [function({g, xx1, xx3, xx2, v2}) { return g.V(v2).union(__.constant(xx1),__.constant(xx2),__.constant(xx3)) }], 
 -    g_V_unionXout__inX_name: [function({g}) { return g.V().union(__.out(),__.in_()).values("name") }], 
 -    g_VX1X_unionXrepeatXoutX_timesX2X__outX_name: [function({g, vid1}) { return g.V(vid1).union(__.repeat(__.out()).times(2),__.out()).values("name") }], 
 -    g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX: [function({g}) { return g.V().choose(__.label().is("person"),__.union(__.out().values("lang"),__.out().values("name")),__.in_().label()) }], 
 -    g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX_groupCount: [function({g}) { return g.V().choose(__.label().is("person"),__.union(__.out().values("lang"),__.out().values("name")),__.in_().label()).groupCount() }], 
 -    g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount: [function({g}) { return g.V().union(__.repeat(__.union(__.out("created"),__.in_("created"))).times(2),__.repeat(__.union(__.in_("created"),__.out("created"))).times(2)).label().groupCount() }], 
 -    g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX: [function({g, vid2, vid1}) { return g.V(vid1,vid2).union(__.outE().count(),__.inE().count(),__.outE().values("weight").sum()) }], 
 -    g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX: [function({g, vid2, vid1}) { return g.V(vid1,vid2).local(__.union(__.outE().count(),__.inE().count(),__.outE().values("weight").sum())) }], 
 -    g_VX1_2X_localXunionXcountXX: [function({g, vid2, vid1}) { return g.V(vid1,vid2).local(__.union(__.count())) }], 
 -    g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name: [function({g}) { return g.union(__.addV("person").property("name","alice"),__.addV("person").property("name","bob"),__.addV("person").property("name","chris")).values("name") }], 
 +    g_unionXVXv1X_VX4XX_name: [function({g, vid4, vid1}) { return g.union(__.V(vid1), __.V(vid4)).values("name") }], 
 +    g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name: [function({g}) { return g.union(__.V().hasLabel("software"), __.V().hasLabel("person")).values("name") }], 
 +    g_unionXV_out_out_V_hasLabelXsoftwareXX_path: [function({g}) { return g.union(__.V().out().out(), __.V().hasLabel("software")).path() }], 
 +    g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX: [function({g}) { return g.union(__.V().out().out(), __.V().hasLabel("software")).path().by("name") }], 
 +    g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX: [function({g}) { return g.union(__.union(__.V().out().out()), __.V().hasLabel("software")).path().by("name") }], 
 +    g_unionXinjectX1X_injectX2X: [function({g}) { return g.union(__.inject(1), __.inject(2)) }], 
 +    g_V_unionXconstantX1X_constantX2X_constantX3XX: [function({g, vid2}) { return g.V(vid2).union(__.constant(1), __.constant(2), __.constant(3)) }], 
 +    g_V_unionXout__inX_name: [function({g}) { return g.V().union(__.out(), __.in_()).values("name") }], 
 +    g_VX1X_unionXrepeatXoutX_timesX2X__outX_name: [function({g, vid1}) { return g.V(vid1).union(__.repeat(__.out()).times(2), __.out()).values("name") }], 
 +    g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX: [function({g}) { return g.V().choose(__.label().is("person"), __.union(__.out().values("lang"), __.out().values("name")), __.in_().label()) }], 
 +    g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX_groupCount: [function({g}) { return g.V().choose(__.label().is("person"), __.union(__.out().values("lang"), __.out().values("name")), __.in_().label()).groupCount() }], 
 +    g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount: [function({g}) { return g.V().union(__.repeat(__.union(__.out("created"), __.in_("created"))).times(2), __.repeat(__.union(__.in_("created"), __.out("created"))).times(2)).label().groupCount() }], 
 +    g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX: [function({g, vid2, vid1}) { return g.V(vid1, vid2).union(__.outE().count(), __.inE().count(), __.outE().values("weight").sum()) }], 
 +    g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX: [function({g, vid2, vid1}) { return g.V(vid1, vid2).local(__.union(__.outE().count(), __.inE().count(), __.outE().values("weight").sum())) }], 
 +    g_VX1_2X_localXunionXcountXX: [function({g, vid2, vid1}) { return g.V(vid1, vid2).local(__.union(__.count())) }], 
 +    g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name: [function({g}) { return g.union(__.addV("person").property("name", "alice"), __.addV("person").property("name", "bob"), __.addV("person").property("name", "chris")).values("name") }], 
 +    g_VX_hasLabelXpersonX_unionX_whereX_out_count_isXgtX2XXX_valuesXageX_notX_whereX_bothE_count_isXgt2XXX_valusXnameXX: [function({g}) { return g.V().hasLabel("person").union(__.where(__.outE().count().is(P.gt(2))).values("age"), __.not(__.where(__.outE().count().is(P.gt(2)))).values("name")) }], 
 +    g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX: [function({g}) { return g.addV("data").property("int", 123) }, function({g}) { return g.V().values("int").asNumber(GType.bigDecimal).is(P.typeOf(GType.bigDecimal)) }], 
 +    g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_mathXaddX0_5XX: [function({g}) { return g.addV("data").property("int", 10) }, function({g}) { return g.V().values("int").asNumber(GType.bigDecimal).is(P.typeOf(GType.bigDecimal)).math("_ + 0.5") }], 
 +    g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_isXgtX0XX: [function({g}) { return g.addV("data").property("int", 5) }, function({g}) { return g.V().values("int").asNumber(GType.bigDecimal).is(P.typeOf(GType.bigDecimal)).is(P.gt(0)) }], 
 +    g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_sumX: [function({g}) { return g.addV("data").property("int", 2).addV("data").property("int", 3).addV("data").property("int", 4) }, function({g}) { return g.V().values("int").asNumber(GType.bigDecimal).is(P.typeOf(GType.bigDecimal)).sum() }], 
 +    g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_minX: [function({g}) { return g.addV("data").property("int", 1).addV("data").property("int", 5).addV("data").property("int", 10) }, function({g}) { return g.V().values("int").asNumber(GType.bigDecimal).is(P.typeOf(GType.bigDecimal)).min() }], 
 +    g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_maxX: [function({g}) { return g.addV("data").property("int", 7).addV("data").property("int", 14).addV("data").property("int", 21) }, function({g}) { return g.V().values("int").asNumber(GType.bigDecimal).is(P.typeOf(GType.bigDecimal)).max() }], 
 +    g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_project_byXidentityX_byXmathXmulX10XXX: [function({g}) { return g.addV("data").property("int", 6) }, function({g}) { return g.V().values("int").asNumber(GType.bigDecimal).is(P.typeOf(GType.bigDecimal)).project("original", "multiplied").by(__.identity()).by(__.math("_ * 10")) }], 
 +    g_injectX99X_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_groupCount: [function({g}) { return g.inject(99).asNumber(GType.bigDecimal).is(P.typeOf(GType.bigDecimal)).groupCount() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_BIGDECIMALXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.bigDecimal)) }], 
 +    g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX: [function({g}) { return g.addV("data").property("int", 456) }, function({g}) { return g.V().values("int").asNumber(GType.bigInt).is(P.typeOf(GType.bigInt)) }], 
 +    g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_mathXmulX1000XX: [function({g}) { return g.addV("data").property("int", 100) }, function({g}) { return g.V().values("int").asNumber(GType.bigInt).is(P.typeOf(GType.bigInt)).math("_ * 1000") }], 
 +    g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_isXeqX42XX: [function({g}) { return g.addV("data").property("int", 42) }, function({g}) { return g.V().values("int").asNumber(GType.bigInt).is(P.typeOf(GType.bigInt)).is(P.eq(42)) }], 
 +    g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_sumX: [function({g}) { return g.addV("data").property("int", 10).addV("data").property("int", 20).addV("data").property("int", 30) }, function({g}) { return g.V().values("int").asNumber(GType.bigInt).is(P.typeOf(GType.bigInt)).sum() }], 
 +    g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_minX: [function({g}) { return g.addV("data").property("int", 5).addV("data").property("int", 15).addV("data").property("int", 25) }, function({g}) { return g.V().values("int").asNumber(GType.bigInt).is(P.typeOf(GType.bigInt)).min() }], 
 +    g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_maxX: [function({g}) { return g.addV("data").property("int", 100).addV("data").property("int", 200).addV("data").property("int", 300) }, function({g}) { return g.V().values("int").asNumber(GType.bigInt).is(P.typeOf(GType.bigInt)).max() }], 
 +    g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_project_byXidentityX_byXmathXaddX999XXX: [function({g}) { return g.addV("data").property("int", 50) }, function({g}) { return g.V().values("int").asNumber(GType.bigInt).is(P.typeOf(GType.bigInt)).project("original", "added").by(__.identity()).by(__.math("_ + 999")) }], 
 +    g_injectX777X_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_groupCount: [function({g}) { return g.inject(777).asNumber(GType.bigInt).is(P.typeOf(GType.bigInt)).groupCount() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_BIGINTXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.bigInt)) }], 
 +    g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX: [function({g}) { return g.addV("data").property("int", 5) }, function({g}) { return g.V().values("int").asNumber(GType.byte).is(P.typeOf(GType.byte)) }], 
 +    g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_mathXaddX20XX: [function({g}) { return g.addV("data").property("int", 10) }, function({g}) { return g.V().values("int").asNumber(GType.byte).is(P.typeOf(GType.byte)).math("_ + 20") }], 
 +    g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_isXltX10XX: [function({g}) { return g.addV("data").property("int", 7) }, function({g}) { return g.V().values("int").asNumber(GType.byte).is(P.typeOf(GType.byte)).is(P.lt(10)) }], 
 +    g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_sumX: [function({g}) { return g.addV("data").property("int", 1).addV("data").property("int", 2).addV("data").property("int", 3) }, function({g}) { return g.V().values("int").asNumber(GType.byte).is(P.typeOf(GType.byte)).sum() }], 
 +    g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_project_byXidentityX_byXmathXmulX2XXX: [function({g}) { return g.addV("data").property("int", 8) }, function({g}) { return g.V().values("int").asNumber(GType.byte).is(P.typeOf(GType.byte)).project("original", "doubled").by(__.identity()).by(__.math("_ * 2")) }], 
 +    g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_chooseXisXeqX12XX_constantXtwelveX_constantXotherXX: [function({g}) { return g.addV("data").property("int", 12) }, function({g}) { return g.V().values("int").asNumber(GType.byte).is(P.typeOf(GType.byte)).choose(__.is(P.eq(12)), __.constant("twelve"), __.constant("other")) }], 
 +    g_injectX15X_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_groupCount: [function({g}) { return g.inject(15).asNumber(GType.byte).is(P.typeOf(GType.byte)).groupCount() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_BYTEXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.byte)) }], 
 +    g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)) }], 
 +    g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_project_byXidentityX_byXdateAddXDT_dayX1XX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)).project("original", "nextDay").by(__.identity()).by(__.dateAdd(DT.day, 1)) }], 
 +    g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_dateDiffXdatetimeX2023_08_10XX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)).dateDiff(new Date('2023-08-08T00:00:30Z')) }], 
 +    g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_whereXisXgtXdatetimeX2020_01_01XXXX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)).where(__.is(P.gt(new Date('2020-01-01T00:00Z')))) }], 
 +    g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_chooseXisXeqXdatetimeX2023_08_08XXXX_constantXmatchX_constantXnoMatchXX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)).choose(__.is(P.eq(new Date('2023-08-08T00:00Z'))), __.constant("match"), __.constant("noMatch")) }], 
 +    g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_localXaggregateXaX_capXaX: [function({g}) { return g.addV("event").property("datetime", new Date('2023-08-08T00:00Z')) }, function({g}) { return g.V().values("datetime").is(P.typeOf(GType.datetime)).local(__.aggregate("a")).cap("a") }], 
 +    g_injectXdatetimeX_isXtypeOfXGType_DATETIMEXX_aggregateXaX_capXaX: [function({g}) { return g.inject(new Date('2023-08-08T00:00Z')).is(P.typeOf(GType.datetime)).aggregate("a").cap("a") }], 
 +    g_injectXdatetimeX_isXtypeOfXGType_DATETIMEXX_groupCount: [function({g}) { return g.inject(new Date('2023-08-08T00:00Z')).is(P.typeOf(GType.datetime)).groupCount() }], 
 +    g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX: [function({g}) { return g.addV("data").property("double", 1.5) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)) }], 
 +    g_E_valuesXweightX_isXtypeOfXGType_DOUBLEXX: [function({g}) { return g.E().values("weight").is(P.typeOf(GType.double)) }], 
 +    g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_mathXceilX: [function({g}) { return g.addV("data").property("double", 2.7) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)).math("ceil _") }], 
 +    g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_isXgtX1_0XX: [function({g}) { return g.addV("data").property("double", 0.8).addV("data").property("double", 1.2) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)).is(P.gt(1.0)) }], 
 +    g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_sumX: [function({g}) { return g.addV("data").property("double", 1.5).addV("data").property("double", 2.5).addV("data").property("double", 3.5) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)).sum() }], 
 +    g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_minX: [function({g}) { return g.addV("data").property("double", 0.1).addV("data").property("double", 0.5).addV("data").property("double", 0.9) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)).min() }], 
 +    g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_maxX: [function({g}) { return g.addV("data").property("double", 2.1).addV("data").property("double", 3.7).addV("data").property("double", 1.9) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)).max() }], 
 +    g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_meanX: [function({g}) { return g.addV("data").property("double", 2.1).addV("data").property("double", 4.1).addV("data").property("double", 6.1) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)).mean() }], 
 +    g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_order_byXascX: [function({g}) { return g.addV("data").property("double", 3.2).addV("data").property("double", 1.8).addV("data").property("double", 2.5) }, function({g}) { return g.V().values("double").is(P.typeOf(GType.double)).order().by(Order.asc) }], 
 +    g_injectX5_5dX_isXtypeOfXGType_DOUBLEXX_groupCount: [function({g}) { return g.inject(5.5).is(P.typeOf(GType.double)).groupCount() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_DOUBLEXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.double)) }], 
 +    g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX: [function({g}) { return g.addV("data").property("float", 2.5) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)) }], 
 +    g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_mathXmulX2XX: [function({g}) { return g.addV("data").property("float", 3.0) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)).math("_ * 2") }], 
 +    g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_isXeqX1_5XX: [function({g}) { return g.addV("data").property("float", 1.5) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)).is(P.eq(1.5)) }], 
 +    g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_sumX: [function({g}) { return g.addV("data").property("float", 1.5).addV("data").property("float", 2.5).addV("data").property("float", 3.0) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)).sum() }], 
 +    g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_project_byXidentityX_byXmathXmulX10XXX: [function({g}) { return g.addV("data").property("float", 4.5) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)).project("original", "multiplied").by(__.identity()).by(__.math("_ * 10")) }], 
 +    g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_whereXisXgtX1_0XXX: [function({g}) { return g.addV("data").property("float", 0.5).addV("data").property("float", 1.5) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)).where(__.is(P.gt(1.0))) }], 
 +    g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_chooseXisXeqX3_0XX_constantXthreeX_constantXotherXX: [function({g}) { return g.addV("data").property("float", 3.0) }, function({g}) { return g.V().values("float").asNumber(GType.float).is(P.typeOf(GType.float)).choose(__.is(P.eq(3.0)), __.constant("three"), __.constant("other")) }], 
 +    g_injectX2_0fX_isXtypeOfXGType_FLOATXX_groupCount: [function({g}) { return g.inject(2.0).asNumber(GType.float).is(P.typeOf(GType.float)).groupCount() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_FLOATXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.float)) }], 
 +    g_V_valuesXageX_isXtypeOfXGType_INTXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.int)) }], 
 +    g_V_hasXage_typeOfXGType_INTXX_valuesXnameX: [function({g}) { return g.V().has("age", P.typeOf(GType.int)).values("name") }], 
 +    g_V_whereXvaluesXageX_isXtypeOfXGType_INTXXX_valuesXnameX: [function({g}) { return g.V().where(__.values("age").is(P.typeOf(GType.int))).values("name") }], 
 +    g_V_valuesXageX_isXtypeOfXGType_INTXX_mathXincX: [function({g}) { return g.V().values("name", "age").is(P.typeOf(GType.int)).math("_ + 1") }], 
 +    g_V_valuesXageX_isXtypeOfXGType_INTXX_sumX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.int)).sum() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_INTXX_minX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.int)).min() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_INTXX_maxX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.int)).max() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_INTXX_meanX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.int)).mean() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_INTXX_order_byXdescX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.int)).order().by(Order.desc) }], 
 +    g_V_valuesXageX_isXtypeOfXGType_INTXX_groupCount: [function({g}) { return g.V().values("age").is(P.typeOf(GType.int)).groupCount() }], 
 +    g_V_valuesXnameX_fold_isXtypeOfXGType_LISTXX_count: [function({g}) { return g.V().values("name").fold().is(P.typeOf(GType.list)).count() }], 
 +    g_V_valuesXageX_isXtypeOfXGType_LISTXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.list)) }], 
 +    g_V_valuesXlistX_isXtypeOfXGType_LISTXX: [function({g}) { return g.addV("data").property("list", ["a", "b", "c"]) }, function({g}) { return g.V().values("list").is(P.typeOf(GType.list)) }], 
 +    g_V_hasXlist_typeOfXGType_LISTXX_valuesXnameX: [function({g}) { return g.addV("data").property("name", "test").property("list", [1, 2, 3]) }, function({g}) { return g.V().has("list", P.typeOf(GType.list)).values("name") }], 
 +    g_V_valuesXlistX_isXtypeOfXGType_LISTXX_unfold: [function({g}) { return g.addV("data").property("list", ["x", "y", "z"]) }, function({g}) { return g.V().values("list").is(P.typeOf(GType.list)).unfold() }], 
 +    g_V_valuesXlistX_isXtypeOfXGType_LISTXX_countXlocalX: [function({g}) { return g.addV("data").property("list", [1, 2, 3, 4, 5]) }, function({g}) { return g.V().values("list").is(P.typeOf(GType.list)).count(Scope.local) }], 
 +    g_V_valuesXlistX_isXtypeOfXGType_LISTXX_unfold_rangeX1_3X: [function({g}) { return g.addV("data").property("list", ["first", "second", "third", "fourth"]) }, function({g}) { return g.V().values("list").is(P.typeOf(GType.list)).unfold().range(1, 3) }], 
 +    g_V_valuesXlistX_isXtypeOfXGType_LISTXX_project_byXidentityX_byXcountXlocalX: [function({g}) { return g.addV("data").property("list", ["apple", "banana"]) }, function({g}) { return g.V().values("list").is(P.typeOf(GType.list)).project("original", "size").by(__.identity()).by(__.count(Scope.local)) }], 
 +    g_V_valuesXlistX_isXtypeOfXGType_LISTXX_whereXcountXlocalX_isXgtX2XXX: [function({g}) { return g.addV("data").property("list", [1]).addV("data").property("list", [1, 2, 3]) }, function({g}) { return g.V().values("list").is(P.typeOf(GType.list)).where(__.count(Scope.local).is(P.gt(2))) }], 
 +    g_injectXlistX_isXtypeOfXGType_LISTXX_groupCount: [function({g}) { return g.inject(["test"]).is(P.typeOf(GType.list)).groupCount() }], 
 +    g_V_valuesXlongX_isXtypeOfXGType_LONGXX: [function({g}) { return g.addV("data").property("long", 1) }, function({g}) { return g.V().values("long").is(P.typeOf(GType.long)) }], 
 +    g_V_hasXlong_typeOfXGType_LONGXX_valuesXnameX: [function({g}) { return g.addV("data").property("name", "test").property("long", 1) }, function({g}) { return g.V().has("long", P.typeOf(GType.long)).values("name") }], 
 +    g_V_valuesXlongX_isXtypeOfXGType_LONGXX_mathXmulX2XX: [function({g}) { return g.addV("data").property("long", 5) }, function({g}) { return g.V().values("long").is(P.typeOf(GType.long)).math("_ * 2") }], 
 +    g_V_valuesXlongX_isXtypeOfXGType_LONGXX_isXgtX5XX: [function({g}) { return g.addV("data").property("long", 10) }, function({g}) { return g.V().values("long").is(P.typeOf(GType.long)).is(P.gt(5)) }], 
 +    g_V_valuesXlongX_isXtypeOfXGType_LONGXX_sumX: [function({g}) { return g.addV("data").property("long", 1).addV("data").property("long", 2).addV("data").property("long", 3) }, function({g}) { return g.V().values("long").is(P.typeOf(GType.long)).sum() }], 
 +    g_V_valuesXlongX_isXtypeOfXGType_LONGXX_localXaggregateXaXX_capXaX: [function({g}) { return g.addV("data").property("long", 100) }, function({g}) { return g.V().values("long").is(P.typeOf(GType.long)).local(__.aggregate("a")).cap("a") }], 
 +    g_V_hasLabelXpersonX_valueMap_isXtypeOfXGType_MAPXX_count: [function({g}) { return g.V().hasLabel("person").valueMap().is(P.typeOf(GType.map)).count() }], 
 +    g_V_groupCount_byXlabelX_isXtypeOfXGType_MAPX: [function({g}) { return g.V().groupCount().by(T.label).is(P.typeOf(GType.map)) }], 
 +    g_V_valuesXageX_isXtypeOfXGType_MAPXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.map)) }], 
 +    g_V_valuesXmapX_isXtypeOfXGType_MAPXX: [function({g}) { return g.addV("data").property("map", new Map([["key1", "1"], ["key2", "2"]])) }, function({g}) { return g.V().values("map").is(P.typeOf(GType.map)) }], 
 +    g_V_hasXmap_typeOfXGType_MAPXX_valuesXnameX: [function({g}) { return g.addV("data").property("name", "test").property("map", new Map([["a", 1], ["b", 2]])) }, function({g}) { return g.V().has("map", P.typeOf(GType.map)).values("name") }], 
 +    g_V_valuesXmapX_isXtypeOfXGType_MAPXX_countXlocalX: [function({g}) { return g.addV("data").property("map", new Map([["a", 1], ["b", 2], ["c", 3]])) }, function({g}) { return g.V().values("map").is(P.typeOf(GType.map)).count(Scope.local) }], 
 +    g_V_valuesXmapX_isXtypeOfXGType_MAPXX_selectXvaluesX: [function({g}) { return g.addV("data").property("map", new Map([["city", "NYC"], ["country", "USA"]])) }, function({g}) { return g.V().values("map").is(P.typeOf(GType.map)).select(Column.values) }], 
 +    g_V_valuesXmapX_isXtypeOfXGType_MAPXX_whereX_countXlocalX_isXgtX1XXX: [function({g}) { return g.addV("data").property("map", new Map([["single", "value"]])).addV("data").property("map", new Map([["key1", "1"], ["key2", "2"]])) }, function({g}) { return g.V().values("map").is(P.typeOf(GType.map)).where(__.count(Scope.local).is(P.gt(1))) }], 
 +    g_V_valuesXmapX_isXtypeOfXGType_MAPXX_foldX: [function({g}) { return g.addV("data").property("map", new Map([["a", 1]])).addV("data").property("map", new Map([["b", 2], ["c", 3]])) }, function({g}) { return g.V().values("map").is(P.typeOf(GType.map)).fold() }], 
 +    g_V_valueXnameX_aggregateXxX_capXxX_isXtypeOfXGType_SETX: [function({g}) { return g.V().values("name").aggregate("x").cap("x").is(P.typeOf(GType.set)) }], 
 +    g_V_valuesXageX_isXtypeOfXGType_SETXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.set)) }], 
 +    g_V_valueMap_selectXkeysX_dedup_isXtypeOfXGType_SETXX: [function({g}) { return g.V().valueMap().select(Column.keys).dedup().is(P.typeOf(GType.set)) }], 
 +    g_V_valuesXsetX_isXtypeOfXGType_SETXX: [function({g}) { return g.addV("data").property("set", new Set(["a", "b", "c"])) }, function({g}) { return g.V().values("set").is(P.typeOf(GType.set)) }], 
 +    g_V_hasXset_typeOfXGType_SETXX_valuesXnameX: [function({g}) { return g.addV("data").property("name", "test").property("set", new Set([1, 2, 3])) }, function({g}) { return g.V().has("set", P.typeOf(GType.set)).values("name") }], 
 +    g_V_valuesXsetX_isXtypeOfXGType_SETXX_unfold: [function({g}) { return g.addV("data").property("set", new Set(["x", "y", "z"])) }, function({g}) { return g.V().values("set").is(P.typeOf(GType.set)).unfold() }], 
 +    g_V_valuesXsetX_isXtypeOfXGType_SETXX_countXlocalX: [function({g}) { return g.addV("data").property("set", new Set([1, 2, 3, 4, 5])) }, function({g}) { return g.V().values("set").is(P.typeOf(GType.set)).count(Scope.local) }], 
 +    g_V_valuesXsetX_isXtypeOfXGType_SETXX_whereXcountXlocalX_isXeqX3XXX: [function({g}) { return g.addV("data").property("set", new Set([1, 2])).addV("data").property("set", new Set([1, 2, 3])) }, function({g}) { return g.V().values("set").is(P.typeOf(GType.set)).where(__.count(Scope.local).is(P.eq(3))) }], 
 +    g_V_valuesXsetX_isXtypeOfXGType_SETXX_unfold_limitX2X: [function({g}) { return g.addV("data").property("set", new Set(["first", "second", "third", "fourth"])) }, function({g}) { return g.V().values("set").is(P.typeOf(GType.set)).unfold().limit(2) }], 
 +    g_injectXsetX_isXtypeOfXGType_SETXX_groupCount: [function({g}) { return g.inject(new Set(["test"])).is(P.typeOf(GType.set)).groupCount() }], 
 +    g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX: [function({g}) { return g.addV("data").property("int", 100) }, function({g}) { return g.V().values("int").asNumber(GType.short).is(P.typeOf(GType.short)) }], 
 +    g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_mathXmulX10XX: [function({g}) { return g.addV("data").property("int", 50) }, function({g}) { return g.V().values("int").asNumber(GType.short).is(P.typeOf(GType.short)).math("_ * 10") }], 
 +    g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_isXbetweenX20_30XX: [function({g}) { return g.addV("data").property("int", 25) }, function({g}) { return g.V().values("int").asNumber(GType.short).is(P.typeOf(GType.short)).is(P.between(20, 30)) }], 
 +    g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_minX: [function({g}) { return g.addV("data").property("int", 10).addV("data").property("int", 20).addV("data").property("int", 30) }, function({g}) { return g.V().values("int").asNumber(GType.short).is(P.typeOf(GType.short)).min() }], 
 +    g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_maxX: [function({g}) { return g.addV("data").property("int", 15).addV("data").property("int", 25).addV("data").property("int", 35) }, function({g}) { return g.V().values("int").asNumber(GType.short).is(P.typeOf(GType.short)).max() }], 
 +    g_injectX42X_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_storeXaX_capXaX: [function({g}) { return g.inject(42).asNumber(GType.short).is(P.typeOf(GType.short)) }], 
 +    g_V_valuesXageX_isXtypeOfXGType_SHORTXX: [function({g}) { return g.V().values("age").is(P.typeOf(GType.short)) }], 
 +    g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX: [function({g}) { return g.addV("data").property("uuid", uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")) }, function({g}) { return g.V().values("uuid").is(P.typeOf(GType.uuid)) }], 
 +    g_V_hasXuuid_typeOfXGType_UUIDXX_valuesXnameX: [function({g}) { return g.addV("data").property("name", "test").property("uuid", uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")) }, function({g}) { return g.V().has("uuid", P.typeOf(GType.uuid)).values("name") }], 
 +    g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_project_byXidentityX_byXconstantXuuidXX: [function({g}) { return g.addV("data").property("uuid", uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")) }, function({g}) { return g.V().values("uuid").is(P.typeOf(GType.uuid)).project("original", "type").by(__.identity()).by(__.constant("uuid")) }], 
 +    g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_whereXisXeqXuuidXX: [function({g}) { return g.addV("data").property("uuid", uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")) }, function({g}) { return g.V().values("uuid").is(P.typeOf(GType.uuid)).where(__.is(P.eq(uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")))) }], 
 +    g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_chooseXisXeqXuuidXX_constantXmatchX_constantXnoMatchXX: [function({g}) { return g.addV("data").property("uuid", uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")) }, function({g}) { return g.V().values("uuid").is(P.typeOf(GType.uuid)).choose(__.is(P.eq(uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479"))), __.constant("match"), __.constant("noMatch")) }], 
 +    g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_localXaggregateXaXX_capXaX: [function({g}) { return g.addV("data").property("uuid", uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")) }, function({g}) { return g.V().values("uuid").is(P.typeOf(GType.uuid)).local(__.aggregate("a")).cap("a") }], 
 +    g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_aggregateXaX_capXaX: [function({g}) { return g.addV("data").property("uuid", uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")) }, function({g}) { return g.V().values("uuid").is(P.typeOf(GType.uuid)).aggregate("a").cap("a") }], 
 +    g_injectXuuidX_isXtypeOfXGType_UUIDXX_groupCount: [function({g}) { return g.inject(uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")).is(P.typeOf(GType.uuid)).groupCount() }], 
 +    g_injectXUUIDX47af10b_58cc_4372_a567_0f02b2f3d479XX: [function({g}) { return g.inject(uuid.parse("f47af10b-58cc-4372-a567-0f02b2f3d479")) }], 
 +    g_injectXUUIDXXX: [function({g}) { return g.inject(uuid.v4()) }], 
 +    g_V_aggregateXxX_byXnameX_byXageX_capXxX: [function({g}) { return g.V().aggregate("x").by("name").by("age").cap("x") }], 
 +    g_V_localXaggregateXxX_byXnameXX_byXageX_capXxX: [function({g}) { return g.V().local(__.aggregate("x").by("name").by("age")).cap("x") }], 
      g_V_valuesXageX_allXgtX32XX: [function({g}) { return g.V().values("age").all(P.gt(32)) }], 
      g_V_valuesXageX_whereXisXP_gtX33XXX_fold_allXgtX33XX: [function({g}) { return g.V().values("age").where(__.is(P.gt(33))).fold().all(P.gt(33)) }], 
      g_V_valuesXageX_order_byXdescX_fold_allXgtX10XX: [function({g}) { return g.V().values("age").order().by(Order.desc).fold().all(P.gt(10)) }], 
diff --cc gremlin-python/src/main/python/tests/feature/gremlin.py
index ac4e000c24,530b3915b7..fc8516cb6b
--- a/gremlin-python/src/main/python/tests/feature/gremlin.py
+++ b/gremlin-python/src/main/python/tests/feature/gremlin.py
@@@ -127,211 -92,62 +127,212 @@@ world.gremlins = 
      'g_V_emit': [(lambda g:g.V().emit())], 
      'g_V_untilXidentityX': [(lambda g:g.V().until(__.identity()))], 
      'g_V_timesX5X': [(lambda g:g.V().times(5))], 
+     'g_VX1X_repeatXloopsX_timesX100000X': [(lambda g, vid1=None:g.V(vid1).repeat(__.loops()).times(100000))], 
 -    'g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name': [(lambda g:g.V().has('person','name','marko').repeat(__.out('created')).times(1).name)], 
 -    'g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name': [(lambda g:g.V().has('person','name','marko').repeat(__.out('created')).times(0).name)], 
 -    'g_V_haxXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name': [(lambda g:g.V().has('person','name','marko').times(1).repeat(__.out('created')).name)], 
 -    'g_V_haxXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name': [(lambda g:g.V().has('person','name','marko').times(0).repeat(__.out('created')).name)], 
 +    'g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name': [(lambda g:g.V().has('person', 'name', 'marko').repeat(__.out('created')).times(1).values('name'))], 
 +    'g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name': [(lambda g:g.V().has('person', 'name', 'marko').repeat(__.out('created')).times(0).values('name'))], 
 +    'g_V_hasXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name': [(lambda g:g.V().has('person', 'name', 'marko').times(1).repeat(__.out('created')).values('name'))], 
 +    'g_V_hasXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name': [(lambda g:g.V().has('person', 'name', 'marko').times(0).repeat(__.out('created')).values('name'))], 
 +    'g_V_repeatXboth_hasXnot_productiveXX_timesX3X_constantX1X': [(lambda g:g.V().repeat(__.both().has('not', 'productive')).times(3).constant(1))], 
 +    'g_V_hasXnot_productiveX_repeatXbothX_timesX3X_constantX1X': [(lambda g:g.V().has('not', 'productive').repeat(__.both()).times(3).constant(1))], 
 +    'g_VX1_2_3X_repeatXboth_barrierX_emit_timesX2X_path': [(lambda g, vid3=None,vid2=None,vid1=None:g.V(vid1, vid2, vid3).repeat(__.both().barrier()).emit().times(2).path())], 
 +    'g_V_order_byXname_descX_repeatXboth_simplePath_order_byXname_descXX_timesX2X_path': [(lambda g:g.V().order().by('name', Order.desc).repeat(__.both().simple_path().order().by('name', Order.desc)).times(2).path())], 
 +    'g_V_repeatXboth_repeatXorder_byXnameXX_timesX1XX_timesX1X': [(lambda g:g.V().repeat(__.both().repeat(__.order().by('name')).times(1)).times(1))], 
 +    'g_V_order_byXname_descX_repeatXlocalXout_order_byXnameXXX_timesX1X': [(lambda g:g.V().order().by('name', Order.desc).repeat(__.local(__.out().order().by('name'))).times(1))], 
 +    'g_V_order_byXnameX_repeatXlocalXboth_simplePath_order_byXnameXXX_timesX2X_path': [(lambda g:g.V().order().by('name').repeat(__.local(__.both().simple_path().order().by('name'))).times(2).path())], 
 +    'g_V_repeatXunionXoutXknowsX_order_byXnameX_inXcreatedX_order_byXnameXXX_timesX1X': [(lambda g:g.V().repeat(__.union(__.out('knows').order().by('name'), __.in_('created').order().by('name'))).times(1))], 
 +    'g_V_repeatXaddV_propertyXgenerated_trueXX_timesX2X': [(lambda g:g.add_v().property('notGenerated', 'true').add_v().property('notGenerated', 'true')), (lambda g:g.V().repeat(__.add_v().property('generated', 'true')).times(2)), (lambda g:g.V().has('notGenerated')), (lambda g:g.V().has('generated'))], 
 +    'g_V_repeatXdedup_bothX_timesX2X': [(lambda g:g.V().repeat(__.dedup().both()).times(2))], 
 +    'g_V_repeatXaggregateXxXX_timesX2X_selectXxX_limitX1X_unfold': [(lambda g:g.V().repeat(__.aggregate('x')).times(2).select('x').limit(1).unfold())], 
 +    'g_V_valuesXstrX_repeatXsplitXabcX_conjoinX_timesX2X': [(lambda g:g.add_v().property('str', 'ababcczababcc').add_v().property('str', 'abcyabc')), (lambda g:g.V().values('str').repeat(__.split('abc').conjoin('')).times(2))], 
 +    'g_withSackX0X_V_repeatXsackXsumX_byXageX_whereXsack_isXltX59XXXX_timesX2X': [(lambda g:g.with_sack(long(0)).V().repeat(__.sack(Operator.sum_).by('age').where(__.sack().is_(P.lt(59)))).times(2))], 
 +    'g_V_repeatXinjectXyXX_timesX2X': [(lambda g:g.V().repeat(__.inject('y')).times(2))], 
 +    'g_V_repeatXunionXconstantXyX_limitX1X_identityXX_timesX3X': [(lambda g:g.V().repeat(__.union(__.constant('y').limit(1), __.identity())).times(2))], 
 +    'g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX1X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out().order().by('performances').tail(2)).times(1).values('name'))], 
 +    'g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out().order().by('performances').tail(2)).times(2).values('name'))], 
 +    'g_VX2X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX1X_valuesXnameX': [(lambda g, vid2=None:g.V(vid2).repeat(__.out().local(__.order().by('performances').tail(1))).times(1).values('name'))], 
 +    'g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX': [(lambda g, vid250=None:g.V(vid250).repeat(__.out().local(__.order().by('performances').tail(1))).times(2).values('name'))], 
 +    'g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out().order().by('performances').tail(3).limit(1)).times(2).values('name'))], 
 +    'g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out().order().by('performances', Order.desc).limit(5).tail(1)).times(2).values('name'))], 
 +    'g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out_e().order().by('weight').tail(2).in_v()).times(2).values('name'))], 
 +    'g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX': [(lambda g, vid3=None:g.V(vid3).repeat(__.out_e().order().by('weight', Order.desc).limit(2).in_v()).times(2).values('name'))], 
 +    'g_V_emit_repeatXout_order_byXnameXX_timesX2X_valuesXnameX': [(lambda g:g.V().emit().repeat(__.out().order().by('name')).times(2).values('name'))], 
 +    'g_V_localXemit_repeatXout_order_byXnameXX_timesX2X_valuesXnameXX': [(lambda g:g.V().local(__.emit().repeat(__.out().order().by('name')).times(2).values('name')))], 
 +    'g_V_emit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameX': [(lambda g:g.V().emit().repeat(__.local(__.out().order().by('name'))).times(2).values('name'))], 
 +    'g_V_localXemit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameXX': [(lambda g:g.V().local(__.emit().repeat(__.local(__.out().order().by('name'))).times(2).values('name')))], 
 +    'g_V_emitXhasLabelXpersonXX_repeatXout_order_byXnameXX_timesX2X_valuesXnameX': [(lambda g:g.V().emit(__.has_label('person')).repeat(__.out().order().by('name')).times(2).values('name'))], 
 +    'g_V_untilXloops_isX2XX_repeatXout_order_byXnameXX_valuesXnameX': [(lambda g:g.V().until(__.loops().is_(2)).repeat(__.out().order().by('name')).values('name'))], 
 +    'g_V_emit_repeatXdedupX_timesX1X': [(lambda g:g.V().emit().repeat(__.dedup()).times(1))], 
 +    'g_V_emit_repeatXdedupX_timesX2X': [(lambda g:g.V().emit().repeat(__.dedup()).times(2))], 
      'g_unionXX': [(lambda g:g.union())], 
 -    'g_unionXV_name': [(lambda g:g.union(__.V().name))], 
 -    'g_unionXVXv1X_VX4XX_name': [(lambda g, v4=None,v1=None:g.union(__.V(v1),__.V(v4)).name)], 
 -    'g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name': [(lambda g:g.union(__.V().has_label('software'),__.V().has_label('person')).name)], 
 -    'g_unionXV_out_out_V_hasLabelXsoftwareXX_path': [(lambda g:g.union(__.V().out().out(),__.V().has_label('software')).path())], 
 -    'g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX': [(lambda g:g.union(__.V().out().out(),__.V().has_label('software')).path().by('name'))], 
 -    'g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX': [(lambda g:g.union(__.union(__.V().out().out()),__.V().has_label('software')).path().by('name'))], 
 -    'g_unionXinjectX1X_injectX2X': [(lambda g:g.union(__.inject(1),__.inject(2)))], 
 -    'g_V_unionXconstantX1X_constantX2X_constantX3XX': [(lambda g, xx1=None,xx3=None,xx2=None,v2=None:g.V(v2).union(__.constant(xx1),__.constant(xx2),__.constant(xx3)))], 
 -    'g_V_unionXout__inX_name': [(lambda g:g.V().union(__.out(),__.in_()).name)], 
 -    'g_VX1X_unionXrepeatXoutX_timesX2X__outX_name': [(lambda g, vid1=None:g.V(vid1).union(__.repeat(__.out()).times(2),__.out()).name)], 
 -    'g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX': [(lambda g:g.V().choose(__.label().is_('person'),__.union(__.out().lang,__.out().name),__.in_().label()))], 
 -    'g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX_groupCount': [(lambda g:g.V().choose(__.label().is_('person'),__.union(__.out().lang,__.out().name),__.in_().label()).group_count())], 
 -    'g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount': [(lambda g:g.V().union(__.repeat(__.union(__.out('created'),__.in_('created'))).times(2),__.repeat(__.union(__.in_('created'),__.out('created'))).times(2)).label().group_count())], 
 -    'g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX': [(lambda g, vid2=None,vid1=None:g.V(vid1,vid2).union(__.out_e().count(),__.in_e().count(),__.out_e().weight.sum_()))], 
 -    'g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX': [(lambda g, vid2=None,vid1=None:g.V(vid1,vid2).local(__.union(__.out_e().count(),__.in_e().count(),__.out_e().weight.sum_())))], 
 -    'g_VX1_2X_localXunionXcountXX': [(lambda g, vid2=None,vid1=None:g.V(vid1,vid2).local(__.union(__.count())))], 
 -    'g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name': [(lambda g:g.union(__.add_v('person').property('name','alice'),__.add_v('person').property('name','bob'),__.add_v('person').property('name','chris')).name)], 
 -    'g_V_valuesXageX_allXgtX32XX': [(lambda g:g.V().age.all_(P.gt(32)))], 
 -    'g_V_valuesXageX_whereXisXP_gtX33XXX_fold_allXgtX33XX': [(lambda g:g.V().age.where(__.is_(P.gt(33))).fold().all_(P.gt(33)))], 
 -    'g_V_valuesXageX_order_byXdescX_fold_allXgtX10XX': [(lambda g:g.V().age.order().by(Order.desc).fold().all_(P.gt(10)))], 
 -    'g_V_valuesXageX_order_byXdescX_fold_allXgtX30XX': [(lambda g:g.V().age.order().by(Order.desc).fold().all_(P.gt(30)))], 
 -    'g_injectXabc_bcdX_allXeqXbcdXX': [(lambda g:g.inject(['abc','bcd']).all_(P.eq('bcd')))], 
 -    'g_injectXbcd_bcdX_allXeqXbcdXX': [(lambda g, xx1=None:g.inject(xx1).all_(P.eq('bcd')))], 
 -    'g_injectXnull_abcX_allXTextP_startingWithXaXX': [(lambda g, xx1=None:g.inject(xx1).all_(TextP.startingWith('a')))], 
 -    'g_injectX5_8_10_10_7X_allXgteX7XX': [(lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).all_(P.gte(7)))], 
 +    'g_unionXV_name': [(lambda g:g.union(__.V().values('name')))], 
 +    'g_unionXVXv1X_VX4XX_name': [(lambda g, vid4=None,vid1=None:g.union(__.V(vid1), __.V(vid4)).values('name'))], 
 +    'g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name': [(lambda g:g.union(__.V().has_label('software'), __.V().has_label('person')).values('name'))], 
 +    'g_unionXV_out_out_V_hasLabelXsoftwareXX_path': [(lambda g:g.union(__.V().out().out(), __.V().has_label('software')).path())], 
 +    'g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX': [(lambda g:g.union(__.V().out().out(), __.V().has_label('software')).path().by('name'))], 
 +    'g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX': [(lambda g:g.union(__.union(__.V().out().out()), __.V().has_label('software')).path().by('name'))], 
 +    'g_unionXinjectX1X_injectX2X': [(lambda g:g.union(__.inject(1), __.inject(2)))], 
 +    'g_V_unionXconstantX1X_constantX2X_constantX3XX': [(lambda g, vid2=None:g.V(vid2).union(__.constant(1), __.constant(2), __.constant(3)))], 
 +    'g_V_unionXout__inX_name': [(lambda g:g.V().union(__.out(), __.in_()).values('name'))], 
 +    'g_VX1X_unionXrepeatXoutX_timesX2X__outX_name': [(lambda g, vid1=None:g.V(vid1).union(__.repeat(__.out()).times(2), __.out()).values('name'))], 
 +    'g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX': [(lambda g:g.V().choose(__.label().is_('person'), __.union(__.out().values('lang'), __.out().values('name')), __.in_().label()))], 
 +    'g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX_groupCount': [(lambda g:g.V().choose(__.label().is_('person'), __.union(__.out().values('lang'), __.out().values('name')), __.in_().label()).group_count())], 
 +    'g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount': [(lambda g:g.V().union(__.repeat(__.union(__.out('created'), __.in_('created'))).times(2), __.repeat(__.union(__.in_('created'), __.out('created'))).times(2)).label().group_count())], 
 +    'g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX': [(lambda g, vid2=None,vid1=None:g.V(vid1, vid2).union(__.out_e().count(), __.in_e().count(), __.out_e().values('weight').sum_()))], 
 +    'g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX': [(lambda g, vid2=None,vid1=None:g.V(vid1, vid2).local(__.union(__.out_e().count(), __.in_e().count(), __.out_e().values('weight').sum_())))], 
 +    'g_VX1_2X_localXunionXcountXX': [(lambda g, vid2=None,vid1=None:g.V(vid1, vid2).local(__.union(__.count())))], 
 +    'g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name': [(lambda g:g.union(__.add_v('person').property('name', 'alice'), __.add_v('person').property('name', 'bob'), __.add_v('person').property('name', 'chris')).values('name'))], 
 +    'g_VX_hasLabelXpersonX_unionX_whereX_out_count_isXgtX2XXX_valuesXageX_notX_whereX_bothE_count_isXgt2XXX_valusXnameXX': [(lambda g:g.V().has_label('person').union(__.where(__.out_e().count().is_(P.gt(2))).values('age'), __.not_(__.where(__.out_e().count().is_(P.gt(2)))).values('name')))], 
 +    'g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX': [(lambda g:g.add_v('data').property('int', 123)), (lambda g:g.V().values('int').as_number(GType.BIGDECIMAL).is_(P.type_of(GType.BIGDECIMAL)))], 
 +    'g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_mathXaddX0_5XX': [(lambda g:g.add_v('data').property('int', 10)), (lambda g:g.V().values('int').as_number(GType.BIGDECIMAL).is_(P.type_of(GType.BIGDECIMAL)).math('_ + 0.5'))], 
 +    'g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_isXgtX0XX': [(lambda g:g.add_v('data').property('int', 5)), (lambda g:g.V().values('int').as_number(GType.BIGDECIMAL).is_(P.type_of(GType.BIGDECIMAL)).is_(P.gt(0)))], 
 +    'g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_sumX': [(lambda g:g.add_v('data').property('int', 2).add_v('data').property('int', 3).add_v('data').property('int', 4)), (lambda g:g.V().values('int').as_number(GType.BIGDECIMAL).is_(P.type_of(GType.BIGDECIMAL)).sum_())], 
 +    'g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_minX': [(lambda g:g.add_v('data').property('int', 1).add_v('data').property('int', 5).add_v('data').property('int', 10)), (lambda g:g.V().values('int').as_number(GType.BIGDECIMAL).is_(P.type_of(GType.BIGDECIMAL)).min_())], 
 +    'g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_maxX': [(lambda g:g.add_v('data').property('int', 7).add_v('data').property('int', 14).add_v('data').property('int', 21)), (lambda g:g.V().values('int').as_number(GType.BIGDECIMAL).is_(P.type_of(GType.BIGDECIMAL)).max_())], 
 +    'g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_project_byXidentityX_byXmathXmulX10XXX': [(lambda g:g.add_v('data').property('int', 6)), (lambda g:g.V().values('int').as_number(GType.BIGDECIMAL).is_(P.type_of(GType.BIGDECIMAL)).project('original', 'multiplied').by(__.identity()).by(__.math('_ * 10')))], 
 +    'g_injectX99X_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_groupCount': [(lambda g:g.inject(99).as_number(GType.BIGDECIMAL).is_(P.type_of(GType.BIGDECIMAL)).group_count())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_BIGDECIMALXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.BIGDECIMAL)))], 
 +    'g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX': [(lambda g:g.add_v('data').property('int', 456)), (lambda g:g.V().values('int').as_number(GType.BIGINT).is_(P.type_of(GType.BIGINT)))], 
 +    'g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_mathXmulX1000XX': [(lambda g:g.add_v('data').property('int', 100)), (lambda g:g.V().values('int').as_number(GType.BIGINT).is_(P.type_of(GType.BIGINT)).math('_ * 1000'))], 
 +    'g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_isXeqX42XX': [(lambda g:g.add_v('data').property('int', 42)), (lambda g:g.V().values('int').as_number(GType.BIGINT).is_(P.type_of(GType.BIGINT)).is_(P.eq(42)))], 
 +    'g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_sumX': [(lambda g:g.add_v('data').property('int', 10).add_v('data').property('int', 20).add_v('data').property('int', 30)), (lambda g:g.V().values('int').as_number(GType.BIGINT).is_(P.type_of(GType.BIGINT)).sum_())], 
 +    'g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_minX': [(lambda g:g.add_v('data').property('int', 5).add_v('data').property('int', 15).add_v('data').property('int', 25)), (lambda g:g.V().values('int').as_number(GType.BIGINT).is_(P.type_of(GType.BIGINT)).min_())], 
 +    'g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_maxX': [(lambda g:g.add_v('data').property('int', 100).add_v('data').property('int', 200).add_v('data').property('int', 300)), (lambda g:g.V().values('int').as_number(GType.BIGINT).is_(P.type_of(GType.BIGINT)).max_())], 
 +    'g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_project_byXidentityX_byXmathXaddX999XXX': [(lambda g:g.add_v('data').property('int', 50)), (lambda g:g.V().values('int').as_number(GType.BIGINT).is_(P.type_of(GType.BIGINT)).project('original', 'added').by(__.identity()).by(__.math('_ + 999')))], 
 +    'g_injectX777X_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_groupCount': [(lambda g:g.inject(777).as_number(GType.BIGINT).is_(P.type_of(GType.BIGINT)).group_count())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_BIGINTXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.BIGINT)))], 
 +    'g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX': [(lambda g:g.add_v('data').property('int', 5)), (lambda g:g.V().values('int').as_number(GType.BYTE).is_(P.type_of(GType.BYTE)))], 
 +    'g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_mathXaddX20XX': [(lambda g:g.add_v('data').property('int', 10)), (lambda g:g.V().values('int').as_number(GType.BYTE).is_(P.type_of(GType.BYTE)).math('_ + 20'))], 
 +    'g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_isXltX10XX': [(lambda g:g.add_v('data').property('int', 7)), (lambda g:g.V().values('int').as_number(GType.BYTE).is_(P.type_of(GType.BYTE)).is_(P.lt(10)))], 
 +    'g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_sumX': [(lambda g:g.add_v('data').property('int', 1).add_v('data').property('int', 2).add_v('data').property('int', 3)), (lambda g:g.V().values('int').as_number(GType.BYTE).is_(P.type_of(GType.BYTE)).sum_())], 
 +    'g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_project_byXidentityX_byXmathXmulX2XXX': [(lambda g:g.add_v('data').property('int', 8)), (lambda g:g.V().values('int').as_number(GType.BYTE).is_(P.type_of(GType.BYTE)).project('original', 'doubled').by(__.identity()).by(__.math('_ * 2')))], 
 +    'g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_chooseXisXeqX12XX_constantXtwelveX_constantXotherXX': [(lambda g:g.add_v('data').property('int', 12)), (lambda g:g.V().values('int').as_number(GType.BYTE).is_(P.type_of(GType.BYTE)).choose(__.is_(P.eq(12)), __.constant('twelve'), __.constant('other')))], 
 +    'g_injectX15X_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_groupCount': [(lambda g:g.inject(15).as_number(GType.BYTE).is_(P.type_of(GType.BYTE)).group_count())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_BYTEXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.BYTE)))], 
 +    'g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX': [(lambda g:g.add_v('event').property('datetime', datetime.datetime.fromisoformat('2023-08-08T00:00+00:00'))), (lambda g:g.V().values('datetime').is_(P.type_of(GType.DATETIME)))], 
 +    'g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_project_byXidentityX_byXdateAddXDT_dayX1XX': [(lambda g:g.add_v('event').property('datetime', datetime.datetime.fromisoformat('2023-08-08T00:00+00:00'))), (lambda g:g.V().values('datetime').is_(P.type_of(GType.DATETIME)).project('original', 'nextDay').by(__.identity()).by(__.date_add(DT.day, 1)))], 
 +    'g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_dateDiffXdatetimeX2023_08_10XX': [(lambda g:g.add_v('event').property('datetime', datetime.datetime.fromisoformat('2023-08-08T00:00+00:00'))), (lambda g:g.V().values('datetime').is_(P.type_of(GType.DATETIME)).date_diff(datetime.datetime.fromisoformat('2023-08-08T00:00:30+00:00')))], 
 +    'g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_whereXisXgtXdatetimeX2020_01_01XXXX': [(lambda g:g.add_v('event').property('datetime', datetime.datetime.fromisoformat('2023-08-08T00:00+00:00'))), (lambda g:g.V().values('datetime').is_(P.type_of(GType.DATETIME)).where(__.is_(P.gt(datetime.datetime.fromisoformat('2020-01-01T00:00+00:00')))))], 
 +    'g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_chooseXisXeqXdatetimeX2023_08_08XXXX_constantXmatchX_constantXnoMatchXX': [(lambda g:g.add_v('event').property('datetime', datetime.datetime.fromisoformat('2023-08-08T00:00+00:00'))), (lambda g:g.V().values('datetime').is_(P.type_of(GType.DATETIME)).choose(__.is_(P.eq(datetime.datetime.fromisoformat('2023-08-08T00:00+00:00'))), __.constant('match'), __.constant('noMatch')))], 
 +    'g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_localXaggregateXaX_capXaX': [(lambda g:g.add_v('event').property('datetime', datetime.datetime.fromisoformat('2023-08-08T00:00+00:00'))), (lambda g:g.V().values('datetime').is_(P.type_of(GType.DATETIME)).local(__.aggregate('a')).cap('a'))], 
 +    'g_injectXdatetimeX_isXtypeOfXGType_DATETIMEXX_aggregateXaX_capXaX': [(lambda g:g.inject(datetime.datetime.fromisoformat('2023-08-08T00:00+00:00')).is_(P.type_of(GType.DATETIME)).aggregate('a').cap('a'))], 
 +    'g_injectXdatetimeX_isXtypeOfXGType_DATETIMEXX_groupCount': [(lambda g:g.inject(datetime.datetime.fromisoformat('2023-08-08T00:00+00:00')).is_(P.type_of(GType.DATETIME)).group_count())], 
 +    'g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX': [(lambda g:g.add_v('data').property('double', 1.5)), (lambda g:g.V().values('double').is_(P.type_of(GType.DOUBLE)))], 
 +    'g_E_valuesXweightX_isXtypeOfXGType_DOUBLEXX': [(lambda g:g.E().values('weight').is_(P.type_of(GType.DOUBLE)))], 
 +    'g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_mathXceilX': [(lambda g:g.add_v('data').property('double', 2.7)), (lambda g:g.V().values('double').is_(P.type_of(GType.DOUBLE)).math('ceil _'))], 
 +    'g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_isXgtX1_0XX': [(lambda g:g.add_v('data').property('double', 0.8).add_v('data').property('double', 1.2)), (lambda g:g.V().values('double').is_(P.type_of(GType.DOUBLE)).is_(P.gt(1.0)))], 
 +    'g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_sumX': [(lambda g:g.add_v('data').property('double', 1.5).add_v('data').property('double', 2.5).add_v('data').property('double', 3.5)), (lambda g:g.V().values('double').is_(P.type_of(GType.DOUBLE)).sum_())], 
 +    'g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_minX': [(lambda g:g.add_v('data').property('double', 0.1).add_v('data').property('double', 0.5).add_v('data').property('double', 0.9)), (lambda g:g.V().values('double').is_(P.type_of(GType.DOUBLE)).min_())], 
 +    'g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_maxX': [(lambda g:g.add_v('data').property('double', 2.1).add_v('data').property('double', 3.7).add_v('data').property('double', 1.9)), (lambda g:g.V().values('double').is_(P.type_of(GType.DOUBLE)).max_())], 
 +    'g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_meanX': [(lambda g:g.add_v('data').property('double', 2.1).add_v('data').property('double', 4.1).add_v('data').property('double', 6.1)), (lambda g:g.V().values('double').is_(P.type_of(GType.DOUBLE)).mean())], 
 +    'g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_order_byXascX': [(lambda g:g.add_v('data').property('double', 3.2).add_v('data').property('double', 1.8).add_v('data').property('double', 2.5)), (lambda g:g.V().values('double').is_(P.type_of(GType.DOUBLE)).order().by(Order.asc))], 
 +    'g_injectX5_5dX_isXtypeOfXGType_DOUBLEXX_groupCount': [(lambda g:g.inject(5.5).is_(P.type_of(GType.DOUBLE)).group_count())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_DOUBLEXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.DOUBLE)))], 
 +    'g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX': [(lambda g:g.add_v('data').property('float', 2.5)), (lambda g:g.V().values('float').as_number(GType.FLOAT).is_(P.type_of(GType.FLOAT)))], 
 +    'g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_mathXmulX2XX': [(lambda g:g.add_v('data').property('float', 3.0)), (lambda g:g.V().values('float').as_number(GType.FLOAT).is_(P.type_of(GType.FLOAT)).math('_ * 2'))], 
 +    'g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_isXeqX1_5XX': [(lambda g:g.add_v('data').property('float', 1.5)), (lambda g:g.V().values('float').as_number(GType.FLOAT).is_(P.type_of(GType.FLOAT)).is_(P.eq(1.5)))], 
 +    'g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_sumX': [(lambda g:g.add_v('data').property('float', 1.5).add_v('data').property('float', 2.5).add_v('data').property('float', 3.0)), (lambda g:g.V().values('float').as_number(GType.FLOAT).is_(P.type_of(GType.FLOAT)).sum_())], 
 +    'g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_project_byXidentityX_byXmathXmulX10XXX': [(lambda g:g.add_v('data').property('float', 4.5)), (lambda g:g.V().values('float').as_number(GType.FLOAT).is_(P.type_of(GType.FLOAT)).project('original', 'multiplied').by(__.identity()).by(__.math('_ * 10')))], 
 +    'g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_whereXisXgtX1_0XXX': [(lambda g:g.add_v('data').property('float', 0.5).add_v('data').property('float', 1.5)), (lambda g:g.V().values('float').as_number(GType.FLOAT).is_(P.type_of(GType.FLOAT)).where(__.is_(P.gt(1.0))))], 
 +    'g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_chooseXisXeqX3_0XX_constantXthreeX_constantXotherXX': [(lambda g:g.add_v('data').property('float', 3.0)), (lambda g:g.V().values('float').as_number(GType.FLOAT).is_(P.type_of(GType.FLOAT)).choose(__.is_(P.eq(3.0)), __.constant('three'), __.constant('other')))], 
 +    'g_injectX2_0fX_isXtypeOfXGType_FLOATXX_groupCount': [(lambda g:g.inject(2.0).as_number(GType.FLOAT).is_(P.type_of(GType.FLOAT)).group_count())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_FLOATXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.FLOAT)))], 
 +    'g_V_valuesXageX_isXtypeOfXGType_INTXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.INT)))], 
 +    'g_V_hasXage_typeOfXGType_INTXX_valuesXnameX': [(lambda g:g.V().has('age', P.type_of(GType.INT)).values('name'))], 
 +    'g_V_whereXvaluesXageX_isXtypeOfXGType_INTXXX_valuesXnameX': [(lambda g:g.V().where(__.values('age').is_(P.type_of(GType.INT))).values('name'))], 
 +    'g_V_valuesXageX_isXtypeOfXGType_INTXX_mathXincX': [(lambda g:g.V().values('name', 'age').is_(P.type_of(GType.INT)).math('_ + 1'))], 
 +    'g_V_valuesXageX_isXtypeOfXGType_INTXX_sumX': [(lambda g:g.V().values('age').is_(P.type_of(GType.INT)).sum_())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_INTXX_minX': [(lambda g:g.V().values('age').is_(P.type_of(GType.INT)).min_())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_INTXX_maxX': [(lambda g:g.V().values('age').is_(P.type_of(GType.INT)).max_())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_INTXX_meanX': [(lambda g:g.V().values('age').is_(P.type_of(GType.INT)).mean())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_INTXX_order_byXdescX': [(lambda g:g.V().values('age').is_(P.type_of(GType.INT)).order().by(Order.desc))], 
 +    'g_V_valuesXageX_isXtypeOfXGType_INTXX_groupCount': [(lambda g:g.V().values('age').is_(P.type_of(GType.INT)).group_count())], 
 +    'g_V_valuesXnameX_fold_isXtypeOfXGType_LISTXX_count': [(lambda g:g.V().values('name').fold().is_(P.type_of(GType.LIST)).count())], 
 +    'g_V_valuesXageX_isXtypeOfXGType_LISTXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.LIST)))], 
 +    'g_V_valuesXlistX_isXtypeOfXGType_LISTXX': [(lambda g:g.add_v('data').property('list', ['a', 'b', 'c'])), (lambda g:g.V().values('list').is_(P.type_of(GType.LIST)))], 
 +    'g_V_hasXlist_typeOfXGType_LISTXX_valuesXnameX': [(lambda g:g.add_v('data').property('name', 'test').property('list', [1, 2, 3])), (lambda g:g.V().has('list', P.type_of(GType.LIST)).values('name'))], 
 +    'g_V_valuesXlistX_isXtypeOfXGType_LISTXX_unfold': [(lambda g:g.add_v('data').property('list', ['x', 'y', 'z'])), (lambda g:g.V().values('list').is_(P.type_of(GType.LIST)).unfold())], 
 +    'g_V_valuesXlistX_isXtypeOfXGType_LISTXX_countXlocalX': [(lambda g:g.add_v('data').property('list', [1, 2, 3, 4, 5])), (lambda g:g.V().values('list').is_(P.type_of(GType.LIST)).count(Scope.local))], 
 +    'g_V_valuesXlistX_isXtypeOfXGType_LISTXX_unfold_rangeX1_3X': [(lambda g:g.add_v('data').property('list', ['first', 'second', 'third', 'fourth'])), (lambda g:g.V().values('list').is_(P.type_of(GType.LIST)).unfold().range_(1, 3))], 
 +    'g_V_valuesXlistX_isXtypeOfXGType_LISTXX_project_byXidentityX_byXcountXlocalX': [(lambda g:g.add_v('data').property('list', ['apple', 'banana'])), (lambda g:g.V().values('list').is_(P.type_of(GType.LIST)).project('original', 'size').by(__.identity()).by(__.count(Scope.local)))], 
 +    'g_V_valuesXlistX_isXtypeOfXGType_LISTXX_whereXcountXlocalX_isXgtX2XXX': [(lambda g:g.add_v('data').property('list', [1]).add_v('data').property('list', [1, 2, 3])), (lambda g:g.V().values('list').is_(P.type_of(GType.LIST)).where(__.count(Scope.local).is_(P.gt(2))))], 
 +    'g_injectXlistX_isXtypeOfXGType_LISTXX_groupCount': [(lambda g:g.inject(['test']).is_(P.type_of(GType.LIST)).group_count())], 
 +    'g_V_valuesXlongX_isXtypeOfXGType_LONGXX': [(lambda g:g.add_v('data').property('long', long(1))), (lambda g:g.V().values('long').is_(P.type_of(GType.LONG)))], 
 +    'g_V_hasXlong_typeOfXGType_LONGXX_valuesXnameX': [(lambda g:g.add_v('data').property('name', 'test').property('long', long(1))), (lambda g:g.V().has('long', P.type_of(GType.LONG)).values('name'))], 
 +    'g_V_valuesXlongX_isXtypeOfXGType_LONGXX_mathXmulX2XX': [(lambda g:g.add_v('data').property('long', long(5))), (lambda g:g.V().values('long').is_(P.type_of(GType.LONG)).math('_ * 2'))], 
 +    'g_V_valuesXlongX_isXtypeOfXGType_LONGXX_isXgtX5XX': [(lambda g:g.add_v('data').property('long', long(10))), (lambda g:g.V().values('long').is_(P.type_of(GType.LONG)).is_(P.gt(long(5))))], 
 +    'g_V_valuesXlongX_isXtypeOfXGType_LONGXX_sumX': [(lambda g:g.add_v('data').property('long', long(1)).add_v('data').property('long', long(2)).add_v('data').property('long', long(3))), (lambda g:g.V().values('long').is_(P.type_of(GType.LONG)).sum_())], 
 +    'g_V_valuesXlongX_isXtypeOfXGType_LONGXX_localXaggregateXaXX_capXaX': [(lambda g:g.add_v('data').property('long', long(100))), (lambda g:g.V().values('long').is_(P.type_of(GType.LONG)).local(__.aggregate('a')).cap('a'))], 
 +    'g_V_hasLabelXpersonX_valueMap_isXtypeOfXGType_MAPXX_count': [(lambda g:g.V().has_label('person').value_map().is_(P.type_of(GType.MAP)).count())], 
 +    'g_V_groupCount_byXlabelX_isXtypeOfXGType_MAPX': [(lambda g:g.V().group_count().by(T.label).is_(P.type_of(GType.MAP)))], 
 +    'g_V_valuesXageX_isXtypeOfXGType_MAPXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.MAP)))], 
 +    'g_V_valuesXmapX_isXtypeOfXGType_MAPXX': [(lambda g:g.add_v('data').property('map', { 'key1': '1', 'key2': '2' })), (lambda g:g.V().values('map').is_(P.type_of(GType.MAP)))], 
 +    'g_V_hasXmap_typeOfXGType_MAPXX_valuesXnameX': [(lambda g:g.add_v('data').property('name', 'test').property('map', { 'a': 1, 'b': 2 })), (lambda g:g.V().has('map', P.type_of(GType.MAP)).values('name'))], 
 +    'g_V_valuesXmapX_isXtypeOfXGType_MAPXX_countXlocalX': [(lambda g:g.add_v('data').property('map', { 'a': 1, 'b': 2, 'c': 3 })), (lambda g:g.V().values('map').is_(P.type_of(GType.MAP)).count(Scope.local))], 
 +    'g_V_valuesXmapX_isXtypeOfXGType_MAPXX_selectXvaluesX': [(lambda g:g.add_v('data').property('map', { 'city': 'NYC', 'country': 'USA' })), (lambda g:g.V().values('map').is_(P.type_of(GType.MAP)).select(Column.values))], 
 +    'g_V_valuesXmapX_isXtypeOfXGType_MAPXX_whereX_countXlocalX_isXgtX1XXX': [(lambda g:g.add_v('data').property('map', { 'single': 'value' }).add_v('data').property('map', { 'key1': '1', 'key2': '2' })), (lambda g:g.V().values('map').is_(P.type_of(GType.MAP)).where(__.count(Scope.local).is_(P.gt(1))))], 
 +    'g_V_valuesXmapX_isXtypeOfXGType_MAPXX_foldX': [(lambda g:g.add_v('data').property('map', { 'a': 1 }).add_v('data').property('map', { 'b': 2, 'c': 3 })), (lambda g:g.V().values('map').is_(P.type_of(GType.MAP)).fold())], 
 +    'g_V_valueXnameX_aggregateXxX_capXxX_isXtypeOfXGType_SETX': [(lambda g:g.V().values('name').aggregate('x').cap('x').is_(P.type_of(GType.SET)))], 
 +    'g_V_valuesXageX_isXtypeOfXGType_SETXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.SET)))], 
 +    'g_V_valueMap_selectXkeysX_dedup_isXtypeOfXGType_SETXX': [(lambda g:g.V().value_map().select(Column.keys).dedup().is_(P.type_of(GType.SET)))], 
 +    'g_V_valuesXsetX_isXtypeOfXGType_SETXX': [(lambda g:g.add_v('data').property('set', {'a', 'b', 'c'})), (lambda g:g.V().values('set').is_(P.type_of(GType.SET)))], 
 +    'g_V_hasXset_typeOfXGType_SETXX_valuesXnameX': [(lambda g:g.add_v('data').property('name', 'test').property('set', {1, 2, 3})), (lambda g:g.V().has('set', P.type_of(GType.SET)).values('name'))], 
 +    'g_V_valuesXsetX_isXtypeOfXGType_SETXX_unfold': [(lambda g:g.add_v('data').property('set', {'x', 'y', 'z'})), (lambda g:g.V().values('set').is_(P.type_of(GType.SET)).unfold())], 
 +    'g_V_valuesXsetX_isXtypeOfXGType_SETXX_countXlocalX': [(lambda g:g.add_v('data').property('set', {1, 2, 3, 4, 5})), (lambda g:g.V().values('set').is_(P.type_of(GType.SET)).count(Scope.local))], 
 +    'g_V_valuesXsetX_isXtypeOfXGType_SETXX_whereXcountXlocalX_isXeqX3XXX': [(lambda g:g.add_v('data').property('set', {1, 2}).add_v('data').property('set', {1, 2, 3})), (lambda g:g.V().values('set').is_(P.type_of(GType.SET)).where(__.count(Scope.local).is_(P.eq(3))))], 
 +    'g_V_valuesXsetX_isXtypeOfXGType_SETXX_unfold_limitX2X': [(lambda g:g.add_v('data').property('set', {'first', 'second', 'third', 'fourth'})), (lambda g:g.V().values('set').is_(P.type_of(GType.SET)).unfold().limit(2))], 
 +    'g_injectXsetX_isXtypeOfXGType_SETXX_groupCount': [(lambda g:g.inject({'test'}).is_(P.type_of(GType.SET)).group_count())], 
 +    'g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX': [(lambda g:g.add_v('data').property('int', 100)), (lambda g:g.V().values('int').as_number(GType.SHORT).is_(P.type_of(GType.SHORT)))], 
 +    'g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_mathXmulX10XX': [(lambda g:g.add_v('data').property('int', 50)), (lambda g:g.V().values('int').as_number(GType.SHORT).is_(P.type_of(GType.SHORT)).math('_ * 10'))], 
 +    'g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_isXbetweenX20_30XX': [(lambda g:g.add_v('data').property('int', 25)), (lambda g:g.V().values('int').as_number(GType.SHORT).is_(P.type_of(GType.SHORT)).is_(P.between(20, 30)))], 
 +    'g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_minX': [(lambda g:g.add_v('data').property('int', 10).add_v('data').property('int', 20).add_v('data').property('int', 30)), (lambda g:g.V().values('int').as_number(GType.SHORT).is_(P.type_of(GType.SHORT)).min_())], 
 +    'g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_maxX': [(lambda g:g.add_v('data').property('int', 15).add_v('data').property('int', 25).add_v('data').property('int', 35)), (lambda g:g.V().values('int').as_number(GType.SHORT).is_(P.type_of(GType.SHORT)).max_())], 
 +    'g_injectX42X_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_storeXaX_capXaX': [(lambda g:g.inject(42).as_number(GType.SHORT).is_(P.type_of(GType.SHORT)))], 
 +    'g_V_valuesXageX_isXtypeOfXGType_SHORTXX': [(lambda g:g.V().values('age').is_(P.type_of(GType.SHORT)))], 
 +    'g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX': [(lambda g:g.add_v('data').property('uuid', uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479'))), (lambda g:g.V().values('uuid').is_(P.type_of(GType.UUID)))], 
 +    'g_V_hasXuuid_typeOfXGType_UUIDXX_valuesXnameX': [(lambda g:g.add_v('data').property('name', 'test').property('uuid', uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479'))), (lambda g:g.V().has('uuid', P.type_of(GType.UUID)).values('name'))], 
 +    'g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_project_byXidentityX_byXconstantXuuidXX': [(lambda g:g.add_v('data').property('uuid', uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479'))), (lambda g:g.V().values('uuid').is_(P.type_of(GType.UUID)).project('original', 'type').by(__.identity()).by(__.constant('uuid')))], 
 +    'g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_whereXisXeqXuuidXX': [(lambda g:g.add_v('data').property('uuid', uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479'))), (lambda g:g.V().values('uuid').is_(P.type_of(GType.UUID)).where(__.is_(P.eq(uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479')))))], 
 +    'g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_chooseXisXeqXuuidXX_constantXmatchX_constantXnoMatchXX': [(lambda g:g.add_v('data').property('uuid', uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479'))), (lambda g:g.V().values('uuid').is_(P.type_of(GType.UUID)).choose(__.is_(P.eq(uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479'))), __.constant('match'), __.constant('noMatch')))], 
 +    'g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_localXaggregateXaXX_capXaX': [(lambda g:g.add_v('data').property('uuid', uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479'))), (lambda g:g.V().values('uuid').is_(P.type_of(GType.UUID)).local(__.aggregate('a')).cap('a'))], 
 +    'g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_aggregateXaX_capXaX': [(lambda g:g.add_v('data').property('uuid', uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479'))), (lambda g:g.V().values('uuid').is_(P.type_of(GType.UUID)).aggregate('a').cap('a'))], 
 +    'g_injectXuuidX_isXtypeOfXGType_UUIDXX_groupCount': [(lambda g:g.inject(uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479')).is_(P.type_of(GType.UUID)).group_count())], 
 +    'g_injectXUUIDX47af10b_58cc_4372_a567_0f02b2f3d479XX': [(lambda g:g.inject(uuid.UUID('f47af10b-58cc-4372-a567-0f02b2f3d479')))], 
 +    'g_injectXUUIDXXX': [(lambda g:g.inject(uuid.uuid4()))], 
 +    'g_V_aggregateXxX_byXnameX_byXageX_capXxX': [(lambda g:g.V().aggregate('x').by('name').by('age').cap('x'))], 
 +    'g_V_localXaggregateXxX_byXnameXX_byXageX_capXxX': [(lambda g:g.V().local(__.aggregate('x').by('name').by('age')).cap('x'))], 
 +    'g_V_valuesXageX_allXgtX32XX': [(lambda g:g.V().values('age').all_(P.gt(32)))], 
 +    'g_V_valuesXageX_whereXisXP_gtX33XXX_fold_allXgtX33XX': [(lambda g:g.V().values('age').where(__.is_(P.gt(33))).fold().all_(P.gt(33)))], 
 +    'g_V_valuesXageX_order_byXdescX_fold_allXgtX10XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().all_(P.gt(10)))], 
 +    'g_V_valuesXageX_order_byXdescX_fold_allXgtX30XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().all_(P.gt(30)))], 
 +    'g_injectXabc_bcdX_allXeqXbcdXX': [(lambda g:g.inject(['abc', 'bcd']).all_(P.eq('bcd')))], 
 +    'g_injectXbcd_bcdX_allXeqXbcdXX': [(lambda g:g.inject(['bcd', 'bcd']).all_(P.eq('bcd')))], 
 +    'g_injectXnull_abcX_allXTextP_startingWithXaXX': [(lambda g:g.inject([None, 'abc']).all_(TextP.starting_with('a')))], 
 +    'g_injectX5_8_10_10_7X_allXgteX7XX': [(lambda g:g.inject([5, 8, 10], [10, 7]).all_(P.gte(7)))], 
      'g_injectXnullX_allXeqXnullXX': [(lambda g:g.inject(None).all_(P.eq(None)))], 
      'g_injectX7X_allXeqX7XX': [(lambda g:g.inject(7).all_(P.eq(7)))], 
 -    'g_injectXnull_nullX_allXeqXnullXX': [(lambda g, xx1=None:g.inject(xx1).all_(P.eq(None)))], 
 -    'g_injectX3_threeX_allXeqX3XX': [(lambda g, xx1=None:g.inject(xx1).all_(P.eq(3)))], 
 -    'g_V_andXhasXage_gt_27X__outE_count_gte_2X_name': [(lambda g:g.V().and_(__.has('age',P.gt(27)),__.out_e().count().is_(P.gte(2))).name)], 
 -    'g_V_andXoutE__hasXlabel_personX_and_hasXage_gte_32XX_name': [(lambda g:g.V().and_(__.out_e(),__.has(T.label,'person').and_().has('age',P.gte(32))).name)], 
 -    'g_V_asXaX_outXknowsX_and_outXcreatedX_inXcreatedX_asXaX_name': [(lambda g:g.V().as_('a').out('knows').and_().out('created').in_('created').as_('a').name)], 
 -    'g_V_asXaX_andXselectXaX_selectXaXX': [(lambda g:g.V().as_('a').and_(__.select('a'),__.select('a')))], 
 -    'g_V_hasXname_markoX_and_hasXname_markoX_and_hasXname_markoX': [(lambda g:g.V().has('name','marko').and_().has('name','marko').and_().has('name','marko'))], 
 -    'g_V_valuesXageX_anyXgtX32XX': [(lambda g:g.V().age.any_(P.gt(32)))], 
 -    'g_V_valuesXageX_order_byXdescX_fold_anyXeqX29XX': [(lambda g:g.V().age.order().by(Order.desc).fold().any_(P.eq(29)))], 
 -    'g_V_valuesXageX_order_byXdescX_fold_anyXgtX10XX': [(lambda g:g.V().age.order().by(Order.desc).fold().any_(P.gt(10)))], 
 -    'g_V_valuesXageX_order_byXdescX_fold_anyXgtX42XX': [(lambda g:g.V().age.order().by(Order.desc).fold().any_(P.gt(42)))], 
 -    'g_injectXabc_cdeX_anyXeqXbcdXX': [(lambda g:g.inject(['abc','cde']).any_(P.eq('bcd')))], 
 -    'g_injectXabc_bcdX_anyXeqXbcdXX': [(lambda g, xx1=None:g.inject(xx1).any_(P.eq('bcd')))], 
 -    'g_injectXnull_abcX_anyXTextP_startingWithXaXX': [(lambda g, xx1=None:g.inject(xx1).any_(TextP.startingWith('a')))], 
 -    'g_injectX5_8_10_10_7X_anyXeqX7XX': [(lambda g, xx1=None,xx2=None:g.inject(xx1,xx2).any_(P.eq(7)))], 
 +    'g_injectXnull_nullX_allXeqXnullXX': [(lambda g:g.inject([None, None]).all_(P.eq(None)))], 
 +    'g_injectX3_threeX_allXeqX3XX': [(lambda g:g.inject([3, 'three']).all_(P.eq(3)))], 
 +    'g_V_andXhasXage_gt_27X__outE_count_gte_2X_name': [(lambda g:g.V().and_(__.has('age', P.gt(27)), __.out_e().count().is_(P.gte(2))).values('name'))], 
 +    'g_V_andXoutE__hasXlabel_personX_and_hasXage_gte_32XX_name': [(lambda g:g.V().and_(__.out_e(), __.has(T.label, 'person').and_().has('age', P.gte(32))).values('name'))], 
 +    'g_V_asXaX_outXknowsX_and_outXcreatedX_inXcreatedX_asXaX_name': [(lambda g:g.V().as_('a').out('knows').and_().out('created').in_('created').as_('a').values('name'))], 
 +    'g_V_asXaX_andXselectXaX_selectXaXX': [(lambda g:g.V().as_('a').and_(__.select('a'), __.select('a')))], 
 +    'g_V_hasXname_markoX_and_hasXname_markoX_and_hasXname_markoX': [(lambda g:g.V().has('name', 'marko').and_().has('name', 'marko').and_().has('name', 'marko'))], 
 +    'g_V_valuesXageX_anyXgtX32XX': [(lambda g:g.V().values('age').any_(P.gt(32)))], 
 +    'g_V_valuesXageX_order_byXdescX_fold_anyXeqX29XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().any_(P.eq(29)))], 
 +    'g_V_valuesXageX_order_byXdescX_fold_anyXgtX10XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().any_(P.gt(10)))], 
 +    'g_V_valuesXageX_order_byXdescX_fold_anyXgtX42XX': [(lambda g:g.V().values('age').order().by(Order.desc).fold().any_(P.gt(42)))], 
 +    'g_injectXabc_cdeX_anyXeqXbcdXX': [(lambda g:g.inject(['abc', 'cde']).any_(P.eq('bcd')))], 
 +    'g_injectXabc_bcdX_anyXeqXbcdXX': [(lambda g:g.inject(['abc', 'bcd']).any_(P.eq('bcd')))], 
 +    'g_injectXnull_abcX_anyXTextP_startingWithXaXX': [(lambda g:g.inject([None, 'abc']).any_(TextP.starting_with('a')))], 
 +    'g_injectX5_8_10_10_7X_anyXeqX7XX': [(lambda g:g.inject([5, 8, 10], [10, 7]).any_(P.eq(7)))], 
      'g_injectXnullX_anyXeqXnullXX': [(lambda g:g.inject(None).any_(P.eq(None)))], 
      'g_injectX7X_anyXeqX7XX': [(lambda g:g.inject(7).any_(P.eq(7)))], 
 -    'g_injectXnull_nullX_anyXeqXnullXX': [(lambda g, xx1=None:g.inject(xx1).any_(P.eq(None)))], 
 -    'g_injectX3_threeX_anyXeqX3XX': [(lambda g, xx1=None:g.inject(xx1).any_(P.eq(3)))], 
 -    'g_V_coinX1_0X': [(lambda g:g.V().coin(float(1.0)))], 
 -    'g_V_coinX1X': [(lambda g:g.V().coin(float(1.0)))], 
 -    'g_V_coinX0X': [(lambda g:g.V().coin(float(0.0)))], 
 -    'g_withStrategiesXSeedStrategyX_V_order_byXnameX_coinX50X': [(lambda g:g.with_strategies(*[TraversalStrategy('SeedStrategy',{'seed':999999,'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategy')]).V().order().by('name').coin(float(0.5)))], 
 +    'g_injectXnull_nullX_anyXeqXnullXX': [(lambda g:g.inject([None, None]).any_(P.eq(None)))], 
 +    'g_injectX3_threeX_anyXeqX3XX': [(lambda g:g.inject([3, 'three']).any_(P.eq(3)))], 
 +    'g_V_coinX1_0X': [(lambda g:g.V().coin(1.0))], 
 +    'g_V_coinX1X': [(lambda g:g.V().coin(1))], 
 +    'g_V_coinX0X': [(lambda g:g.V().coin(0.0))], 
 +    'g_withStrategiesXSeedStrategyX_V_order_byXnameX_coinX50X': [(lambda g:g.with_strategies(SeedStrategy(seed=999999)).V().order().by('name').coin(0.5))], 
      'g_VX1X_outXcreatedX_inXcreatedX_cyclicPath': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').cyclic_path())], 
      'g_VX1X_both_both_cyclicPath_byXageX': [(lambda g, vid1=None:g.V(vid1).both().both().cyclic_path().by('age'))], 
      'g_VX1X_outXcreatedX_inXcreatedX_cyclicPath_path': [(lambda g, vid1=None:g.V(vid1).out('created').in_('created').cyclic_path().path())], 
diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
index 66545f4e38,3e635f0fcf..1b37f31cb0
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Repeat.feature
@@@ -387,7 -399,19 +387,19 @@@ Feature: Step - repeat(
      When iterated to list
      Then the traversal will raise an error with message containing text of "The repeat()-traversal was not defined"
  
+   Scenario: g_VX1X_repeatXloopsX_timesX100000X
+     Given the modern graph
+     And using the parameter vid1 defined as "v[marko].id"
+     And the traversal of
+       """
+       g.V(vid1).repeat(__.loops()).times(100000)
+       """
+     When iterated to list
+     Then the result should be unordered
+       | result |
+       | d[99999].i |
+ 
 -  Scenario: g_V_haxXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name
 +  Scenario: g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name
      Given the modern graph
      And the traversal of
        """
@@@ -429,578 -453,4 +441,578 @@@
      When iterated to list
      Then the result should be unordered
        | result |
 -      | marko |
 +      | marko |
 +
 +  # Proper handling of empty results if repeat doesn't output traversers
 +  Scenario: g_V_repeatXboth_hasXnot_productiveXX_timesX3X_constantX1X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().repeat(__.both().has("not", "productive")).times(3).constant(1)
 +      """
 +    When iterated to list
 +    Then the result should be empty
 +
 +  # Proper handling of empty results if no traverser goes into repeat
 +  Scenario: g_V_hasXnot_productiveX_repeatXbothX_timesX3X_constantX1X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().has("not", "productive").repeat(__.both()).times(3).constant(1)
 +      """
 +    When iterated to list
 +    Then the result should be empty
 +
 +  # Each iteration of repeat traversal that ends in a barrier leads to BFS style processing
 +  @InsertionOrderingRequired
 +  Scenario: g_VX1_2_3X_repeatXboth_barrierX_emit_timesX2X_path
 +    Given the modern graph
 +    And using the parameter vid1 defined as "v[marko].id"
 +    And using the parameter vid2 defined as "v[vadas].id"
 +    And using the parameter vid3 defined as "v[lop].id"
 +    And the traversal of
 +      """
 +      g.V(vid1, vid2, vid3).repeat(__.both().barrier()).emit().times(2).path()
 +      """
 +    When iterated to list
 +    Then the result should be ordered
 +      | result |
 +      | p[v[marko],v[lop]] |
 +      | p[v[marko],v[vadas]] |
 +      | p[v[marko],v[josh]] |
 +      | p[v[vadas],v[marko]] |
 +      | p[v[lop],v[marko]] |
 +      | p[v[lop],v[josh]] |
 +      | p[v[lop],v[peter]] |
 +      | p[v[marko],v[lop],v[marko]] |
 +      | p[v[marko],v[lop],v[josh]] |
 +      | p[v[marko],v[lop],v[peter]] |
 +      | p[v[marko],v[vadas],v[marko]] |
 +      | p[v[marko],v[josh],v[ripple]] |
 +      | p[v[marko],v[josh],v[lop]] |
 +      | p[v[marko],v[josh],v[marko]] |
 +      | p[v[vadas],v[marko],v[lop]] |
 +      | p[v[vadas],v[marko],v[vadas]] |
 +      | p[v[vadas],v[marko],v[josh]] |
 +      | p[v[lop],v[marko],v[lop]] |
 +      | p[v[lop],v[marko],v[vadas]] |
 +      | p[v[lop],v[marko],v[josh]] |
 +      | p[v[lop],v[josh],v[ripple]] |
 +      | p[v[lop],v[josh],v[lop]] |
 +      | p[v[lop],v[josh],v[marko]] |
 +      | p[v[lop],v[peter],v[lop]] |
 +
 +  # Global children should be ordered by last loop first
 +  Scenario: g_V_order_byXname_descX_repeatXboth_simplePath_order_byXname_descXX_timesX2X_path
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().order().by("name", Order.desc).repeat(__.both().simplePath().order().by("name", Order.desc)).times(2).path()
 +      """
 +    When iterated to list
 +    Then the result should be ordered
 +      | result |
 +      | p[v[lop],v[marko],v[vadas]] |
 +      | p[v[josh],v[marko],v[vadas]] |
 +      | p[v[marko],v[josh],v[ripple]] |
 +      | p[v[lop],v[josh],v[ripple]] |
 +      | p[v[marko],v[lop],v[peter]] |
 +      | p[v[josh],v[lop],v[peter]] |
 +      | p[v[peter],v[lop],v[marko]] |
 +      | p[v[josh],v[lop],v[marko]] |
 +      | p[v[ripple],v[josh],v[marko]] |
 +      | p[v[lop],v[josh],v[marko]] |
 +      | p[v[vadas],v[marko],v[lop]] |
 +      | p[v[josh],v[marko],v[lop]] |
 +      | p[v[ripple],v[josh],v[lop]] |
 +      | p[v[marko],v[josh],v[lop]] |
 +      | p[v[vadas],v[marko],v[josh]] |
 +      | p[v[lop],v[marko],v[josh]] |
 +      | p[v[peter],v[lop],v[josh]] |
 +      | p[v[marko],v[lop],v[josh]] |
 +
 +  # Nested repeat should maintain globalness
 +  Scenario: g_V_repeatXboth_repeatXorder_byXnameXX_timesX1XX_timesX1X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().repeat(__.both().repeat(__.order().by("name")).times(1)).times(1)
 +      """
 +    When iterated to list
 +    Then the result should be ordered
 +      | result |
 +      | v[josh] |
 +      | v[josh] |
 +      | v[josh] |
 +      | v[lop] |
 +      | v[lop] |
 +      | v[lop] |
 +      | v[marko] |
 +      | v[marko] |
 +      | v[marko] |
 +      | v[peter] |
 +      | v[ripple] |
 +      | v[vadas] |
 +
 +  # Nested local inside repeat should prevent global children from parent repeat
 +  @GraphComputerVerificationStarGraphExceeded
 +  Scenario: g_V_order_byXname_descX_repeatXlocalXout_order_byXnameXXX_timesX1X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().order().by("name", Order.desc).repeat(__.local(__.out().order().by("name"))).times(1)
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | v[lop] |
 +      | v[josh] |
 +      | v[lop] |
 +      | v[vadas] |
 +      | v[lop] |
 +      | v[ripple] |
 +
 +  # Local child traversal should be applied per loop
 +  @GraphComputerVerificationStarGraphExceeded
 +  Scenario: g_V_order_byXnameX_repeatXlocalXboth_simplePath_order_byXnameXXX_timesX2X_path
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().order().by("name").repeat(__.local(__.both().simplePath().order().by("name"))).times(2).path()
 +      """
 +    When iterated to list
 +    Then the result should be ordered
 +    | result |
 +    | p[v[josh],v[lop],v[marko]] |
 +    | p[v[josh],v[lop],v[peter]] |
 +    | p[v[josh],v[marko],v[lop]] |
 +    | p[v[josh],v[marko],v[vadas]] |
 +    | p[v[lop],v[josh],v[marko]] |
 +    | p[v[lop],v[josh],v[ripple]] |
 +    | p[v[lop],v[marko],v[josh]] |
 +    | p[v[lop],v[marko],v[vadas]] |
 +    | p[v[marko],v[josh],v[lop]] |
 +    | p[v[marko],v[josh],v[ripple]] |
 +    | p[v[marko],v[lop],v[josh]] |
 +    | p[v[marko],v[lop],v[peter]] |
 +    | p[v[peter],v[lop],v[josh]] |
 +    | p[v[peter],v[lop],v[marko]] |
 +    | p[v[ripple],v[josh],v[lop]] |
 +    | p[v[ripple],v[josh],v[marko]] |
 +    | p[v[vadas],v[marko],v[josh]] |
 +    | p[v[vadas],v[marko],v[lop]] |
 +
 +  # Branching step with global children should remain global in repeat traversal
 +  # Results are unordered due to server bulking of traversers which leads to incorrect result
 +  Scenario: g_V_repeatXunionXoutXknowsX_order_byXnameX_inXcreatedX_order_byXnameXXX_timesX1X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().repeat(__.union(__.out("knows").order().by("name"), __.in("created").order().by("name"))).times(1)
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | v[josh] |
 +      | v[vadas] |
 +      | v[josh] |
 +      | v[josh] |
 +      | v[marko] |
 +      | v[peter] |
 +
 +  # addV inside repeat should create the proper number of vertices
 +  Scenario: g_V_repeatXaddV_propertyXgenerated_trueXX_timesX2X
 +    Given the empty graph
 +    And the graph initializer of
 +      """
 +      g.addV().property("notGenerated", "true").addV().property("notGenerated", "true")
 +      """
 +    And the traversal of
 +      """
 +      g.V().repeat(__.addV().property("generated", "true")).times(2)
 +      """
 +    When iterated to list
 +    Then the result should have a count of 2
 +    And the graph should return 2 for count of "g.V().has(\"notGenerated\")"
 +    And the graph should return 4 for count of "g.V().has(\"generated\")"
 +
 +  # global dedup should remove all traversers if looped more than once with all possible vertices
 +  Scenario: g_V_repeatXdedup_bothX_timesX2X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().repeat(__.dedup().both()).times(2)
 +      """
 +    When iterated to list
 +    Then the result should be empty
 +
 +  # global, eager aggregate should contain all results even in the first select
 +  Scenario: g_V_repeatXaggregateXxXX_timesX2X_selectXxX_limitX1X_unfold
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().repeat(__.aggregate("x")).times(2).select("x").limit(1).unfold()
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | v[marko] |
 +      | v[marko] |
 +      | v[josh] |
 +      | v[josh] |
 +      | v[peter] |
 +      | v[peter] |
 +      | v[ripple] |
 +      | v[ripple] |
 +      | v[lop] |
 +      | v[lop] |
 +      | v[vadas] |
 +      | v[vadas] |
 +
 +  Scenario: g_V_valuesXstrX_repeatXsplitXabcX_conjoinX_timesX2X
 +    Given the empty graph
 +    And the graph initializer of
 +      """
 +      g.addV().property("str", "ababcczababcc").addV().property("str", "abcyabc")
 +      """
 +    And the traversal of
 +      """
 +      g.V().values("str").repeat(__.split("abc").conjoin("")).times(2)
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | z |
 +      | y |
 +
 +  Scenario: g_withSackX0X_V_repeatXsackXsumX_byXageX_whereXsack_isXltX59XXXX_timesX2X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.withSack(0L).V().repeat(__.sack(Operator.sum).by("age").where(__.sack().is(P.lt(59)))).times(2)
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | v[marko] |
 +      | v[vadas] |
 +
 +  @GraphComputerVerificationInjectionNotSupported
 +  Scenario: g_V_repeatXinjectXyXX_timesX2X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().repeat(inject('y')).times(2)
 +      """
 +    When iterated to list
 +    Then the traversal will raise an error with message containing text of "The parent of inject()-step can not be repeat()-step"
-     
++
 +  Scenario: g_V_repeatXunionXconstantXyX_limitX1X_identityXX_timesX3X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().repeat(union(constant('y').limit(1),identity())).times(2)
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | y |
 +      | y |
 +      | v[marko] |
 +      | v[vadas] |
 +      | v[lop] |
 +      | v[josh] |
 +      | v[ripple] |
 +      | v[peter] |
 +
 +  # Test tail works in repeat with a single loop
 +  Scenario: g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX1X_valuesXnameX
 +    Given the grateful graph
 +    And using the parameter vid3 defined as "v[NOT FADE AWAY].id"
 +    And the traversal of
 +      """
 +      g.V(vid3).repeat(__.out().order().by("performances").tail(2)).times(1).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | ME AND MY UNCLE |
 +      | DRUMS |
 +
 +  # Test tail runs per iteration in repeat with multiple iterations
 +  Scenario: g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX2X_valuesXnameX
 +    Given the grateful graph
 +    And using the parameter vid3 defined as "v[NOT FADE AWAY].id"
 +    And the traversal of
 +      """
 +      g.V(vid3).repeat(__.out().order().by("performances").tail(2)).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | THE OTHER ONE |
 +      | SUGAR MAGNOLIA |
 +
 +  # Test object-local tail works in repeat with a single loop
 +  Scenario: g_VX2X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX1X_valuesXnameX
 +    Given the grateful graph
 +    And using the parameter vid2 defined as "v[IM A MAN].id"
 +    And the traversal of
 +      """
 +      g.V(vid2).repeat(__.out().local(__.order().by("performances").tail(1))).times(1).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | JAM |
 +      | JACK STRAW |
 +
 +  # Test object-local tail runs per iteration in repeat with multiple iterations
 +  Scenario: g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX
 +    Given the grateful graph
 +    And using the parameter vid250 defined as "v[SIMPLE TWIST OF FATE].id"
 +    And the traversal of
 +      """
 +      g.V(vid250).repeat(__.out().local(__.order().by("performances").tail(1))).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | STUCK INSIDE OF MOBILE |
 +      | STUCK INSIDE OF MOBILE |
 +      | WICKED MESSENGER |
 +      | TANGLED UP IN BLUE |
 +      | SHELTER FROM THE STORM |
 +      | RAINY DAY WOMAN |
 +      | CUMBERLAND BLUES |
 +      | WHEN PUSH COMES TO SHOVE |
 +      | JOHN BROWN |
 +      | SIMPLE TWIST OF FATE |
 +      | BABY BLUE |
 +
 +  # Test tail inside repeat can be followed by other range-based steps
 +  Scenario: g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX
 +    Given the grateful graph
 +    And using the parameter vid3 defined as "v[NOT FADE AWAY].id"
 +    And the traversal of
 +      """
 +      g.V(vid3).repeat(__.out().order().by("performances").tail(3).limit(1)).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | THE OTHER ONE |
 +
 +  # Test tail inside repeat can be preceded by other range-based steps
 +  Scenario: g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX
 +    Given the grateful graph
 +    And using the parameter vid3 defined as "v[NOT FADE AWAY].id"
 +    And the traversal of
 +      """
 +      g.V(vid3).repeat(__.out().order().by("performances", Order.desc).limit(5).tail(1)).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | CHINA CAT SUNFLOWER |
 +
 +  # Test order on edge weight with tail in repeat leads to ordered walk
 +  Scenario: g_VX3X_repeatXoutE_order_byXweightX_tailX2X_inVX_timesX2X_valuesXnameX
 +    Given the grateful graph
 +    And using the parameter vid3 defined as "v[NOT FADE AWAY].id"
 +    And the traversal of
 +      """
 +      g.V(vid3).repeat(__.outE().order().by("weight").tail(2).inV()).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | SUGAR MAGNOLIA |
 +      | AROUND AND AROUND |
 +
 +  # Test order on edge weight with limit in repeat leads to limited, ordered walk
 +  Scenario: g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX
 +    Given the grateful graph
 +    And using the parameter vid3 defined as "v[NOT FADE AWAY].id"
 +    And the traversal of
 +      """
 +      g.V(vid3).repeat(__.outE().order().by("weight", Order.desc).limit(2).inV()).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | SUGAR MAGNOLIA |
 +      | AROUND AND AROUND |
 +
 +  Scenario: g_V_emit_repeatXout_order_byXnameXX_timesX2X_valuesXnameX
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().emit().repeat(__.out().order().by("name")).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | marko |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | lop |
 +      | vadas |
 +      | vadas |
 +      | lop |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | ripple |
 +      | peter |
 +      | lop |
 +
 +  @GraphComputerVerificationStarGraphExceeded
 +  Scenario: g_V_localXemit_repeatXout_order_byXnameXX_timesX2X_valuesXnameXX
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().local(__.emit().repeat(__.out().order().by("name")).times(2).values("name"))
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | marko |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | lop |
 +      | vadas |
 +      | vadas |
 +      | lop |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | ripple |
 +      | peter |
 +      | lop |
 +
 +  @GraphComputerVerificationStarGraphExceeded
 +  Scenario: g_V_emit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameX
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().emit().repeat(__.local(__.out().order().by("name"))).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | marko |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | lop |
 +      | vadas |
 +      | vadas |
 +      | lop |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | ripple |
 +      | peter |
 +      | lop |
 +
 +  @GraphComputerVerificationStarGraphExceeded
 +  Scenario: g_V_localXemit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameXX
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().local(__.emit().repeat(__.local(__.out().order().by("name"))).times(2).values("name"))
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | marko |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | lop |
 +      | vadas |
 +      | vadas |
 +      | lop |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | ripple |
 +      | peter |
 +      | lop |
 +
 +  Scenario: g_V_emitXhasLabelXpersonXX_repeatXout_order_byXnameXX_timesX2X_valuesXnameX
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().emit(__.hasLabel("person")).repeat(__.out().order().by("name")).times(2).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | marko |
 +      | josh |
 +      | lop |
 +      | ripple |
 +      | vadas |
 +      | vadas |
 +      | josh |
 +      | peter |
 +
 +  Scenario: g_V_untilXloops_isX2XX_repeatXout_order_byXnameXX_valuesXnameX
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().until(__.loops().is(2)).repeat(__.out().order().by("name")).values("name")
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | lop |
 +      | ripple |
 +
 +  Scenario: g_V_emit_repeatXdedupX_timesX1X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().emit().repeat(__.dedup()).times(1)
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | v[marko] |
 +      | v[marko] |
 +      | v[vadas] |
 +      | v[vadas] |
 +      | v[lop] |
 +      | v[lop] |
 +      | v[josh] |
 +      | v[josh] |
 +      | v[ripple] |
 +      | v[ripple] |
 +      | v[peter] |
 +      | v[peter] |
 +
 +  Scenario: g_V_emit_repeatXdedupX_timesX2X
 +    Given the modern graph
 +    And the traversal of
 +      """
 +      g.V().emit().repeat(__.dedup()).times(2)
 +      """
 +    When iterated to list
 +    Then the result should be unordered
 +      | result |
 +      | v[marko] |
 +      | v[marko] |
 +      | v[vadas] |
 +      | v[vadas] |
 +      | v[lop] |
 +      | v[lop] |
 +      | v[josh] |
 +      | v[josh] |
 +      | v[ripple] |
 +      | v[ripple] |
 +      | v[peter] |
 +      | v[peter] |