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] |