diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 31fc242bf64..f12826c0a3b 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -58,6 +58,8 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima * Modified HTTP API to expect gremlin-lang strings for parameters and update all GLVs to send requests in new format. * Added string parameter parsing to `GremlinServer` to prevent traversal injection and excessive nesting depths. * Modified all GLVs to detect unsupported types in `GremlinLang` and throw consistent error for that case. +* Extended `GValue` parameterization to all GLVs (`gremlin-python`, `gremlin-go`, `gremlin-javascript`, `gremlin-dotnet`), allowing parameters to be passed directly in traversals as in Java. +* Relaxed `GValue` name validation by removing the reserved leading underscore restriction. * Added GraphBinary 4.0 `Graph` (`0x10`) serializer/deserializer to `gremlin-javascript`, `gremlin-dotnet`, and `gremlin-go` so that `subgraph()` results are returned as a detached `Graph` data container. [[release-4-0-0-beta-2]] diff --git a/docs/src/reference/gremlin-variants.asciidoc b/docs/src/reference/gremlin-variants.asciidoc index 27924fa3600..aa9474dfc92 100644 --- a/docs/src/reference/gremlin-variants.asciidoc +++ b/docs/src/reference/gremlin-variants.asciidoc @@ -337,7 +337,8 @@ the traversal to utilize a parameter in place of a literal. [source,go] ---- -g.V().Has("name", gremlingo.NewGValue("name", "marko")) +g.V().Has("name", gremlingo.GValue{Name: "name", Value: "marko"}) +g.MergeV(gremlingo.GValue{Name: "vertexPattern", Value: map[interface{}]interface{}{"name": "marko"}}) ---- [[gremlin-go-scripts]] @@ -1852,8 +1853,17 @@ Promise.all([ [[gremlin-javascript-gvalue]] === GValue Parameterization -IMPORTANT: 4.0.0-beta.2 Release - `GValue` parameterization is not yet implemented for the JavaScript driver. This -functionality is planned for a future release. +A `GValue` is an encapsulation of a parameter name and value. A <> +are able to accept GValues. When constructing a `GraphTraversal` with such steps in JavaScript, a GValue may be passed +in the traversal to utilize a parameter in place of a literal. + +[source,javascript] +---- +const GValue = gremlin.process.GValue; + +g.V().has('name', new GValue('name', 'marko')); +g.mergeV(new GValue('vertexPattern', { name: 'marko' })); +---- [[gremlin-javascript-scripts]] === Submitting Scripts @@ -2398,6 +2408,8 @@ the traversal to utilize a parameter in place of a literal. [source,csharp] ---- g.V().Has("name", new GValue("name", "marko")); +g.MergeV(new GValue>("vertexPattern", + new Dictionary { { "name", "marko" } })); ---- [[gremlin-dotnet-scripts]] diff --git a/docs/src/upgrade/release-4.x.x.asciidoc b/docs/src/upgrade/release-4.x.x.asciidoc index 4706775c7f8..980571092ab 100644 --- a/docs/src/upgrade/release-4.x.x.asciidoc +++ b/docs/src/upgrade/release-4.x.x.asciidoc @@ -471,6 +471,22 @@ beyond this limit will be rejected with an error. See: link:https://issues.apache.org/jira/browse/TINKERPOP-3247[TINKERPOP-3247] +==== GValue in the Language Variants + +`GValue`, the named query-parameter wrapper introduced for Java in 3.8.0, is now available as a client-side API in all +of the Gremlin Language Variants. Users of the Python, JavaScript, .NET, and Go drivers can construct a `GValue` and +pass it to a parameterizable step; the driver sends the value to the server as a named parameter rather than inlining +it as a literal. See the "GValue Parameterization" reference documentation for +link:https://tinkerpop.apache.org/docs/4.0.0/reference/#gremlin-java-gvalue[Java], +link:https://tinkerpop.apache.org/docs/4.0.0/reference/#gremlin-python-gvalue[Python], +link:https://tinkerpop.apache.org/docs/4.0.0/reference/#gremlin-javascript-gvalue[JavaScript], +link:https://tinkerpop.apache.org/docs/4.0.0/reference/#gremlin-dotnet-gvalue[.NET], and +link:https://tinkerpop.apache.org/docs/4.0.0/reference/#gremlin-go-gvalue[Go] for construction syntax and examples. + +The leading-underscore restriction on `GValue` names that was present in 3.8.0 has been removed. Parameter names +beginning with `_` are now accepted in Java and across all language variants. The only remaining constraints are that +a `GValue` may not wrap another `GValue`, and (in the non-Java drivers) its name may not be null. + ==== JavaScript Typed Numeric Wrappers JavaScript has a single `Number` type (IEEE 754 double) which loses the distinction between Gremlin numeric types like diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java index 11546c6ca2d..861c447261a 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java @@ -46,12 +46,33 @@ * */ public class DotNetTranslateVisitor extends AbstractTranslateVisitor { + + private final boolean parameterize; + public DotNetTranslateVisitor() { this("g"); } public DotNetTranslateVisitor(final String graphTraversalSourceName) { + this(graphTraversalSourceName, false); + } + + /** + * Creates a visitor that translates gremlin-language into a C# source representation. + *

+ * The {@code parameterize} flag is unique to the .NET translator. When {@code true}, variable arguments are + * emitted as strongly-typed {@code GValue} instances (e.g. {@code new GValue("x", (string) x)}) + * rather than bare parameters. This is required because .NET is the only language variant that is both + * statically typed and exposes strongly-typed {@code GValue} overloads, so whether an argument is a value or a + * {@code GValue} is a compile-time overload choice that must be resolved during translation. All other variants + * parameterize at runtime and therefore do not need this distinction. See {@link Translator#DOTNET}. + * + * @param graphTraversalSourceName the name of the {@code GraphTraversalSource} (typically {@code "g"}) + * @param parameterize when {@code true}, wrap variable arguments in typed {@code GValue} instances + */ + public DotNetTranslateVisitor(final String graphTraversalSourceName, final boolean parameterize) { super(graphTraversalSourceName); + this.parameterize = parameterize; } @Override @@ -300,11 +321,13 @@ public Void visitTraversalSourceSpawnMethod_addV(final GremlinParser.TraversalSo for (int ix = 1; ix < ctx.getChildCount(); ix++) { if (ctx.getChild(ix) instanceof GremlinParser.StringArgumentContext) { - // note revisit tryAppendCastToString() method after GValue/.NET implementation in 4, - // in this case only ctx.variable() matters, (string) isn't needed for ctx.stringLiteral() - tryAppendCastToString((GremlinParser.StringArgumentContext) ctx.getChild(ix)); + final GremlinParser.StringArgumentContext sac = (GremlinParser.StringArgumentContext) ctx.getChild(ix); + tryAppendCastToString(sac); + visit(sac); + afterCastToString(sac); + } else { + visit(ctx.getChild(ix)); } - visit(ctx.getChild(ix)); } return null; } @@ -316,9 +339,13 @@ public Void visitTraversalMethod_addV_String(GremlinParser.TraversalMethod_addV_ for (int ix = 1; ix < ctx.getChildCount(); ix++) { if (ctx.getChild(ix) instanceof GremlinParser.StringArgumentContext) { - tryAppendCastToString((GremlinParser.StringArgumentContext) ctx.getChild(ix)); + final GremlinParser.StringArgumentContext sac = (GremlinParser.StringArgumentContext) ctx.getChild(ix); + tryAppendCastToString(sac); + visit(sac); + afterCastToString(sac); + } else { + visit(ctx.getChild(ix)); } - visit(ctx.getChild(ix)); } return null; } @@ -330,9 +357,13 @@ public Void visitTraversalSourceSpawnMethod_addE(final GremlinParser.TraversalSo for (int ix = 1; ix < ctx.getChildCount(); ix++) { if (ctx.getChild(ix) instanceof GremlinParser.StringArgumentContext) { - tryAppendCastToString((GremlinParser.StringArgumentContext) ctx.getChild(ix)); + final GremlinParser.StringArgumentContext sac = (GremlinParser.StringArgumentContext) ctx.getChild(ix); + tryAppendCastToString(sac); + visit(sac); + afterCastToString(sac); + } else { + visit(ctx.getChild(ix)); } - visit(ctx.getChild(ix)); } return null; } @@ -344,9 +375,13 @@ public Void visitTraversalMethod_addE_String(GremlinParser.TraversalMethod_addE_ for (int ix = 1; ix < ctx.getChildCount(); ix++) { if (ctx.getChild(ix) instanceof GremlinParser.StringArgumentContext) { - tryAppendCastToString((GremlinParser.StringArgumentContext) ctx.getChild(ix)); + final GremlinParser.StringArgumentContext sac = (GremlinParser.StringArgumentContext) ctx.getChild(ix); + tryAppendCastToString(sac); + visit(sac); + afterCastToString(sac); + } else { + visit(ctx.getChild(ix)); } - visit(ctx.getChild(ix)); } return null; } @@ -373,8 +408,9 @@ public Void visitTraversalSourceSpawnMethod_call_string_map(final GremlinParser. sb.append("").append("("); visit(ctx.stringLiteral()); sb.append(", "); - sb.append("(IDictionary) "); + tryAppendCastToDict(ctx.genericMapArgument()); visit(ctx.genericMapArgument()); + afterCastToDict(ctx.genericMapArgument()); sb.append(")"); return null; } @@ -399,8 +435,9 @@ public Void visitTraversalSourceSpawnMethod_call_string_map_traversal(final Grem sb.append("").append("("); visit(ctx.stringLiteral()); sb.append(", "); - sb.append("(IDictionary) "); + tryAppendCastToDict(ctx.genericMapArgument()); visit(ctx.genericMapArgument()); + afterCastToDict(ctx.genericMapArgument()); sb.append(", "); sb.append("(ITraversal) "); visit(ctx.nestedTraversal()); @@ -413,8 +450,9 @@ public Void visitTraversalSourceSpawnMethod_mergeV_Map(final GremlinParser.Trave // call is ambiguous without an explicit cast visit(ctx.getChild(0)); sb.append("("); - sb.append("(IDictionary) "); + tryAppendCastToDict(ctx.genericMapNullableArgument()); visit(ctx.genericMapNullableArgument()); + afterCastToDict(ctx.genericMapNullableArgument()); sb.append(")"); return null; } @@ -435,8 +473,9 @@ public Void visitTraversalSourceSpawnMethod_mergeE_Map(final GremlinParser.Trave // call is ambiguous without an explicit cast visit(ctx.getChild(0)); sb.append("("); - sb.append("(IDictionary) "); + tryAppendCastToDict(ctx.genericMapNullableArgument()); visit(ctx.genericMapNullableArgument()); + afterCastToDict(ctx.genericMapNullableArgument()); sb.append(")"); return null; } @@ -484,8 +523,9 @@ public Void visitTraversalMethod_call_string_map(final GremlinParser.TraversalMe sb.append("").append("("); visit(ctx.stringLiteral()); sb.append(", "); - sb.append("(IDictionary) "); + tryAppendCastToDict(ctx.genericMapArgument()); visit(ctx.genericMapArgument()); + afterCastToDict(ctx.genericMapArgument()); sb.append(")"); return null; } @@ -510,8 +550,9 @@ public Void visitTraversalMethod_call_string_map_traversal(final GremlinParser.T sb.append("").append("("); visit(ctx.stringLiteral()); sb.append(", "); - sb.append("(IDictionary) "); + tryAppendCastToDict(ctx.genericMapArgument()); visit(ctx.genericMapArgument()); + afterCastToDict(ctx.genericMapArgument()); sb.append(", "); sb.append("(ITraversal) "); visit(ctx.nestedTraversal()); @@ -608,6 +649,7 @@ public Void visitTraversalMethod_has_String_Object(final GremlinParser.Traversal sb.append(", "); tryAppendCastToObject(ctx.genericArgument()); visit(ctx.genericArgument()); + afterCastToObject(ctx.genericArgument()); sb.append(")"); return null; } @@ -632,12 +674,14 @@ public Void visitTraversalMethod_has_String_String_Object(final GremlinParser.Tr sb.append("("); tryAppendCastToString(ctx.stringNullableArgument()); visit(ctx.stringNullableArgument()); + afterCastToString(ctx.stringNullableArgument()); sb.append(", "); tryAppendCastToString(ctx.stringNullableLiteral()); visit(ctx.stringNullableLiteral()); sb.append(", "); tryAppendCastToObject(ctx.genericArgument()); visit(ctx.genericArgument()); + afterCastToObject(ctx.genericArgument()); sb.append(")"); return null; } @@ -649,6 +693,7 @@ public Void visitTraversalMethod_has_String_String_P(final GremlinParser.Travers sb.append("("); tryAppendCastToString(ctx.stringNullableArgument()); visit(ctx.stringNullableArgument()); + afterCastToString(ctx.stringNullableArgument()); sb.append(", "); tryAppendCastToString(ctx.stringNullableLiteral()); visit(ctx.stringNullableLiteral()); @@ -667,6 +712,7 @@ public Void visitTraversalMethod_has_T_Object(final GremlinParser.TraversalMetho sb.append(", "); tryAppendCastToObject(ctx.genericArgument()); visit(ctx.genericArgument()); + afterCastToObject(ctx.genericArgument()); sb.append(")"); return null; } @@ -718,6 +764,7 @@ public Void visitTraversalMethod_hasValue_Object_Object(final GremlinParser.Trav sb.append("("); tryAppendCastToObject(ctx.genericArgument()); visit(ctx.genericArgument()); + afterCastToObject(ctx.genericArgument()); sb.append(")"); return null; } else { @@ -754,24 +801,83 @@ public Void visitTraversalMethod_hasLabel_String_String(final GremlinParser.Trav sb.append("("); tryAppendCastToString(ctx.stringNullableArgument()); visit(ctx.stringNullableArgument()); + afterCastToString(ctx.stringNullableArgument()); sb.append(")"); return null; } else { + // Multi-arg hasLabel: in parameterize mode, we must use GValue for ALL args or NONE. + // If the first arg is a variable, wrap all in GValue; otherwise keep plain string casts. + final boolean firstIsVariable = ctx.stringNullableArgument().variable() != null; + // Use GValue wrapping only if ALL args are variables (safe for GValue overload) + // Otherwise use plain string casts for all to match HasLabel(string, params string[]) + final boolean useGValue = parameterize && firstIsVariable && allVariablesInVarargs(ctx.stringNullableArgumentVarargs()); + final String step = ctx.getChild(0).getText(); sb.append(convertToPascalCase(step)); sb.append("("); - tryAppendCastToString(ctx.stringNullableArgument()); - visit(ctx.stringNullableArgument()); + if (useGValue) { + sb.append("new GValue(\"").append(ctx.stringNullableArgument().variable().getText()).append("\", (string) "); + visit(ctx.stringNullableArgument()); + sb.append(")"); + } else { + // Plain cast for non-variable or mixed mode + if (ctx.stringNullableArgument().variable() != null || ctx.stringNullableArgument().stringNullableLiteral().K_NULL() != null) { + sb.append("(string) "); + } + visit(ctx.stringNullableArgument()); + } // more arguments to come - if (!ctx.stringNullableArgumentVarargs().isEmpty()) sb.append(", "); - visit(ctx.stringNullableArgumentVarargs()); + if (!ctx.stringNullableArgumentVarargs().isEmpty()) sb.append(", "); + if (useGValue) { + visitStringNullableArgumentVarargsWithGValue(ctx.stringNullableArgumentVarargs()); + } else { + visitStringNullableArgumentVarargsPlain(ctx.stringNullableArgumentVarargs()); + } sb.append(")"); return null; } } + private boolean allVariablesInVarargs(final GremlinParser.StringNullableArgumentVarargsContext ctx) { + for (int ix = 0; ix < ctx.getChildCount(); ix++) { + if (ctx.getChild(ix) instanceof GremlinParser.StringNullableArgumentContext) { + if (((GremlinParser.StringNullableArgumentContext) ctx.getChild(ix)).variable() == null) return false; + } + } + return true; + } + + private void visitStringNullableArgumentVarargsWithGValue(final GremlinParser.StringNullableArgumentVarargsContext ctx) { + for (int ix = 0; ix < ctx.getChildCount(); ix++) { + final ParseTree pt = ctx.getChild(ix); + if (pt instanceof GremlinParser.StringNullableArgumentContext) { + GremlinParser.StringNullableArgumentContext sna = (GremlinParser.StringNullableArgumentContext) pt; + sb.append("new GValue(\"").append(sna.variable().getText()).append("\", (string) "); + visit(sna); + sb.append(")"); + } else { + visit(pt); + } + } + } + + private void visitStringNullableArgumentVarargsPlain(final GremlinParser.StringNullableArgumentVarargsContext ctx) { + for (int ix = 0; ix < ctx.getChildCount(); ix++) { + final ParseTree pt = ctx.getChild(ix); + if (pt instanceof GremlinParser.StringNullableArgumentContext) { + GremlinParser.StringNullableArgumentContext sna = (GremlinParser.StringNullableArgumentContext) pt; + if (sna.variable() != null || sna.stringNullableLiteral().K_NULL() != null) { + sb.append("(string) "); + } + visit(sna); + } else { + visit(pt); + } + } + } + @Override public Void visitStringNullableArgumentVarargs(final GremlinParser.StringNullableArgumentVarargsContext ctx) { for (int ix = 0; ix < ctx.getChildCount(); ix++) { @@ -780,6 +886,7 @@ public Void visitStringNullableArgumentVarargs(final GremlinParser.StringNullabl GremlinParser.StringNullableArgumentContext sna = (GremlinParser.StringNullableArgumentContext) pt; tryAppendCastToString(sna); visit(sna); + afterCastToString(sna); } else { visit(pt); } @@ -852,8 +959,9 @@ public Void visitTraversalMethod_mergeV_Map(final GremlinParser.TraversalMethod_ // call is ambiguous without an explicit cast visit(ctx.getChild(0)); sb.append("("); - sb.append("(IDictionary) "); + tryAppendCastToDict(ctx.genericMapNullableArgument()); visit(ctx.genericMapNullableArgument()); + afterCastToDict(ctx.genericMapNullableArgument()); sb.append(")"); return null; } @@ -874,8 +982,9 @@ public Void visitTraversalMethod_mergeE_Map(final GremlinParser.TraversalMethod_ // call is ambiguous without an explicit cast visit(ctx.getChild(0)); sb.append("("); - sb.append("(IDictionary) "); + tryAppendCastToDict(ctx.genericMapNullableArgument()); visit(ctx.genericMapNullableArgument()); + afterCastToDict(ctx.genericMapNullableArgument()); sb.append(")"); return null; } @@ -908,8 +1017,9 @@ public Void visitTraversalMethod_option_Merge_Map(final GremlinParser.TraversalM sb.append("("); visit(ctx.traversalMerge()); sb.append(", "); - sb.append("(IDictionary) "); - visit(ctx.genericMapNullableArgument()); // second argument + tryAppendCastToDict(ctx.genericMapNullableArgument()); + visit(ctx.genericMapNullableArgument()); + afterCastToDict(ctx.genericMapNullableArgument()); sb.append(")"); return null; } @@ -975,6 +1085,7 @@ public Void visitTraversalMethod_property_Cardinality_Object_Object_Object(final sb.append(", "); tryAppendCastToObject(ctx.genericArgument()); visit(ctx.genericArgument()); + afterCastToObject(ctx.genericArgument()); sb.append(")"); return null; } else { @@ -1252,9 +1363,13 @@ private Void handleLongArguments(final ParseTree ctx) { for (int ix = 1; ix < ctx.getChildCount(); ix++) { if (ctx.getChild(ix) instanceof GremlinParser.IntegerArgumentContext) { - tryAppendCastToLong((GremlinParser.IntegerArgumentContext) ctx.getChild(ix)); + final GremlinParser.IntegerArgumentContext iac = (GremlinParser.IntegerArgumentContext) ctx.getChild(ix); + tryAppendCastToLong(iac); + visit(iac); + afterCastToLong(iac); + } else { + visit(ctx.getChild(ix)); } - visit(ctx.getChild(ix)); } return null; } @@ -1293,7 +1408,17 @@ private void tryAppendCastToLong(final GremlinParser.IntegerLiteralContext ctx) private void tryAppendCastToLong(final GremlinParser.IntegerArgumentContext ctx) { if (ctx.variable() != null) { - sb.append("(long) "); + if (parameterize) { + sb.append("new GValue(\"").append(ctx.variable().getText()).append("\", (long) "); + } else { + sb.append("(long) "); + } + } + } + + private void afterCastToLong(final GremlinParser.IntegerArgumentContext ctx) { + if (parameterize && ctx.variable() != null) { + sb.append(")"); } } @@ -1304,17 +1429,41 @@ private void tryAppendCastToString(final GremlinParser.StringLiteralContext ctx) } private void tryAppendCastToString(final GremlinParser.StringArgumentContext ctx) { - if (ctx.variable() != null || ctx.stringLiteral() != null) { + if (ctx.variable() != null) { + if (parameterize) { + sb.append("new GValue(\"").append(ctx.variable().getText()).append("\", (string) "); + } else { + sb.append("(string) "); + } + } else if (ctx.stringLiteral() != null) { sb.append("(string) "); } } + private void afterCastToString(final GremlinParser.StringArgumentContext ctx) { + if (parameterize && ctx.variable() != null) { + sb.append(")"); + } + } + private void tryAppendCastToString(final GremlinParser.StringNullableArgumentContext ctx) { - if (ctx.variable() != null || ctx.stringNullableLiteral().K_NULL() != null) { + if (ctx.variable() != null) { + if (parameterize) { + sb.append("new GValue(\"").append(ctx.variable().getText()).append("\", (string) "); + } else { + sb.append("(string) "); + } + } else if (ctx.stringNullableLiteral().K_NULL() != null) { sb.append("(string) "); } } + private void afterCastToString(final GremlinParser.StringNullableArgumentContext ctx) { + if (parameterize && ctx.variable() != null) { + sb.append(")"); + } + } + private void tryAppendCastToString(final GremlinParser.StringNullableLiteralContext ctx) { if (ctx.K_NULL() != null) { sb.append("(string) "); @@ -1322,8 +1471,21 @@ private void tryAppendCastToString(final GremlinParser.StringNullableLiteralCont } private void tryAppendCastToObject(final GremlinParser.GenericArgumentContext ctx) { - if (ctx.variable() != null || ctx.genericLiteral().nullLiteral() != null) + if (ctx.variable() != null) { + if (parameterize) { + sb.append("new GValue(\"").append(ctx.variable().getText()).append("\", (object) "); + } else { + sb.append("(object) "); + } + } else if (ctx.genericLiteral().nullLiteral() != null) { sb.append("(object) "); + } + } + + private void afterCastToObject(final GremlinParser.GenericArgumentContext ctx) { + if (parameterize && ctx.variable() != null) { + sb.append(")"); + } } private void tryAppendCastToObject(final GremlinParser.GenericLiteralContext ctx) { @@ -1331,6 +1493,42 @@ private void tryAppendCastToObject(final GremlinParser.GenericLiteralContext ctx sb.append("(object) "); } + private void tryAppendCastToDict(final GremlinParser.GenericMapNullableArgumentContext ctx) { + if (ctx.variable() != null) { + if (parameterize) { + sb.append("new GValue>(\"").append(ctx.variable().getText()).append("\", (IDictionary) "); + } else { + sb.append("(IDictionary) "); + } + } else { + sb.append("(IDictionary) "); + } + } + + private void afterCastToDict(final GremlinParser.GenericMapNullableArgumentContext ctx) { + if (parameterize && ctx.variable() != null) { + sb.append(")"); + } + } + + private void tryAppendCastToDict(final GremlinParser.GenericMapArgumentContext ctx) { + if (ctx.variable() != null) { + if (parameterize) { + sb.append("new GValue>(\"").append(ctx.variable().getText()).append("\", (IDictionary) "); + } else { + sb.append("(IDictionary) "); + } + } else { + sb.append("(IDictionary) "); + } + } + + private void afterCastToDict(final GremlinParser.GenericMapArgumentContext ctx) { + if (parameterize && ctx.variable() != null) { + sb.append(")"); + } + } + private boolean isCalledAsFirstStepInAnonymousTraversal(final ParseTree stepToTest) { final ParseTree parent = stepToTest.getParent(); final ParseTree parentParent = parent.getParent(); diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java index 9f84ae2c1cb..b0ecc37c68a 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/Translator.java @@ -44,7 +44,10 @@ public enum Translator { ANONYMIZED("Anonymized", AnonymizedTranslatorVisitor::new), /** - * Translates to gremlin-dotnet. + * Translates to gremlin-dotnet. Note that variable arguments are translated to bare literals. To instead preserve + * variables as strongly-typed {@code GValue} instances in the translated output, construct a + * {@link DotNetTranslateVisitor#DotNetTranslateVisitor(String, boolean)} with {@code parameterize} set to + * {@code true} and translate via {@link GremlinTranslator#translate(String, TranslateVisitor)}. */ DOTNET("DotNet", DotNetTranslateVisitor::new), diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java index d45f0c073ae..4e7ca2b7b13 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java @@ -48,9 +48,6 @@ private GValue(final V value) { } private GValue(final String name, final V value) { - if (name != null && name.startsWith("_")) { - throw new IllegalArgumentException(String.format("Invalid GValue name [%s]. Should not start with _.", name)); - } if (value instanceof GValue) { throw new IllegalArgumentException("GValues cannot be nested"); } diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java index 8e13823450b..6132a0ad330 100644 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/translator/GremlinTranslatorTest.java @@ -69,6 +69,13 @@ public void shouldExtractVariablesFromDotNet() { assertThat(translation.getParameters().toArray(), arrayContainingInAnyOrder(expectedVariables.toArray())); } + @Test + public void shouldExtractVariablesFromDotNetParameterize() { + final Translation translation = GremlinTranslator.translate(query, new DotNetTranslateVisitor("g", true)); + assertEquals(expectedVariables.size(), translation.getParameters().size()); + assertThat(translation.getParameters().toArray(), arrayContainingInAnyOrder(expectedVariables.toArray())); + } + @Test public void shouldExtractVariablesFromGo() { final Translation translation = GremlinTranslator.translate(query, Translator.GO); @@ -1524,6 +1531,23 @@ public void shouldTranslateForDotNet() { } } + @Test + public void shouldTranslateForDotNetParameterize() { + // Run the entire corpus through the parameterize translator to confirm it never throws or diverges + // across the grammar. Parameterization only affects variable arguments (the GValue-wrapping branches in + // DotNetTranslateVisitor are gated on ctx.variable() != null), so for any query without variables the + // output must be identical to the plain DotNet translation. Queries that actually contain variables are + // covered with explicit expected output in DotNetParameterizeTranslationTest. + try { + final Translation translation = GremlinTranslator.translate(query, new DotNetTranslateVisitor("g", true)); + if (translation.getParameters().isEmpty()) { + assertEquals(expectedForDotNet, translation.getTranslated()); + } + } catch (TranslatorException e) { + assertThat(e.getMessage(), startsWith(expectedForDotNet)); + } + } + @Test public void shouldTranslateForGo() { try { @@ -1574,4 +1598,44 @@ public void shouldTranslateForPython() { } } } + + /** + * Dedicated coverage for the parameterized .NET translation ({@code new DotNetTranslateVisitor(name, true)}), which + * is unique in that it wraps variable arguments in strongly-typed {@code GValue} instances rather than emitting + * bare parameters. These cases exercise the common argument types as well as the all-or-none behavior of + * multi-argument {@code hasLabel}. + */ + @RunWith(Parameterized.class) + public static class DotNetParameterizeTranslationTest { + + @Parameterized.Parameter(value = 0) + public String query; + + @Parameterized.Parameter(value = 1) + public String expected; + + @Parameterized.Parameters(name = "{0}") + public static Collection data() { + return Arrays.asList(new Object[][]{ + // literals are not parameterized + {"g.V().has('name','marko')", "g.V().Has(\"name\", \"marko\")"}, + // a variable string value is wrapped in a typed GValue + {"g.V().has('name', x)", "g.V().Has(\"name\", new GValue(\"x\", (object) x))"}, + // V()/E() id arguments are not GValue-wrapped by the translator; they pass through as bare variables + {"g.V(x)", "g.V(x)"}, + // a variable map value is wrapped in a typed GValue + {"g.mergeV(x)", "g.MergeV(new GValue>(\"x\", (IDictionary) x))"}, + // multi-arg hasLabel with all variables wraps every argument + {"g.V().hasLabel(x, y)", "g.V().HasLabel(new GValue(\"x\", (string) x), new GValue(\"y\", (string) y))"}, + // multi-arg hasLabel mixing a literal and a variable uses plain casts for all (none wrapped) + {"g.V().hasLabel('person', y)", "g.V().HasLabel(\"person\", (string) y)"}, + }); + } + + @Test + public void shouldTranslateForDotNetParameterize() { + final String translatedQuery = GremlinTranslator.translate(query, new DotNetTranslateVisitor("g", true)).getTranslated(); + assertEquals(expected, translatedQuery); + } + } } \ No newline at end of file diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java index 57649b697d2..a7bda5e7f2d 100644 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java @@ -160,9 +160,10 @@ public void shouldCheckParameterNameIsValidIdentifier() { g.V(GValue.of("1a", new int[]{1, 2, 3})); } - @Test(expected = IllegalArgumentException.class) - public void shouldCheckParameterNameIsNotReserved() { - g.V(GValue.of("_1", new int[]{1, 2, 3})); + @Test + public void shouldAllowParameterNameStartingWithUnderscore() { + final GremlinLang gremlin = g.V(GValue.of("_1", new int[]{1, 2, 3})).asAdmin().getGremlinLang(); + assertEquals("g.V(_1)", gremlin.getGremlin()); } @Test(expected = IllegalArgumentException.class) diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValueTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValueTest.java index d1b84bd9021..36bc28ed36b 100644 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValueTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValueTest.java @@ -59,9 +59,10 @@ public void shouldReturnAnExistInTypedGValue() { GValue.of("x", gValue); } - @Test(expected = IllegalArgumentException.class) - public void shouldRejectVariableNamesStartingWithUnderscore() { - GValue.of("_invalid", "value"); + @Test + public void shouldAcceptVariableNamesStartingWithUnderscore() { + final GValue gValue = GValue.of("_valid", "value"); + assertEquals("_valid", gValue.getName()); } @Test(expected = IllegalArgumentException.class) diff --git a/gremlin-dotnet/build/generate.groovy b/gremlin-dotnet/build/generate.groovy index 24bc271ad51..6d00ec3cd66 100644 --- a/gremlin-dotnet/build/generate.groovy +++ b/gremlin-dotnet/build/generate.groovy @@ -19,6 +19,7 @@ import org.apache.tinkerpop.gremlin.language.translator.GremlinTranslator import org.apache.tinkerpop.gremlin.language.translator.Translator +import org.apache.tinkerpop.gremlin.language.translator.DotNetTranslateVisitor import org.apache.tinkerpop.gremlin.language.corpus.FeatureReader import java.nio.file.Paths @@ -84,9 +85,24 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer -> ' new List, ITraversal>>(translations));\n' + ' }\n' + ' }\n') + writer.writeLine( + ' public static void InstantiateParameterizedTranslationsForTestRun()\n' + + ' {\n' + + ' _parameterizedTranslationsForTestRun =\n' + + ' new Dictionary, ITraversal>>>(\n' + + ' ParameterizedTranslations.Count);\n' + + ' foreach (var (traversal, translations) in ParameterizedTranslations)\n' + + ' {\n' + + ' _parameterizedTranslationsForTestRun.Add(traversal,\n' + + ' new List, ITraversal>>(translations));\n' + + ' }\n' + + ' }\n') writer.writeLine( ' private static IDictionary, ITraversal>>>\n' + ' _translationsForTestRun;\n') + writer.writeLine( + ' private static IDictionary, ITraversal>>>\n' + + ' _parameterizedTranslationsForTestRun;\n') writer.writeLine( ' private static readonly IDictionary,ITraversal>>> FixedTranslations = \n' + ' new Dictionary, ITraversal>>>\n' + @@ -101,6 +117,32 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer -> ] // SAMPLE: g_injectXnull_nullX: " {\"g_injectXnull_nullX\", new List, ITraversal>> {(g,p) =>g.Inject(null,null)}}, ",1\"]).Values(\"age\").Inject(null,null)}}, " + // .NET generates TWO translation sets for every feature-test scenario: a non-parameterized set (FixedTranslations, + // via Translator.DOTNET) and a parameterized set (ParameterizedTranslations, via a DotNetTranslateVisitor with + // parameterize=true). This double generation is unique to .NET. Because gremlin-dotnet is statically typed and + // exposes strongly-typed GValue overloads, value-vs-GValue is a compile-time overload choice and so must be + // decided at translation time rather than at runtime as the other GLVs do. Generating both sets lets the feature + // tests exercise each scenario with and without GValue parameterization. + // + // Both sets share the same token substitution, which replaces the cucumber test-data tokens (xx1, v1, vid1, e1, + // eid1, l1, pred1, c1) with strongly-typed lookups into the parameter map `p`. The two differ only in `quoteAware`: + // the parameterized variant additionally excludes a double-quote from the lookbehind so that token-like substrings + // appearing inside generated GValue names (e.g. new GValue("v1", ...)) are left untouched. Routing both + // call sites through this single closure keeps the two regex sets from drifting out of sync. + def substituteCSharpParameters = { String translated, boolean quoteAware -> + final String simpleLb = quoteAware ? "(? if (staticTranslate.containsKey(k)) { writer.writeLine(staticTranslate[k]) @@ -113,15 +155,36 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer -> while (gremlinItty.hasNext()) { def t = gremlinItty.next() writer.write("(g,p) =>") - writer.write(t.getTranslated(). - replaceAll("xx([0-9]+)", "p[\"xx\$1\"]"). - replaceAll("(?,ITraversal>>> ParameterizedTranslations = \n' + + ' new Dictionary, ITraversal>>>\n' + + ' {') + + gremlins.each { k,v -> + if (staticTranslate.containsKey(k)) { + writer.writeLine(staticTranslate[k]) + } else { + writer.write(" {\"") + writer.write(k) + writer.write("\", new List, ITraversal>> {") + def collected = v.collect { GremlinTranslator.translate(it, new DotNetTranslateVisitor("g", true)) } + def gremlinItty = collected.iterator() + while (gremlinItty.hasNext()) { + def t = gremlinItty.next() + writer.write("(g,p) =>") + writer.write(substituteCSharpParameters(t.getTranslated(), true)) if (gremlinItty.hasNext()) writer.write(', ') else @@ -151,6 +214,24 @@ radishGremlinFile.withWriter('UTF-8') { Writer writer -> ' traversal.GremlinLang.Gremlin = sideEffectLang.Gremlin + traversal.GremlinLang.Gremlin;\n' + ' }\n' + ' return traversal;\n' + + ' }\n') + writer.writeLine( + ' public static ITraversal UseParameterizedTraversal(string scenarioName, GraphTraversalSource g, IDictionary parameters, IDictionary sideEffects)\n' + + ' {\n' + + ' List, ITraversal>> list = _parameterizedTranslationsForTestRun[scenarioName];\n' + + ' Func, ITraversal> f = list[0];\n' + + ' list.RemoveAt(0);\n' + + ' ITraversal traversal = f.Invoke(g, parameters);\n' + + ' if (sideEffects.Count > 0)\n' + + ' {\n' + + ' var sideEffectLang = new GremlinLang();\n' + + ' foreach (var sideEffect in sideEffects)\n' + + ' {\n' + + ' sideEffectLang.AddSource("withSideEffect", sideEffect.Key, sideEffect.Value);\n' + + ' }\n' + + ' traversal.GremlinLang.Gremlin = sideEffectLang.Gremlin + traversal.GremlinLang.Gremlin;\n' + + ' }\n' + + ' return traversal;\n' + ' }\n' + ' }\n' + '}\n') diff --git a/gremlin-dotnet/docker-compose.yml b/gremlin-dotnet/docker-compose.yml index d68175d0e30..ccfe760f6c3 100644 --- a/gremlin-dotnet/docker-compose.yml +++ b/gremlin-dotnet/docker-compose.yml @@ -75,6 +75,10 @@ services: EXIT_CODE=$$?; /root/.dotnet/tools/trx || true; if [ $$EXIT_CODE -ne 0 ]; then echo '❌ dotnet test FAILED (exit code '$$EXIT_CODE') — build or test errors above'; fi; + echo 'Running parameterize Gherkin tests...'; + PARAMETERIZE=true dotnet test ./Gremlin.Net.sln -c Release --logger trx --filter FullyQualifiedName~Gremlin.Net.IntegrationTest.Gherkin.GherkinTestRunner --no-build; + PARAM_EXIT=$$?; + if [ $$PARAM_EXIT -ne 0 ]; then echo '❌ parameterize Gherkin test FAILED (exit code '$$PARAM_EXIT')'; EXIT_CODE=$$PARAM_EXIT; fi; echo 'Running examples...'; dotnet run --project Examples/BasicGremlin/BasicGremlin.csproj; dotnet run --project Examples/Connections/Connections.csproj; diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GValue.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GValue.cs index 84c4eb0402b..c23a65b4ca4 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GValue.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GValue.cs @@ -52,30 +52,18 @@ public class GValue : IGValue, IEquatable> /// /// Initializes a new instance of the class. /// - /// The parameter name. Must be a valid identifier, not null, and not start with underscore. + /// The parameter name. Must not be null. /// The parameter value. /// Thrown when is null. - /// Thrown when is not a valid identifier. + /// Thrown when value is a nested GValue. public GValue(string name, T value) { + if (value is IGValue) + throw new ArgumentException("GValues cannot be nested"); + if (name == null) throw new ArgumentNullException(nameof(name), "The parameter name cannot be null."); - if (name.Length == 0) - throw new ArgumentException($"Invalid parameter name [{name}]."); - - if (name[0] == '_') - throw new ArgumentException($"Invalid GValue name {name}. Should not start with _."); - - if (!char.IsLetter(name[0])) - throw new ArgumentException($"Invalid parameter name [{name}]."); - - for (int i = 1; i < name.Length; i++) - { - if (!char.IsLetterOrDigit(name[i])) - throw new ArgumentException($"Invalid parameter name [{name}]."); - } - Name = name; Value = value; } @@ -119,10 +107,15 @@ public override int GetHashCode() } } + /// + /// Gets a value indicating whether the parameter value is null. + /// + public bool IsNull => Value == null; + /// public override string ToString() { - return $"GValue({Name}, {Value})"; + return $"{Name}={Value}"; } } } diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs index de01df33678..32605edecfa 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs @@ -131,6 +131,15 @@ public GraphTraversal AddE (string edgeLabel) return Wrap(this); } + /// + /// Adds the addE step to this . + /// + public GraphTraversal AddE (GValue edgeLabel) + { + GremlinLang.AddStep("addE", edgeLabel); + return Wrap(this); + } + /// /// Adds the addE step to this . /// @@ -158,6 +167,15 @@ public GraphTraversal AddV (string vertexLabel) return Wrap(this); } + /// + /// Adds the addV step to this . + /// + public GraphTraversal AddV (GValue vertexLabel) + { + GremlinLang.AddStep("addV", vertexLabel); + return Wrap(this); + } + /// /// Adds the addV step to this . /// @@ -297,6 +315,19 @@ public GraphTraversal Both (params string?[] edgeLabels) return Wrap(this); } + /// + /// Adds the both step to this . + /// + public GraphTraversal Both (GValue edgeLabel, params GValue[] otherEdgeLabels) + { + if (otherEdgeLabels == null) throw new ArgumentNullException(nameof(otherEdgeLabels)); + + var args = new List(1 + otherEdgeLabels.Length) { edgeLabel }; + args.AddRange(otherEdgeLabels); + GremlinLang.AddStep("both", args.ToArray()); + return Wrap(this); + } + /// /// Adds the bothE step to this . /// @@ -310,6 +341,19 @@ public GraphTraversal BothE (params string?[] edgeLabels) return Wrap(this); } + /// + /// Adds the bothE step to this . + /// + public GraphTraversal BothE (GValue edgeLabel, params GValue[] otherEdgeLabels) + { + if (otherEdgeLabels == null) throw new ArgumentNullException(nameof(otherEdgeLabels)); + + var args = new List(1 + otherEdgeLabels.Length) { edgeLabel }; + args.AddRange(otherEdgeLabels); + GremlinLang.AddStep("bothE", args.ToArray()); + return Wrap(this); + } + /// /// Adds the bothV step to this . /// @@ -464,6 +508,24 @@ public GraphTraversal Call(string? service, IDictionar return Wrap(this); } + /// + /// Adds the call step to this . + /// + public GraphTraversal Call (string? service, GValue> m) + { + GremlinLang.AddStep("call", service, m); + return Wrap(this); + } + + /// + /// Adds the call step to this . + /// + public GraphTraversal Call (string? service, GValue> m, ITraversal childTraversal) + { + GremlinLang.AddStep("call", service, m, childTraversal); + return Wrap(this); + } + /// /// Adds the cap step to this . /// @@ -554,6 +616,15 @@ public GraphTraversal Coin (double probability) return Wrap(this); } + /// + /// Adds the coin step to this . + /// + public GraphTraversal Coin (GValue probability) + { + GremlinLang.AddStep("coin", probability); + return Wrap(this); + } + /// /// Adds the combine step to this . /// @@ -622,6 +693,15 @@ public GraphTraversal Constant (TNewEnd e) return Wrap(this); } + /// + /// Adds the constant step to this . + /// + public GraphTraversal Constant (GValue e) + { + GremlinLang.AddStep("constant", e); + return Wrap(this); + } + /// /// Adds the count step to this . /// @@ -932,6 +1012,15 @@ public GraphTraversal From (Vertex? fromVertex) return Wrap(this); } + /// + /// Adds the from step to this . + /// + public GraphTraversal From (GValue fromVertex) + { + GremlinLang.AddStep("from", fromVertex); + return Wrap(this); + } + /// /// Adds the group step to this . /// @@ -1013,6 +1102,24 @@ public GraphTraversal Has (string? label, string? propertyKey, P? return Wrap(this); } + /// + /// Adds the has step to this . + /// + public GraphTraversal Has (GValue label, string? propertyKey, object? value) + { + GremlinLang.AddStep("has", label, propertyKey, value); + return Wrap(this); + } + + /// + /// Adds the has step to this . + /// + public GraphTraversal Has (GValue label, string? propertyKey, P? predicate) + { + GremlinLang.AddStep("has", label, propertyKey, predicate); + return Wrap(this); + } + /// /// Adds the has step to this . /// @@ -1115,6 +1222,19 @@ public GraphTraversal HasLabel (string? label, params string?[]? o return Wrap(this); } + /// + /// Adds the hasLabel step to this . + /// + public GraphTraversal HasLabel (GValue label, params GValue[] otherLabels) + { + if (otherLabels == null) throw new ArgumentNullException(nameof(otherLabels)); + + var args = new List(1 + otherLabels.Length) { label }; + args.AddRange(otherLabels); + GremlinLang.AddStep("hasLabel", args.ToArray()); + return Wrap(this); + } + /// /// Adds the hasNot step to this . /// @@ -1183,6 +1303,19 @@ public GraphTraversal In (params string?[] edgeLabels) return Wrap(this); } + /// + /// Adds the in step to this . + /// + public GraphTraversal In (GValue edgeLabel, params GValue[] otherEdgeLabels) + { + if (otherEdgeLabels == null) throw new ArgumentNullException(nameof(otherEdgeLabels)); + + var args = new List(1 + otherEdgeLabels.Length) { edgeLabel }; + args.AddRange(otherEdgeLabels); + GremlinLang.AddStep("in", args.ToArray()); + return Wrap(this); + } + /// /// Adds the inE step to this . /// @@ -1196,6 +1329,19 @@ public GraphTraversal InE (params string?[] edgeLabels) return Wrap(this); } + /// + /// Adds the inE step to this . + /// + public GraphTraversal InE (GValue edgeLabel, params GValue[] otherEdgeLabels) + { + if (otherEdgeLabels == null) throw new ArgumentNullException(nameof(otherEdgeLabels)); + + var args = new List(1 + otherEdgeLabels.Length) { edgeLabel }; + args.AddRange(otherEdgeLabels); + GremlinLang.AddStep("inE", args.ToArray()); + return Wrap(this); + } + /// /// Adds the inV step to this . /// @@ -1315,6 +1461,24 @@ public GraphTraversal Limit (long limit) return Wrap(this); } + /// + /// Adds the limit step to this . + /// + public GraphTraversal Limit (GValue limit) + { + GremlinLang.AddStep("limit", limit); + return Wrap(this); + } + + /// + /// Adds the limit step to this . + /// + public GraphTraversal Limit (Scope scope, GValue limit) + { + GremlinLang.AddStep("limit", scope, limit); + return Wrap(this); + } + /// /// Adds the local step to this . /// @@ -1469,6 +1633,15 @@ public GraphTraversal MergeE (IDictionary? m) return Wrap(this); } + /// + /// Adds the mergeE step to this . + /// + public GraphTraversal MergeE (GValue> m) + { + GremlinLang.AddStep("mergeE", m); + return Wrap(this); + } + /// /// Adds the mergeE step to this . /// @@ -1496,6 +1669,15 @@ public GraphTraversal MergeV (IDictionary? m) return Wrap(this); } + /// + /// Adds the mergeV step to this . + /// + public GraphTraversal MergeV (GValue> m) + { + GremlinLang.AddStep("mergeV", m); + return Wrap(this); + } + /// /// Adds the mergeV step to this . /// @@ -1568,6 +1750,15 @@ public GraphTraversal Option (object pickToken, IDictionary(this); } + /// + /// Adds the option step to this . + /// + public GraphTraversal Option (object pickToken, GValue> m) + { + GremlinLang.AddStep("option", pickToken, m); + return Wrap(this); + } + /// /// Adds the option step to this . /// @@ -1639,6 +1830,19 @@ public GraphTraversal Out (params string?[] edgeLabels) return Wrap(this); } + /// + /// Adds the out step to this . + /// + public GraphTraversal Out (GValue edgeLabel, params GValue[] otherEdgeLabels) + { + if (otherEdgeLabels == null) throw new ArgumentNullException(nameof(otherEdgeLabels)); + + var args = new List(1 + otherEdgeLabels.Length) { edgeLabel }; + args.AddRange(otherEdgeLabels); + GremlinLang.AddStep("out", args.ToArray()); + return Wrap(this); + } + /// /// Adds the outE step to this . /// @@ -1652,6 +1856,19 @@ public GraphTraversal OutE (params string?[] edgeLabels) return Wrap(this); } + /// + /// Adds the outE step to this . + /// + public GraphTraversal OutE (GValue edgeLabel, params GValue[] otherEdgeLabels) + { + if (otherEdgeLabels == null) throw new ArgumentNullException(nameof(otherEdgeLabels)); + + var args = new List(1 + otherEdgeLabels.Length) { edgeLabel }; + args.AddRange(otherEdgeLabels); + GremlinLang.AddStep("outE", args.ToArray()); + return Wrap(this); + } + /// /// Adds the outV step to this . /// @@ -1857,6 +2074,24 @@ public GraphTraversal Range (long low, long high) return Wrap(this); } + /// + /// Adds the range step to this . + /// + public GraphTraversal Range (GValue low, GValue high) + { + GremlinLang.AddStep("range", low, high); + return Wrap(this); + } + + /// + /// Adds the range step to this . + /// + public GraphTraversal Range (Scope scope, GValue low, GValue high) + { + GremlinLang.AddStep("range", scope, low, high); + return Wrap(this); + } + /// /// Adds the read step to this . /// @@ -2092,6 +2327,24 @@ public GraphTraversal Skip (long skip) return Wrap(this); } + /// + /// Adds the skip step to this . + /// + public GraphTraversal Skip (GValue skip) + { + GremlinLang.AddStep("skip", skip); + return Wrap(this); + } + + /// + /// Adds the skip step to this . + /// + public GraphTraversal Skip (Scope scope, GValue skip) + { + GremlinLang.AddStep("skip", scope, skip); + return Wrap(this); + } + /// /// Adds the split step to this . /// @@ -2209,6 +2462,24 @@ public GraphTraversal Tail (long limit) return Wrap(this); } + /// + /// Adds the tail step to this . + /// + public GraphTraversal Tail (GValue limit) + { + GremlinLang.AddStep("tail", limit); + return Wrap(this); + } + + /// + /// Adds the tail step to this . + /// + public GraphTraversal Tail (Scope scope, GValue limit) + { + GremlinLang.AddStep("tail", scope, limit); + return Wrap(this); + } + /// /// Adds the timeLimit step to this . /// @@ -2239,6 +2510,19 @@ public GraphTraversal To (Direction? direction, params string?[] GremlinLang.AddStep("to", args.ToArray()); return Wrap(this); } + + /// + /// Adds the to step to this . + /// + public GraphTraversal To (Direction? direction, GValue edgeLabel, params GValue[] otherEdgeLabels) + { + if (otherEdgeLabels == null) throw new ArgumentNullException(nameof(otherEdgeLabels)); + + var args = new List(2 + otherEdgeLabels.Length) { direction, edgeLabel }; + args.AddRange(otherEdgeLabels); + GremlinLang.AddStep("to", args.ToArray()); + return Wrap(this); + } /// /// Adds the to step to this . @@ -2277,6 +2561,15 @@ public GraphTraversal To (Vertex? toVertex) return Wrap(this); } + /// + /// Adds the to step to this . + /// + public GraphTraversal To (GValue toVertex) + { + GremlinLang.AddStep("to", toVertex); + return Wrap(this); + } + /// /// Adds the toE step to this . /// @@ -2289,6 +2582,19 @@ public GraphTraversal ToE (Direction? direction, params string?[] GremlinLang.AddStep("toE", args.ToArray()); return Wrap(this); } + + /// + /// Adds the toE step to this . + /// + public GraphTraversal ToE (Direction? direction, GValue edgeLabel, params GValue[] otherEdgeLabels) + { + if (otherEdgeLabels == null) throw new ArgumentNullException(nameof(otherEdgeLabels)); + + var args = new List(2 + otherEdgeLabels.Length) { direction, edgeLabel }; + args.AddRange(otherEdgeLabels); + GremlinLang.AddStep("toE", args.ToArray()); + return Wrap(this); + } /// /// Adds the toLower step to this . @@ -2514,7 +2820,6 @@ public GraphTraversal Write () return Wrap(this); } - /// /// Make a copy of a traversal that is reset for iteration. /// @@ -2523,4 +2828,4 @@ public GraphTraversal Clone() return new GraphTraversal(TraversalStrategies, GremlinLang.Clone()); } } -} \ No newline at end of file +} diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs index fe1f6028a60..92a7a0c2171 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversalSource.cs @@ -345,6 +345,17 @@ public GraphTraversal AddE(string label) return traversal; } + /// + /// Spawns a off this graph traversal source and adds the addE step to that + /// traversal. + /// + public GraphTraversal AddE(GValue label) + { + var traversal = new GraphTraversal(TraversalStrategies, GremlinLang.Clone()); + traversal.GremlinLang.AddStep("addE", label); + return traversal; + } + /// /// Spawns a off this graph traversal source and adds the addE step to that /// traversal. @@ -373,6 +384,17 @@ public GraphTraversal MergeE(IDictionary? m) return traversal; } + /// + /// Spawns a off this graph traversal source and adds the mergeE step to that + /// traversal. + /// + public GraphTraversal MergeE(GValue> searchCreate) + { + var traversal = new GraphTraversal(TraversalStrategies, GremlinLang.Clone()); + traversal.GremlinLang.AddStep("mergeE", searchCreate); + return traversal; + } + /// /// Spawns a off this graph traversal source and adds the mergeE step to that /// traversal. @@ -406,6 +428,17 @@ public GraphTraversal AddV(string label) return traversal; } + /// + /// Spawns a off this graph traversal source and adds the addV step to that + /// traversal. + /// + public GraphTraversal AddV(GValue vertexLabel) + { + var traversal = new GraphTraversal(TraversalStrategies, GremlinLang.Clone()); + traversal.GremlinLang.AddStep("addV", vertexLabel); + return traversal; + } + /// /// Spawns a off this graph traversal source and adds the addV step to that /// traversal. @@ -428,6 +461,17 @@ public GraphTraversal MergeV(IDictionary? m) return traversal; } + /// + /// Spawns a off this graph traversal source and adds the mergeV step to that + /// traversal. + /// + public GraphTraversal MergeV(GValue> searchCreate) + { + var traversal = new GraphTraversal(TraversalStrategies, GremlinLang.Clone()); + traversal.GremlinLang.AddStep("mergeV", searchCreate); + return traversal; + } + /// /// Spawns a off this graph traversal source and adds the mergeV step to that /// traversal. @@ -529,6 +573,29 @@ public GraphTraversal Call(string? service, IDictionary< return traversal; } + /// + /// Spawns a off this graph traversal source and adds the call step to that + /// traversal. + /// + public GraphTraversal Call(string service, GValue> m) + { + var traversal = new GraphTraversal(TraversalStrategies, GremlinLang.Clone()); + traversal.GremlinLang.AddStep("call", service, m); + return traversal; + } + + /// + /// Spawns a off this graph traversal source and adds the call step to that + /// traversal. + /// + public GraphTraversal Call(string service, GValue> m, + ITraversal childTraversal) + { + var traversal = new GraphTraversal(TraversalStrategies, GremlinLang.Clone()); + traversal.GremlinLang.AddStep("call", service, m, childTraversal); + return traversal; + } + /// /// Spawns a off this graph traversal source and adds the union step to that /// traversal. diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GremlinLang.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GremlinLang.cs index 21115a8f8ff..1a14dda48f9 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GremlinLang.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GremlinLang.cs @@ -302,11 +302,6 @@ private string ArgAsString(object? arg) { var key = gValue.Name; - if (key == null) - { - return ArgAsString(gValue.ObjectValue); - } - if (!IsValidIdentifier(key)) { throw new ArgumentException($"Invalid parameter name [{key}]."); @@ -314,7 +309,7 @@ private string ArgAsString(object? arg) if (_parameters.ContainsKey(key)) { - if (!Equals(_parameters[key], gValue.ObjectValue)) + if (!ValuesEqual(_parameters[key], gValue.ObjectValue)) { throw new ArgumentException($"Parameter with name [{key}] already defined."); } @@ -718,16 +713,57 @@ private static bool IsValidIdentifier(string name) { if (string.IsNullOrEmpty(name)) return false; - if (!char.IsLetter(name[0])) + if (!char.IsLetter(name[0]) && name[0] != '_' && name[0] != '$') return false; for (int i = 1; i < name.Length; i++) { - if (!char.IsLetterOrDigit(name[i])) + if (!char.IsLetterOrDigit(name[i]) && name[i] != '_' && name[i] != '$') return false; } return true; } + private static bool ValuesEqual(object? a, object? b) + { + if (Equals(a, b)) return true; + if (a == null || b == null) return false; + + if (a is IDictionary dictA && b is IDictionary dictB) + { + if (dictA.Count != dictB.Count) return false; + foreach (DictionaryEntry entry in dictA) + { + if (!dictB.Contains(entry.Key)) return false; + if (!ValuesEqual(entry.Value, dictB[entry.Key])) return false; + } + return true; + } + + if (a is string || b is string) return false; + + if (a is IEnumerable enumA && b is IEnumerable enumB) + { + var enumeratorA = enumA.GetEnumerator(); + var enumeratorB = enumB.GetEnumerator(); + try + { + while (enumeratorA.MoveNext()) + { + if (!enumeratorB.MoveNext()) return false; + if (!ValuesEqual(enumeratorA.Current, enumeratorB.Current)) return false; + } + return !enumeratorB.MoveNext(); + } + finally + { + if (enumeratorA is IDisposable dA) dA.Dispose(); + if (enumeratorB is IDisposable dB) dB.Dispose(); + } + } + + return false; + } + /// /// Creates a deep copy of this instance. /// diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs index b16732a61b0..484b393c198 100644 --- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs +++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs @@ -68,6 +68,14 @@ public static GraphTraversal AddE(string edgeLabel) return new GraphTraversal().AddE(edgeLabel); } + /// + /// Spawns a and adds the addE step to that traversal. + /// + public static GraphTraversal AddE(GValue edgeLabel) + { + return new GraphTraversal().AddE(edgeLabel); + } + /// /// Spawns a and adds the addE step to that traversal. /// @@ -92,6 +100,14 @@ public static GraphTraversal AddV(string vertexLabel) return new GraphTraversal().AddV(vertexLabel); } + /// + /// Spawns a and adds the addV step to that traversal. + /// + public static GraphTraversal AddV(GValue vertexLabel) + { + return new GraphTraversal().AddV(vertexLabel); + } + /// /// Spawns a and adds the addV step to that traversal. /// @@ -210,6 +226,14 @@ public static GraphTraversal Both(params string?[] edgeLabels) : new GraphTraversal().Both(edgeLabels); } + /// + /// Spawns a and adds the both step to that traversal. + /// + public static GraphTraversal Both(GValue edgeLabel, params GValue[] otherEdgeLabels) + { + return new GraphTraversal().Both(edgeLabel, otherEdgeLabels); + } + /// /// Spawns a and adds the bothE step to that traversal. /// @@ -220,6 +244,14 @@ public static GraphTraversal BothE(params string?[] edgeLabels) : new GraphTraversal().BothE(edgeLabels); } + /// + /// Spawns a and adds the bothE step to that traversal. + /// + public static GraphTraversal BothE(GValue edgeLabel, params GValue[] otherEdgeLabels) + { + return new GraphTraversal().BothE(edgeLabel, otherEdgeLabels); + } + /// /// Spawns a and adds the bothV step to that traversal. /// @@ -276,6 +308,22 @@ public static GraphTraversal Call(string? service, IDictionary().Call(service, m, t); } + /// + /// Spawns a and adds the call step to that traversal. + /// + public static GraphTraversal Call(string service, GValue> m) + { + return new GraphTraversal().Call(service, m); + } + + /// + /// Spawns a and adds the call step to that traversal. + /// + public static GraphTraversal Call(string service, GValue> m, ITraversal childTraversal) + { + return new GraphTraversal().Call(service, m, childTraversal); + } + /// /// Spawns a and adds the cap step to that traversal. /// @@ -352,6 +400,14 @@ public static GraphTraversal Coin(double probability) return new GraphTraversal().Coin(probability); } + /// + /// Spawns a and adds the coin step to that traversal. + /// + public static GraphTraversal Coin(GValue probability) + { + return new GraphTraversal().Coin(probability); + } + /// /// Spawns a and adds the combine step to that traversal. /// @@ -394,6 +450,14 @@ public static GraphTraversal Constant(E2 a) return new GraphTraversal().Constant(a); } + /// + /// Spawns a and adds the constant step to that traversal. + /// + public static GraphTraversal Constant(GValue a) + { + return new GraphTraversal().Constant(a); + } + /// /// Spawns a and adds the count step to that traversal. /// @@ -712,6 +776,22 @@ public static GraphTraversal Has(T accessor, P? predicate) return new GraphTraversal().Has(accessor, predicate); } + /// + /// Spawns a and adds the has step to that traversal. + /// + public static GraphTraversal Has(GValue label, string propertyKey, P predicate) + { + return new GraphTraversal().Has(label, propertyKey, predicate); + } + + /// + /// Spawns a and adds the has step to that traversal. + /// + public static GraphTraversal Has(GValue label, string propertyKey, object value) + { + return new GraphTraversal().Has(label, propertyKey, value); + } + /// /// Spawns a and adds the hasId step to that traversal. /// @@ -766,6 +846,14 @@ public static GraphTraversal HasLabel(string? label, params stri : new GraphTraversal().HasLabel(label, otherLabels); } + /// + /// Spawns a and adds the hasLabel step to that traversal. + /// + public static GraphTraversal HasLabel(GValue label, params GValue[] otherLabels) + { + return new GraphTraversal().HasLabel(label, otherLabels); + } + /// /// Spawns a and adds the hasNot step to that traversal. /// @@ -818,6 +906,14 @@ public static GraphTraversal In(params string?[] edgeLabels) : new GraphTraversal().In(edgeLabels); } + /// + /// Spawns a and adds the in step to that traversal. + /// + public static GraphTraversal In(GValue edgeLabel, params GValue[] otherEdgeLabels) + { + return new GraphTraversal().In(edgeLabel, otherEdgeLabels); + } + /// /// Spawns a and adds the inE step to that traversal. /// @@ -828,6 +924,14 @@ public static GraphTraversal InE(params string?[] edgeLabels) : new GraphTraversal().InE(edgeLabels); } + /// + /// Spawns a and adds the inE step to that traversal. + /// + public static GraphTraversal InE(GValue edgeLabel, params GValue[] otherEdgeLabels) + { + return new GraphTraversal().InE(edgeLabel, otherEdgeLabels); + } + /// /// Spawns a and adds the inV step to that traversal. /// @@ -918,6 +1022,14 @@ public static GraphTraversal Limit(Scope scope, long limit) return new GraphTraversal().Limit(scope, limit); } + /// + /// Spawns a and adds the limit step to that traversal. + /// + public static GraphTraversal Limit(Scope scope, GValue limit) + { + return new GraphTraversal().Limit(scope, limit); + } + /// /// Spawns a and adds the limit step to that traversal. /// @@ -926,6 +1038,14 @@ public static GraphTraversal Limit(long limit) return new GraphTraversal().Limit(limit); } + /// + /// Spawns a and adds the limit step to that traversal. + /// + public static GraphTraversal Limit(GValue limit) + { + return new GraphTraversal().Limit(limit); + } + /// /// Spawns a and adds the local step to that traversal. /// @@ -1056,6 +1176,14 @@ public static GraphTraversal MergeE (IDictionary? return new GraphTraversal().MergeE(m); } + /// + /// Spawns a and adds the mergeE step to that traversal. + /// + public static GraphTraversal MergeE(GValue> m) + { + return new GraphTraversal().MergeE(m); + } + /// /// Spawns a and adds the mergeE step to that traversal. /// @@ -1080,6 +1208,14 @@ public static GraphTraversal MergeV (IDictionary? return new GraphTraversal().MergeV(m); } + /// + /// Spawns a and adds the mergeV step to that traversal. + /// + public static GraphTraversal MergeV(GValue> m) + { + return new GraphTraversal().MergeV(m); + } + /// /// Adds the mergeV step to this . /// @@ -1172,6 +1308,14 @@ public static GraphTraversal Out(params string?[] edgeLabels) : new GraphTraversal().Out(edgeLabels); } + /// + /// Spawns a and adds the out step to that traversal. + /// + public static GraphTraversal Out(GValue edgeLabel, params GValue[] otherEdgeLabels) + { + return new GraphTraversal().Out(edgeLabel, otherEdgeLabels); + } + /// /// Spawns a and adds the outE step to that traversal. /// @@ -1182,6 +1326,14 @@ public static GraphTraversal OutE(params string?[] edgeLabels) : new GraphTraversal().OutE(edgeLabels); } + /// + /// Spawns a and adds the outE step to that traversal. + /// + public static GraphTraversal OutE(GValue edgeLabel, params GValue[] otherEdgeLabels) + { + return new GraphTraversal().OutE(edgeLabel, otherEdgeLabels); + } + /// /// Spawns a and adds the outV step to that traversal. /// @@ -1274,6 +1426,14 @@ public static GraphTraversal Range(Scope scope, long low, long h return new GraphTraversal().Range(scope, low, high); } + /// + /// Spawns a and adds the range step to that traversal. + /// + public static GraphTraversal Range(Scope scope, GValue low, GValue high) + { + return new GraphTraversal().Range(scope, low, high); + } + /// /// Spawns a and adds the range step to that traversal. /// @@ -1282,6 +1442,14 @@ public static GraphTraversal Range(long low, long high) return new GraphTraversal().Range(low, high); } + /// + /// Spawns a and adds the range step to that traversal. + /// + public static GraphTraversal Range(GValue low, GValue high) + { + return new GraphTraversal().Range(low, high); + } + /// /// Spawns a and adds the repeat step to that traversal. /// @@ -1458,6 +1626,14 @@ public static GraphTraversal Skip(Scope scope, long skip) return new GraphTraversal().Skip(scope, skip); } + /// + /// Spawns a and adds the skip step to that traversal. + /// + public static GraphTraversal Skip(Scope scope, GValue skip) + { + return new GraphTraversal().Skip(scope, skip); + } + /// /// Spawns a and adds the skip step to that traversal. /// @@ -1466,6 +1642,14 @@ public static GraphTraversal Skip(long skip) return new GraphTraversal().Skip(skip); } + /// + /// Spawns a and adds the skip step to that traversal. + /// + public static GraphTraversal Skip(GValue skip) + { + return new GraphTraversal().Skip(skip); + } + /// /// Spawns a and adds the split step to that traversal. /// @@ -1546,6 +1730,14 @@ public static GraphTraversal Tail(Scope scope, long limit) return new GraphTraversal().Tail(scope, limit); } + /// + /// Spawns a and adds the tail step to that traversal. + /// + public static GraphTraversal Tail(Scope scope, GValue limit) + { + return new GraphTraversal().Tail(scope, limit); + } + /// /// Spawns a and adds the tail step to that traversal. /// @@ -1554,6 +1746,14 @@ public static GraphTraversal Tail(long limit) return new GraphTraversal().Tail(limit); } + /// + /// Spawns a and adds the tail step to that traversal. + /// + public static GraphTraversal Tail(GValue limit) + { + return new GraphTraversal().Tail(limit); + } + /// /// Spawns a and adds the timeLimit step to that traversal. /// @@ -1580,6 +1780,14 @@ public static GraphTraversal To(Direction? direction, params str : new GraphTraversal().To(direction, edgeLabels); } + /// + /// Spawns a and adds the to step to that traversal. + /// + public static GraphTraversal To(Direction? direction, GValue edgeLabel, params GValue[] otherEdgeLabels) + { + return new GraphTraversal().To(direction, edgeLabel, otherEdgeLabels); + } + /// /// Spawns a and adds the toE step to that traversal. /// @@ -1589,6 +1797,14 @@ public static GraphTraversal ToE(Direction? direction, params stri ? new GraphTraversal().ToE(direction) : new GraphTraversal().ToE(direction, edgeLabels); } + + /// + /// Spawns a and adds the toE step to that traversal. + /// + public static GraphTraversal ToE(Direction? direction, GValue edgeLabel, params GValue[] otherEdgeLabels) + { + return new GraphTraversal().ToE(direction, edgeLabel, otherEdgeLabels); + } /// /// Spawns a and adds the toLower step to that traversal. @@ -1761,4 +1977,4 @@ public static GraphTraversal Where(ITraversal whereTraversal) } } -} \ No newline at end of file +} diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs index 2c42d1a8bed..1864149b39e 100644 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs @@ -43,6 +43,9 @@ namespace Gremlin.Net.IntegrationTest.Gherkin { internal class CommonSteps : StepDefinition { + private static readonly bool Parameterize = + Environment.GetEnvironmentVariable("PARAMETERIZE") == "true"; + private GraphTraversalSource? _g; private string? _graphName; private readonly IDictionary _parameters = new Dictionary(); @@ -148,15 +151,30 @@ public void TranslateTraversal(string traversalText) _g = _g.WithComputer(); } - _traversal = - Gremlin.UseTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects); + if (Parameterize) + { + _traversal = + Gremlin.UseParameterizedTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects); + } + else + { + _traversal = + Gremlin.UseTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects); + } } [Given("the graph initializer of")] public void InitTraversal(string traversalText) { - var traversal = - Gremlin.UseTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects); + ITraversal traversal; + if (Parameterize) + { + traversal = Gremlin.UseParameterizedTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects); + } + else + { + traversal = Gremlin.UseTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects); + } traversal.Iterate(); // We may have modified the so-called `empty` graph @@ -481,7 +499,9 @@ public void AssertTraversalCount(int expectedCount, string traversalText) traversalText = traversalText.Substring(1, traversalText.Length - 2); } - var traversal = (ITraversal) Gremlin.UseTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects); + var traversal = Parameterize + ? (ITraversal) Gremlin.UseParameterizedTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects) + : (ITraversal) Gremlin.UseTraversal(ScenarioData.CurrentScenario!.Name, _g, _parameters, _sideEffects); var count = 0; while (traversal.MoveNextAsync().AsTask().GetAwaiter().GetResult()) diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs index 6aee9027626..91ea4bbb8fa 100644 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs @@ -88,6 +88,10 @@ public void RunGherkinBasedTests(IMessageSerializer messageSerializer) { WriteOutput($"Starting Gherkin-based tests with serializer: {messageSerializer.GetType().Name}"); Gremlin.InstantiateTranslationsForTestRun(); + if (Environment.GetEnvironmentVariable("PARAMETERIZE") == "true") + { + Gremlin.InstantiateParameterizedTranslationsForTestRun(); + } var stepDefinitionTypes = GetStepDefinitionTypes(); var results = new List(); using var scenarioData = new ScenarioData(messageSerializer); diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs index 8ac4ef7b25f..92d42fad6a8 100644 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs @@ -57,9 +57,24 @@ public static void InstantiateTranslationsForTestRun() } } + public static void InstantiateParameterizedTranslationsForTestRun() + { + _parameterizedTranslationsForTestRun = + new Dictionary, ITraversal>>>( + ParameterizedTranslations.Count); + foreach (var (traversal, translations) in ParameterizedTranslations) + { + _parameterizedTranslationsForTestRun.Add(traversal, + new List, ITraversal>>(translations)); + } + } + private static IDictionary, ITraversal>>> _translationsForTestRun; + private static IDictionary, ITraversal>>> + _parameterizedTranslationsForTestRun; + private static readonly IDictionary,ITraversal>>> FixedTranslations = new Dictionary, ITraversal>>> { @@ -2185,14 +2200,2157 @@ private static IDictionary, ITraversal>> {(g,p) =>g.Io("tinkerpop-modern.xml").With(IO.Writer, IO.GraphML).Write()}}, }; - public static ITraversal UseTraversal(string scenarioName, GraphTraversalSource g, IDictionary parameters, IDictionary sideEffects) - { - List, ITraversal>> list = _translationsForTestRun[scenarioName]; - Func, ITraversal> f = list[0]; - list.RemoveAt(0); - ITraversal traversal = f.Invoke(g, parameters); - // Side effects need to be prepended as source steps (before traversal steps). - // Build them in a temporary GremlinLang and prepend to the traversal's gremlin string. + private static readonly IDictionary,ITraversal>>> ParameterizedTranslations = + new Dictionary, ITraversal>>> + { + {"g_V_branchXlabel_isXpersonX_countX_optionX1__ageX_optionX0__langX_optionX0__nameX", new List, ITraversal>> {(g,p) =>g.V().Branch(__.Label().Is("person").Count()).Option(p["xx1"], __.Values("age")).Option(p["xx2"], __.Values("lang")).Option(p["xx2"], __.Values("name"))}}, + {"g_V_branchXlabel_isXpersonX_countX_optionX1__ageX_optionX0__langX_optionX0__nameX_optionXany__labelX", new List, ITraversal>> {(g,p) =>g.V().Branch(__.Label().Is("person").Count()).Option(p["xx1"], __.Values("age")).Option(p["xx2"], __.Values("lang")).Option(p["xx2"], __.Values("name")).Option(Pick.Any, __.Label())}}, + {"g_V_branchXageX_optionXltX30X__youngX_optionXgtX30X__oldX_optionXnone__on_the_edgeX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Branch(__.Values("age")).Option(P.Lt(30), __.Constant("young")).Option(P.Gt(30), __.Constant("old")).Option(Pick.None, __.Constant("on the edge"))}}, + {"g_V_branchXidentityX_optionXhasLabelXsoftwareX__inXcreatedX_name_order_foldX_optionXhasXname_vadasX__ageX_optionXneqX123X__bothE_countX", new List, ITraversal>> {(g,p) =>g.V().Branch(__.Identity()).Option(__.HasLabel("software"), __.In("created").Values("name").Order().Fold()).Option(__.Has("name", "vadas"), __.Values("age")).Option(P.Neq(123), __.BothE().Count())}}, + {"g_V_chooseXout_countX_optionX2L_nameX_optionX3L_ageX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Out().Count()).Option(p["xx1"], __.Values("name")).Option(p["xx2"], __.Values("age"))}}, + {"g_V_chooseXout_countX_optionX2L_nameX_optionX3L_ageX_optionXnone_discardX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Out().Count()).Option(p["xx1"], __.Values("name")).Option(p["xx2"], __.Values("age")).Option(Pick.None, __.Discard())}}, + {"g_V_chooseXhasLabelXpersonX_and_outXcreatedX__outXknowsX_identityX_name", new List, ITraversal>> {(g,p) =>g.V().Choose(__.HasLabel("person").And().Out("created"), __.Out("knows"), __.Identity()).Values("name")}}, + {"g_V_chooseXhasLabelXpersonX_and_outXcreatedX_outXknowsX_name", new List, ITraversal>> {(g,p) =>g.V().Choose(__.HasLabel("person").And().Out("created"), __.Out("knows")).Values("name")}}, + {"g_V_chooseXlabelX_optionXblah__outXknowsXX_optionXbleep__outXcreatedXX_optionXnone__identityX_name", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Label()).Option("blah", __.Out("knows")).Option("bleep", __.Out("created")).Option(Pick.None, __.Identity()).Values("name")}}, + {"g_V_chooseXTlabelX_optionXperson__outXknowsX_nameX_optionXbleep_constantXbleepXX", new List, ITraversal>> {(g,p) =>g.V().Choose(T.Label).Option("person", __.Out("knows").Values("name")).Option("bleep", __.Constant("bleep"))}}, + {"g_V_chooseXTlabelX_optionXblah__outXknowsXX_optionXbleep__outXcreatedXX_optionXnone__identityX_name", new List, ITraversal>> {(g,p) =>g.V().Choose(T.Label).Option("blah", __.Out("knows")).Option("bleep", __.Out("created")).Option(Pick.None, __.Identity()).Values("name")}}, + {"g_V_chooseXTlabelX_optionXblah__outXknowsXX_optionXbleep__outXcreatedXX_optionXnone_discardX_name", new List, ITraversal>> {(g,p) =>g.V().Choose(T.Label).Option("blah", __.Out("knows")).Option("bleep", __.Out("created")).Option(Pick.None, __.Discard()).Values("name")}}, + {"g_V_chooseXoutXknowsX_count_isXgtX0XX__outXknowsXX_name", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Out("knows").Count().Is(P.Gt(0)), __.Out("knows")).Values("name")}}, + {"g_V_hasLabelXpersonX_asXp1X_chooseXoutEXknowsX__outXknowsXX_asXp2X_selectXp1_p2X_byXnameX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").As("p1").Choose(__.OutE("knows"), __.Out("knows")).As("p2").Select("p1", "p2").By("name")}}, + {"g_V_hasLabelXpersonX_chooseXageX__optionX27L__constantXyoungXX_optionXnone__constantXoldXX_groupCount", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Values("age")).Option(p["xx1"], __.Constant("young")).Option(Pick.None, __.Constant("old")).GroupCount()}}, + {"g_injectX1X_chooseXisX1X__constantX10Xfold__foldX", new List, ITraversal>> {(g,p) =>g.Inject(1).Choose(__.Is(p["xx1"]), __.Constant(10).Fold(), __.Fold())}}, + {"g_injectX2X_chooseXisX1X__constantX10Xfold__foldX", new List, ITraversal>> {(g,p) =>g.Inject(2).Choose(__.Is(p["xx1"]), __.Constant(10).Fold(), __.Fold())}}, + {"g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_constantXxXX_optionXbetweenX20_30X_constantXyXX_optionXnone_constantXzXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Values("age")).Option(P.Between(26, 30), __.Constant("x")).Option(P.Between(20, 30), __.Constant("y")).Option(Pick.None, __.Constant("z"))}}, + {"g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_orXgtX34XX_constantXxXX_optionXgtX34X_constantXyXX_optionXnone_constantXzXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Values("age")).Option(P.Between(26, 30).Or(P.Gt(34)), __.Constant("x")).Option(P.Gt(34), __.Constant("y")).Option(Pick.None, __.Constant("z"))}}, + {"g_V_hasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_nameX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name")).Option(Pick.None, __.Values("name"))}}, + {"g_V_chooseXhasLabelXpersonX_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Local(__.Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name").Fold()).Option(Pick.None, __.Values("name").Fold()))}}, + {"g_V_chooseXhasLabelXpersonX_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Map(__.Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name").Fold()).Option(Pick.None, __.Values("name").Fold()))}}, + {"g_unionXV_VXhasLabelXpersonX_barrier_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX", new List, ITraversal>> {(g,p) =>g.Union(__.V(), __.V()).HasLabel("person").Barrier().Local(__.Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name").Fold()).Option(Pick.None, __.Values("name").Fold()))}}, + {"g_unionXV_VXhasLabelXpersonX_barrier_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX", new List, ITraversal>> {(g,p) =>g.Union(__.V(), __.V()).HasLabel("person").Barrier().Map(__.Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name").Fold()).Option(Pick.None, __.Values("name").Fold()))}}, + {"g_V_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_nameX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name")).Option(Pick.None, __.Values("name"))}}, + {"g_V_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_nameX_optionXunproductive_labelX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name")).Option(Pick.None, __.Values("name")).Option(Pick.Unproductive, __.Label())}}, + {"g_V_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_nameX_optionXnone_identityX_optionXnone_failX_optionXunproductive_identityX_optionXunproductive_labelX_optionXnone_failX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name")).Option(Pick.None, __.Values("name")).Option(Pick.None, __.Identity()).Option(Pick.None, __.Fail()).Option(Pick.Unproductive, __.Label()).Option(Pick.Unproductive, __.Identity()).Option(Pick.Unproductive, __.Fail())}}, + {"g_V_chooseXage_nameX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Values("age"), __.Values("name"))}}, + {"g_V_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_discardX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Values("age")).Option(P.Between(26, 30), __.Values("name")).Option(Pick.None, __.Discard())}}, + {"g_V_chooseXnameX_optionXneqXyX_ageX_optionXnone_constantXxXX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Values("name")).Option(P.Neq("y"), __.Values("age")).Option(Pick.None, __.Constant("x"))}}, + {"g_V_hasLabelXpersonX_chooseXoutXcreatedX_count_isXeqX0XX__constantXdidnt_createX__constantXcreatedXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Out("created").Count().Is(P.Eq(0)), __.Constant("didnt_create"), __.Constant("created"))}}, + {"g_V_hasLabelXpersonX_chooseXvaluesXageX_isXgtX30XX__valuesXageX__constantX30XX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Values("age").Is(P.Gt(30)), __.Values("age"), __.Constant(30))}}, + {"g_V_hasLabelXpersonX_chooseXvaluesXageX_isXgtX29XX_and_valuesXageX_isXltX35XX__valuesXnameX__constantXotherXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Values("age").Is(P.Gt(29)).And().Values("age").Is(P.Lt(35)), __.Values("name"), __.Constant("other"))}}, + {"g_V_chooseXhasXname_vadasX__valuesXnameX__valuesXageXX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Has("name", "vadas"), __.Values("name"), __.Values("age"))}}, + {"g_V_hasLabelXpersonX_chooseXoutXcreatedX_countX_optionX0__constantXnoneXX_optionX1__constantXoneXX_optionX2__constantXmanyXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Out("created").Count()).Option(p["xx0"], __.Constant("none")).Option(p["xx1"], __.Constant("one")).Option(p["xx2"], __.Constant("many"))}}, + {"g_V_hasLabelXpersonX_chooseXlocalXoutXknowsX_countX__optionX0__constantXnoFriendsXX__optionXnone__constantXhasFriendsXXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Local(__.Out("knows").Count())).Option(p["xx0"], __.Constant("noFriends")).Option(Pick.None, __.Constant("hasFriends"))}}, + {"g_V_chooseXoutE_countX_optionX0__constantXnoneXX_optionXnone__constantXsomeXX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.OutE().Count()).Option(p["xx0"], __.Constant("none")).Option(Pick.None, __.Constant("some"))}}, + {"g_V_chooseXlabelX_optionXperson__chooseXageX_optionXP_lt_30__constantXyoungXX_optionXP_gte_30__constantXoldXXX_optionXsoftware__constantXprogramXX_optionXnone__constantXunknownXX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Label()).Option("person", __.Choose(__.Values("age")).Option(P.Lt(30), __.Constant("young")).Option(P.Gte(30), __.Constant("old"))).Option("software", __.Constant("program")).Option(Pick.None, __.Constant("unknown"))}}, + {"g_V_chooseXhasXname_vadasX__valuesXnameXX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Has("name", "vadas"), __.Values("name"))}}, + {"g_V_hasLabelXpersonX_age_chooseXP_eqX29X_constantXmatchedX_constantXotherXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("age").Choose(P.Eq(29), __.Constant("matched"), __.Constant("other"))}}, + {"g_V_hasLabelXpersonX_age_chooseXP_eqX29X_constantXmatchedX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("age").Choose(P.Eq(29), __.Constant("matched"))}}, + {"g_V_hasLabelXpersonX_chooseX_valuesXnameX_option1X_isXmarkoX_valuesXageXX_option2Xnone_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Values("name")).Option(__.Is("marko"), __.Values("age")).Option(Pick.None, __.Values("name"))}}, + {"g_V_hasLabelXpersonX_chooseX_valuesXnameX_option1X_PeqXmarkoX_valuesXageXX_option2Xnone_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Choose(__.Values("name")).Option(P.Eq("marko"), __.Values("age")).Option(Pick.None, __.Values("name"))}}, + {"g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value", new List, ITraversal>> {(g,p) =>g.V().Local(__.Properties("location").Order().By(T.Value, Order.Asc).Range(0, 2)).Value()}}, + {"g_V_hasXlabel_personX_asXaX_localXoutXcreatedX_asXbXX_selectXa_bX_byXnameX_byXidX", new List, ITraversal>> {(g,p) =>g.V().Has(T.Label, "person").As("a").Local(__.Out("created").As("b")).Select("a", "b").By("name").By(T.Id)}}, + {"g_V_localXoutE_countX", new List, ITraversal>> {(g,p) =>g.V().Local(__.OutE().Count())}}, + {"g_VX1X_localXoutEXknowsX_limitX1XX_inV_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Local(__.OutE("knows").Limit(1)).InV().Values("name")}}, + {"g_V_localXbothEXcreatedX_limitX1XX_otherV_name", new List, ITraversal>> {(g,p) =>g.V().Local(__.BothE("created").Limit(1)).OtherV().Values("name")}}, + {"g_VX4X_localXbothEX1_createdX_limitX1XX", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).Local(__.BothE("created").Limit(1))}}, + {"g_VX4X_localXbothEXknows_createdX_limitX1XX", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).Local(__.BothE("knows", "created").Limit(1))}}, + {"g_VX4X_localXbothE_limitX1XX_otherV_name", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).Local(__.BothE().Limit(1)).OtherV().Values("name")}}, + {"g_VX4X_localXbothE_limitX2XX_otherV_name", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).Local(__.BothE().Limit(2)).OtherV().Values("name")}}, + {"g_V_localXinEXknowsX_limitX2XX_outV_name", new List, ITraversal>> {(g,p) =>g.V().Local(__.InE("knows").Limit(2)).OutV().Values("name")}}, + {"g_V_localXmatchXproject__created_person__person_name_nameX_selectXname_projectX_by_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Match(__.As("project").In("created").As("person"), __.As("person").Values("name").As("name"))).Select("name", "project").By().By("name")}}, + {"g_V_in_barrier_localXcountX", new List, ITraversal>> {(g,p) =>g.V().In().Barrier().Local(__.Count())}}, + {"g_V_localXout_in_simplePathX_path", new List, ITraversal>> {(g,p) =>g.V().Local(__.Out().In().SimplePath()).Path()}}, + {"g_withSackX0LX_V_in_barrier_localXsackXsumX_byXageXX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(0l).V().In().Barrier().Local(__.Sack(Operator.Sum).By("age")).Sack()}}, + {"g_V_localXout_localXcountXX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Out().Local(__.Count()))}}, + {"g_V_unionXoutE_count_localXinE_countXX", new List, ITraversal>> {(g,p) =>g.V().Union(__.OutE().Count(), __.Local(__.InE().Count()))}}, + {"g_VX2X_optionalXoutXknowsXX", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).Optional(__.Out("knows"))}}, + {"g_VX2X_optionalXinXknowsXX", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).Optional(__.In("knows"))}}, + {"g_V_hasLabelXpersonX_optionalXoutXknowsX_optionalXoutXcreatedXXX_path", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Optional(__.Out("knows").Optional(__.Out("created"))).Path()}}, + {"g_V_optionalXout_optionalXoutXX_path", new List, ITraversal>> {(g,p) =>g.V().Optional(__.Out().Optional(__.Out())).Path()}}, + {"g_VX1X_optionalXaddVXdogXX_label", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V(p["vid1"]).Optional(__.AddV((string) "dog")).Label(), (g,p) =>g.V()}}, + {"g_V_repeatXoutX_timesX2X_emit_path", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out()).Times(2).Emit().Path()}}, + {"g_V_repeatXoutX_timesX2X_repeatXinX_timesX2X_name", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out()).Times(2).Repeat(__.In()).Times(2).Values("name")}}, + {"g_V_repeatXoutE_inVX_timesX2X_path_by_name_by_label", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.OutE().InV()).Times(2).Path().By("name").By(T.Label)}}, + {"g_V_repeatXoutX_timesX2X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out()).Times(2)}}, + {"g_V_repeatXoutX_timesX2X_emit", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out()).Times(2).Emit()}}, + {"g_VX1X_timesX2X_repeatXoutX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Times(2).Repeat(__.Out()).Values("name")}}, + {"g_V_emit_timesX2X_repeatXoutX_path", new List, ITraversal>> {(g,p) =>g.V().Emit().Times(2).Repeat(__.Out()).Path()}}, + {"g_V_emit_repeatXoutX_timesX2X_path", new List, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Out()).Times(2).Path()}}, + {"g_VX1X_emitXhasXlabel_personXX_repeatXoutX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Emit(__.Has(T.Label, "person")).Repeat(__.Out()).Values("name")}}, + {"g_V_repeatXgroupCountXmX_byXnameX_outX_timesX2X_capXmX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.GroupCount("m").By("name").Out()).Times(2).Cap("m")}}, + {"g_VX1X_repeatXgroupCountXmX_byXloopsX_outX_timesX3X_capXmX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.GroupCount("m").By(__.Loops()).Out()).Times(3).Cap("m")}}, + {"g_V_repeatXbothX_timesX10X_asXaX_out_asXbX_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both()).Times(10).As("a").Out().As("b").Select("a", "b").Count()}}, + {"g_VX1X_repeatXoutX_untilXoutE_count_isX0XX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.Out()).Until(__.OutE().Count().Is(0)).Values("name")}}, + {"g_V_hasXname_markoX_repeatXoutE_inV_simplePathX_untilXhasXname_rippleXX_path_byXnameX_byXlabelX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").Repeat(__.OutE().InV().SimplePath()).Until(__.Has("name", "ripple")).Path().By("name").By(T.Label)}}, + {"g_V_hasXloop_name_loopX_repeatXinX_timesX5X_path_by_name", new List, ITraversal>> {(g,p) =>g.V().Has("loops", "name", "loop").Repeat(__.In()).Times(5).Path().By("name")}}, + {"g_V_repeatXout_repeatXout_order_byXname_descXX_timesX1XX_timesX1X_limitX1X_path_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out().Repeat(__.Out().Order().By("name", Order.Desc)).Times(1)).Times(1).Limit(1).Path().By("name")}}, + {"g_V_repeatXoutXknowsXX_untilXrepeatXoutXcreatedXX_emitXhasXname_lopXXX_path_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out("knows")).Until(__.Repeat(__.Out("created")).Emit(__.Has("name", "lop"))).Path().By("name")}}, + {"g_V_repeatXrepeatXout_createdXX_untilXhasXname_rippleXXXemit_lang", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Repeat(__.Out("created")).Until(__.Has("name", "ripple"))).Emit().Values("lang")}}, + {"g_V_untilXconstantXtrueXX_repeatXrepeatXout_createdXX_untilXhasXname_rippleXXXemit_lang", new List, ITraversal>> {(g,p) =>g.V().Until(__.Constant(true)).Repeat(__.Repeat(__.Out("created")).Until(__.Has("name", "ripple"))).Emit().Values("lang")}}, + {"g_V_emit_repeatXa_outXknows_filterXloops_isX0XX_lang", new List, ITraversal>> {(g,p) =>g.V().Emit().Repeat("a", __.Out("knows").Filter(__.Loops("a").Is(0))).Values("lang")}}, + {"g_VX3X_repeatXbothX_createdXX_untilXloops_is_40XXemit_repeatXin_knowsXX_emit_loopsXisX1Xdedup_values", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Both("created")).Until(__.Loops().Is(40)).Emit(__.Repeat(__.In("knows")).Emit(__.Loops().Is(1))).Dedup().Values("name")}}, + {"g_VX1X_repeatXrepeatXunionXout_uses_out_traversesXX_whereXloops_isX0X_timesX1X_timeX2X_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.Repeat(__.Union(__.Out("uses"), __.Out("traverses")).Where(__.Loops().Is(0))).Times(1)).Times(2).Values("name")}}, + {"g_V_repeatXa_outXknows_repeatXb_outXcreatedX_filterXloops_isX0XX_emit_lang", new List, ITraversal>> {(g,p) =>g.V().Repeat("a", __.Out("knows").Repeat("b", __.Out("created").Filter(__.Loops("a").Is(0))).Emit()).Emit().Values("lang")}}, + {"g_VX6X_repeatXa_bothXcreatedX_simplePathX_emitXrepeatXb_bothXknowsXX_untilXloopsXbX_asXb_whereXloopsXaX_asXbX_hasXname_vadasXX_dedup_name", new List, ITraversal>> {(g,p) =>g.V(p["vid6"]).Repeat("a", __.Both("created").SimplePath()).Emit(__.Repeat("b", __.Both("knows")).Until(__.Loops("b").As("b").Where(__.Loops("a").As("b"))).Has("name", "vadas")).Dedup().Values("name")}}, + {"g_V_emit", new List, ITraversal>> {(g,p) =>g.V().Emit()}}, + {"g_V_untilXidentityX", new List, ITraversal>> {(g,p) =>g.V().Until(__.Identity())}}, + {"g_V_timesX5X", new List, ITraversal>> {(g,p) =>g.V().Times(5)}}, + {"g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX1X_name", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Repeat(__.Out("created")).Times(1).Values("name")}}, + {"g_V_hasXperson_name_markoX_repeatXoutXcreatedXX_timesX0X_name", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Repeat(__.Out("created")).Times(0).Values("name")}}, + {"g_V_hasXperson_name_markoX_timesX1X_repeatXoutXcreatedXX_name", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Times(1).Repeat(__.Out("created")).Values("name")}}, + {"g_V_hasXperson_name_markoX_timesX0X_repeatXoutXcreatedXX_name", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Times(0).Repeat(__.Out("created")).Values("name")}}, + {"g_V_repeatXboth_hasXnot_productiveXX_timesX3X_constantX1X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both().Has("not", "productive")).Times(3).Constant(1)}}, + {"g_V_hasXnot_productiveX_repeatXbothX_timesX3X_constantX1X", new List, ITraversal>> {(g,p) =>g.V().Has("not", "productive").Repeat(__.Both()).Times(3).Constant(1)}}, + {"g_VX1_2_3X_repeatXboth_barrierX_emit_timesX2X_path", new List, 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, 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, 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, ITraversal>> {(g,p) =>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", new List, ITraversal>> {(g,p) =>g.V().Order().By("name").Repeat(__.Local(__.Both().SimplePath().Order().By("name"))).Times(2).Path()}}, + {"g_V_repeatXunionXoutXknowsX_order_byXnameX_inXcreatedX_order_byXnameXXX_timesX1X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Union(__.Out("knows").Order().By("name"), __.In("created").Order().By("name"))).Times(1)}}, + {"g_V_repeatXaddV_propertyXgenerated_trueXX_timesX2X", new List, 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, ITraversal>> {(g,p) =>g.V().Repeat(__.Dedup().Both()).Times(2)}}, + {"g_V_repeatXaggregateXxXX_timesX2X_selectXxX_limitX1X_unfold", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Aggregate("x")).Times(2).Select("x").Limit(1).Unfold()}}, + {"g_V_valuesXstrX_repeatXsplitXabcX_conjoinX_timesX2X", new List, ITraversal>> {(g,p) =>g.AddV().Property("str", "ababcczababcc").AddV().Property("str", "abcyabc"), (g,p) =>g.V().Values("str").Repeat(__.Split("abc").Conjoin((string) "")).Times(2)}}, + {"g_withSackX0X_V_repeatXsackXsumX_byXageX_whereXsack_isXltX59XXXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithSack(0l).V().Repeat(__.Sack(Operator.Sum).By("age").Where(__.Sack().Is(P.Lt(59)))).Times(2)}}, + {"g_V_repeatXinjectXyXX_timesX2X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Inject("y")).Times(2)}}, + {"g_V_repeatXunionXconstantXyX_limitX1X_identityXX_timesX3X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Union(__.Constant("y").Limit(1), __.Identity())).Times(2)}}, + {"g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX1X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances").Tail(2)).Times(1).Values("name")}}, + {"g_VX3X_repeatXout_order_byXperformancesX_tailX2XX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances").Tail(2)).Times(2).Values("name")}}, + {"g_VX2X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX1X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).Repeat(__.Out().Local(__.Order().By("performances").Tail(1))).Times(1).Values("name")}}, + {"g_VX250X_repeatXout_localXorder_byXperformancesX_tailX1XXX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid250"]).Repeat(__.Out().Local(__.Order().By("performances").Tail(1))).Times(2).Values("name")}}, + {"g_VX3X_repeatXout_order_byXperformancesX_tailX3X_limitX1XX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances").Tail(3).Limit(1)).Times(2).Values("name")}}, + {"g_VX3X_repeatXout_order_byXperformances_descX_limitX5X_tailX1XX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["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", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.OutE().Order().By("weight").Tail(2).InV()).Times(2).Values("name")}}, + {"g_VX3X_repeatXoutE_order_byXweight_descX_limitX2X_inVX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.OutE().Order().By("weight", Order.Desc).Limit(2).InV()).Times(2).Values("name")}}, + {"g_V_emit_repeatXout_order_byXnameXX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Out().Order().By("name")).Times(2).Values("name")}}, + {"g_V_localXemit_repeatXout_order_byXnameXX_timesX2X_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Emit().Repeat(__.Out().Order().By("name")).Times(2).Values("name"))}}, + {"g_V_emit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Local(__.Out().Order().By("name"))).Times(2).Values("name")}}, + {"g_V_localXemit_repeatXlocalXout_order_byXnameXXX_timesX2X_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Emit().Repeat(__.Local(__.Out().Order().By("name"))).Times(2).Values("name"))}}, + {"g_V_emitXhasLabelXpersonXX_repeatXout_order_byXnameXX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Emit(__.HasLabel("person")).Repeat(__.Out().Order().By("name")).Times(2).Values("name")}}, + {"g_V_untilXloops_isX2XX_repeatXout_order_byXnameXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Until(__.Loops().Is(2)).Repeat(__.Out().Order().By("name")).Values("name")}}, + {"g_V_emit_repeatXdedupX_timesX1X", new List, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Dedup()).Times(1)}}, + {"g_V_emit_repeatXdedupX_timesX2X", new List, ITraversal>> {(g,p) =>g.V().Emit().Repeat(__.Dedup()).Times(2)}}, + {"g_unionXX", new List, ITraversal>> {(g,p) =>g.Union()}}, + {"g_unionXV_name", new List, ITraversal>> {(g,p) =>g.Union(__.V().Values("name"))}}, + {"g_unionXVXv1X_VX4XX_name", new List, ITraversal>> {(g,p) =>g.Union(__.V(p["vid1"]), __.V(p["vid4"])).Values("name")}}, + {"g_unionXV_hasLabelXsoftwareX_V_hasLabelXpersonXX_name", new List, ITraversal>> {(g,p) =>g.Union(__.V().HasLabel("software"), __.V().HasLabel("person")).Values("name")}}, + {"g_unionXV_out_out_V_hasLabelXsoftwareXX_path", new List, ITraversal>> {(g,p) =>g.Union(__.V().Out().Out(), __.V().HasLabel("software")).Path()}}, + {"g_unionXV_out_out_V_hasLabelXsoftwareXX_path_byXnameX", new List, ITraversal>> {(g,p) =>g.Union(__.V().Out().Out(), __.V().HasLabel("software")).Path().By("name")}}, + {"g_unionXunionXV_out_outX_V_hasLabelXsoftwareXX_path_byXnameX", new List, ITraversal>> {(g,p) =>g.Union(__.Union(__.V().Out().Out()), __.V().HasLabel("software")).Path().By("name")}}, + {"g_unionXinjectX1X_injectX2X", new List, ITraversal>> {(g,p) =>g.Union(__.Inject(1), __.Inject(2))}}, + {"g_V_unionXconstantX1X_constantX2X_constantX3XX", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).Union(__.Constant(1), __.Constant(2), __.Constant(3))}}, + {"g_V_unionXout__inX_name", new List, ITraversal>> {(g,p) =>g.V().Union(__.Out(), __.In()).Values("name")}}, + {"g_VX1X_unionXrepeatXoutX_timesX2X__outX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Union(__.Repeat(__.Out()).Times(2), __.Out()).Values("name")}}, + {"g_V_chooseXlabel_is_person__unionX__out_lang__out_nameX__in_labelX", new List, ITraversal>> {(g,p) =>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", new List, ITraversal>> {(g,p) =>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", new List, ITraversal>> {(g,p) =>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", new List, ITraversal>> {(g,p) =>g.V(p["vid1"], p["vid2"]).Union(__.OutE().Count(), __.InE().Count(), __.OutE().Values("weight").Sum())}}, + {"g_VX1_2X_localXunionXoutE_count__inE_count__outE_weight_sumXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"], p["vid2"]).Local(__.Union(__.OutE().Count(), __.InE().Count(), __.OutE().Values("weight").Sum()))}}, + {"g_VX1_2X_localXunionXcountXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"], p["vid2"]).Local(__.Union(__.Count()))}}, + {"g_unionXaddVXpersonX_propertyXname_aliceX_addVXpersonX_propertyXname_bobX_addVXpersonX_propertyXname_chrisX_name", new List, ITraversal>> {(g,p) =>g.Union(__.AddV((string) "person").Property("name", "alice"), __.AddV((string) "person").Property("name", "bob"), __.AddV((string) "person").Property("name", "chris")).Values("name")}}, + {"g_VX_hasLabelXpersonX_unionX_whereX_out_count_isXgtX2XXX_valuesXageX_notX_whereX_bothE_count_isXgt2XXX_valusXnameXX", new List, ITraversal>> {(g,p) =>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", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 123), (g,p) =>g.V().Values("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal))}}, + {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_mathXaddX0_5XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 10), (g,p) =>g.V().Values("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Math("_ + 0.5")}}, + {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_isXgtX0XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 5), (g,p) =>g.V().Values("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Is(P.Gt(0))}}, + {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_sumX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 2).AddV((string) "data").Property("int", 3).AddV((string) "data").Property("int", 4), (g,p) =>g.V().Values("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Sum()}}, + {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_minX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 1).AddV((string) "data").Property("int", 5).AddV((string) "data").Property("int", 10), (g,p) =>g.V().Values("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Min()}}, + {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_maxX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 7).AddV((string) "data").Property("int", 14).AddV((string) "data").Property("int", 21), (g,p) =>g.V().Values("int").AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).Max()}}, + {"g_V_valuesXintX_asNumberXGType_BIGDECIMALX_isXtypeOfXGType_BIGDECIMALXX_project_byXidentityX_byXmathXmulX10XXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 6), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.Inject(99).AsNumber(GType.BigDecimal).Is(P.TypeOf(GType.BigDecimal)).GroupCount()}}, + {"g_V_valuesXageX_isXtypeOfXGType_BIGDECIMALXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.BigDecimal))}}, + {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 456), (g,p) =>g.V().Values("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt))}}, + {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_mathXmulX1000XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 100), (g,p) =>g.V().Values("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Math("_ * 1000")}}, + {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_isXeqX42XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 42), (g,p) =>g.V().Values("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Is(P.Eq(42))}}, + {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_sumX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 10).AddV((string) "data").Property("int", 20).AddV((string) "data").Property("int", 30), (g,p) =>g.V().Values("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Sum()}}, + {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_minX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 5).AddV((string) "data").Property("int", 15).AddV((string) "data").Property("int", 25), (g,p) =>g.V().Values("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Min()}}, + {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_maxX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 100).AddV((string) "data").Property("int", 200).AddV((string) "data").Property("int", 300), (g,p) =>g.V().Values("int").AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).Max()}}, + {"g_V_valuesXintX_asNumberXGType_BIGINTX_isXtypeOfXGType_BIGINTXX_project_byXidentityX_byXmathXaddX999XXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 50), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.Inject(777).AsNumber(GType.BigInt).Is(P.TypeOf(GType.BigInt)).GroupCount()}}, + {"g_V_valuesXageX_isXtypeOfXGType_BIGINTXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.BigInt))}}, + {"g_injectXBinaryXAQIDXX", new List, ITraversal>> {(g,p) =>g.Inject(Convert.FromBase64String("AQID"))}}, + {"g_injectXBinaryXemptyXX", new List, ITraversal>> {(g,p) =>g.Inject(Convert.FromBase64String(""))}}, + {"g_injectXBinaryXAA_eqeqXX", new List, ITraversal>> {(g,p) =>g.Inject(Convert.FromBase64String("AA=="))}}, + {"g_valuesXblobX_isXtypeOfXGType_BINARYXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("blob", Convert.FromBase64String("AQID")), (g,p) =>g.V().Values("blob").Is(P.TypeOf(GType.Binary))}}, + {"g_injectXBinaryXAQIDXX_isXeqXBinaryXAQIDXXX", new List, ITraversal>> {(g,p) =>g.Inject(Convert.FromBase64String("AQID")).Is(P.Eq(Convert.FromBase64String("AQID")))}}, + {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 5), (g,p) =>g.V().Values("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte))}}, + {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_mathXaddX20XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 10), (g,p) =>g.V().Values("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).Math("_ + 20")}}, + {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_isXltX10XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 7), (g,p) =>g.V().Values("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).Is(P.Lt(10))}}, + {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_sumX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 1).AddV((string) "data").Property("int", 2).AddV((string) "data").Property("int", 3), (g,p) =>g.V().Values("int").AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).Sum()}}, + {"g_V_valuesXintX_asNumberXGType_BYTEX_isXtypeOfXGType_BYTEXX_project_byXidentityX_byXmathXmulX2XXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 8), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 12), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.Inject(15).AsNumber(GType.Byte).Is(P.TypeOf(GType.Byte)).GroupCount()}}, + {"g_V_valuesXageX_isXtypeOfXGType_BYTEXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Byte))}}, + {"g_injectXaX", new List, ITraversal>> {(g,p) =>g.Inject('a')}}, + {"g_injectXescaped_quoteX", new List, ITraversal>> {(g,p) =>g.Inject('\"')}}, + {"g_injectXunicodeX", new List, ITraversal>> {(g,p) =>g.Inject('\u00E9')}}, + {"g_valuesXinitialX_isXtypeOfXGType_CHARXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("initial", 'a'), (g,p) =>g.V().Values("initial").Is(P.TypeOf(GType.Char))}}, + {"g_injectXaX_isXeqXaXX", new List, ITraversal>> {(g,p) =>g.Inject('a').Is(P.Eq('a'))}}, + {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values("datetime").Is(P.TypeOf(GType.DateTime))}}, + {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_project_byXidentityX_byXdateAddXDT_dayX1XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.AddV((string) "event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values("datetime").Is(P.TypeOf(GType.DateTime)).DateDiff(DateTimeOffset.Parse("2023-08-08T00:00:30Z"))}}, + {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_whereXisXgtXdatetimeX2020_01_01XXXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "event").Property("datetime", DateTimeOffset.Parse("2023-08-08T12:34:56Z")), (g,p) =>g.V().Values("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, ITraversal>> {(g,p) =>g.AddV((string) "event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values("datetime").Is(P.TypeOf(GType.DateTime)).Choose(__.Is(P.Eq(DateTimeOffset.Parse("2023-08-08T00:00Z"))), __.Constant("match"), __.Constant("noMatch"))}}, + {"g_V_valuesXdatetimeX_isXtypeOfXGType_DATETIMEXX_localXaggregateXaX_capXaX", new List, ITraversal>> {(g,p) =>g.AddV((string) "event").Property("datetime", DateTimeOffset.Parse("2023-08-08T00:00Z")), (g,p) =>g.V().Values("datetime").Is(P.TypeOf(GType.DateTime)).Local(__.Aggregate("a")).Cap("a")}}, + {"g_injectXdatetimeX_isXtypeOfXGType_DATETIMEXX_aggregateXaX_capXaX", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-08T00:00Z")).Is(P.TypeOf(GType.DateTime)).Aggregate("a").Cap("a")}}, + {"g_injectXdatetimeX_isXtypeOfXGType_DATETIMEXX_groupCount", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-08T12:34:56Z")).Is(P.TypeOf(GType.DateTime)).GroupCount()}}, + {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("double", 1.5d), (g,p) =>g.V().Values("double").Is(P.TypeOf(GType.Double))}}, + {"g_E_valuesXweightX_isXtypeOfXGType_DOUBLEXX", new List, ITraversal>> {(g,p) =>g.E().Values("weight").Is(P.TypeOf(GType.Double))}}, + {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_mathXceilX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("double", 2.7d), (g,p) =>g.V().Values("double").Is(P.TypeOf(GType.Double)).Math("ceil _")}}, + {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_isXgtX1_0XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("double", 0.8d).AddV((string) "data").Property("double", 1.2d), (g,p) =>g.V().Values("double").Is(P.TypeOf(GType.Double)).Is(P.Gt(1.0d))}}, + {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_sumX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("double", 1.5d).AddV((string) "data").Property("double", 2.5d).AddV((string) "data").Property("double", 3.5d), (g,p) =>g.V().Values("double").Is(P.TypeOf(GType.Double)).Sum()}}, + {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_minX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("double", 0.1d).AddV((string) "data").Property("double", 0.5d).AddV((string) "data").Property("double", 0.9d), (g,p) =>g.V().Values("double").Is(P.TypeOf(GType.Double)).Min()}}, + {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_maxX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("double", 2.1d).AddV((string) "data").Property("double", 3.7d).AddV((string) "data").Property("double", 1.9d), (g,p) =>g.V().Values("double").Is(P.TypeOf(GType.Double)).Max()}}, + {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_meanX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("double", 2.1d).AddV((string) "data").Property("double", 4.1d).AddV((string) "data").Property("double", 6.1d), (g,p) =>g.V().Values("double").Is(P.TypeOf(GType.Double)).Mean()}}, + {"g_V_valuesXdoubleX_isXtypeOfXGType_DOUBLEXX_order_byXascX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("double", 3.2d).AddV((string) "data").Property("double", 1.8d).AddV((string) "data").Property("double", 2.5d), (g,p) =>g.V().Values("double").Is(P.TypeOf(GType.Double)).Order().By(Order.Asc)}}, + {"g_injectX5_5dX_isXtypeOfXGType_DOUBLEXX_groupCount", new List, ITraversal>> {(g,p) =>g.Inject(5.5d).Is(P.TypeOf(GType.Double)).GroupCount()}}, + {"g_V_valuesXageX_isXtypeOfXGType_DOUBLEXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Double))}}, + {"g_injectXDurationX9000_0XX", new List, ITraversal>> {(g,p) =>g.Inject(TimeSpan.FromTicks(90000000000L))}}, + {"g_injectXDurationX0_0XX", new List, ITraversal>> {(g,p) =>g.Inject(TimeSpan.FromTicks(0L))}}, + {"g_injectXDurationX0_500000000XX", new List, ITraversal>> {(g,p) =>g.Inject(TimeSpan.FromTicks(5000000L))}}, + {"g_injectXDurationX30_0XX", new List, ITraversal>> {(g,p) =>g.Inject(TimeSpan.FromTicks(300000000L))}}, + {"g_injectXDurationX30_0_falseXX", new List, ITraversal>> {(g,p) =>g.Inject(TimeSpan.FromTicks(300000000L).Negate())}}, + {"g_injectXDurationX1_500000000_falseXX", new List, ITraversal>> {(g,p) =>g.Inject(TimeSpan.FromTicks(15000000L).Negate())}}, + {"g_valuesXlengthX_isXtypeOfXGType_DURATIONXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("length", TimeSpan.FromTicks(90000000000L)), (g,p) =>g.V().Values("length").Is(P.TypeOf(GType.Duration))}}, + {"g_injectXDurationX9000_0XX_isXgtXDurationX3600_0XXX", new List, ITraversal>> {(g,p) =>g.Inject(TimeSpan.FromTicks(90000000000L)).Is(P.Gt(TimeSpan.FromTicks(36000000000L)))}}, + {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("float", 2.5), (g,p) =>g.V().Values("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float))}}, + {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_mathXmulX2XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("float", 3.0), (g,p) =>g.V().Values("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Math("_ * 2")}}, + {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_isXeqX1_5XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("float", 1.5), (g,p) =>g.V().Values("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Is(P.Eq(1.5))}}, + {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_sumX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("float", 1.5).AddV((string) "data").Property("float", 2.5).AddV((string) "data").Property("float", 3.0), (g,p) =>g.V().Values("float").AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).Sum()}}, + {"g_V_valuesXfloatX_isXtypeOfXGType_FLOATXX_project_byXidentityX_byXmathXmulX10XXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("float", 4.5), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("float", 0.5).AddV((string) "data").Property("float", 1.5), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("float", 3.0), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.Inject(2.0).AsNumber(GType.Float).Is(P.TypeOf(GType.Float)).GroupCount()}}, + {"g_V_valuesXageX_isXtypeOfXGType_FLOATXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Float))}}, + {"g_V_valuesXageX_isXtypeOfXGType_INTXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Int))}}, + {"g_V_hasXage_typeOfXGType_INTXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.TypeOf(GType.Int)).Values("name")}}, + {"g_V_whereXvaluesXageX_isXtypeOfXGType_INTXXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Values("age").Is(P.TypeOf(GType.Int))).Values("name")}}, + {"g_V_valuesXageX_isXtypeOfXGType_INTXX_mathXincX", new List, ITraversal>> {(g,p) =>g.V().Values("name", "age").Is(P.TypeOf(GType.Int)).Math("_ + 1")}}, + {"g_V_valuesXageX_isXtypeOfXGType_INTXX_sumX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Int)).Sum()}}, + {"g_V_valuesXageX_isXtypeOfXGType_INTXX_minX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Int)).Min()}}, + {"g_V_valuesXageX_isXtypeOfXGType_INTXX_maxX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Int)).Max()}}, + {"g_V_valuesXageX_isXtypeOfXGType_INTXX_meanX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Int)).Mean()}}, + {"g_V_valuesXageX_isXtypeOfXGType_INTXX_order_byXdescX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Int)).Order().By(Order.Desc)}}, + {"g_V_valuesXageX_isXtypeOfXGType_INTXX_groupCount", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Int)).GroupCount()}}, + {"g_V_valuesXnameX_fold_isXtypeOfXGType_LISTXX_count", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Is(P.TypeOf(GType.List)).Count()}}, + {"g_V_valuesXageX_isXtypeOfXGType_LISTXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.List))}}, + {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("list", new List { "a", "b", "c" }), (g,p) =>g.V().Values("list").Is(P.TypeOf(GType.List))}}, + {"g_V_hasXlist_typeOfXGType_LISTXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("name", "test").Property("list", new List { 1, 2, 3 }), (g,p) =>g.V().Has("list", P.TypeOf(GType.List)).Values("name")}}, + {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_unfold", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("list", new List { "x", "y", "z" }), (g,p) =>g.V().Values("list").Is(P.TypeOf(GType.List)).Unfold()}}, + {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_countXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("list", new List { 1, 2, 3, 4, 5 }), (g,p) =>g.V().Values("list").Is(P.TypeOf(GType.List)).Count(Scope.Local)}}, + {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_unfold_rangeX1_3X", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("list", new List { "first", "second", "third", "fourth" }), (g,p) =>g.V().Values("list").Is(P.TypeOf(GType.List)).Unfold().Range(1, 3)}}, + {"g_V_valuesXlistX_isXtypeOfXGType_LISTXX_project_byXidentityX_byXcountXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("list", new List { "apple", "banana" }), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("list", new List { 1 }).AddV((string) "data").Property("list", new List { 1, 2, 3 }), (g,p) =>g.V().Values("list").Is(P.TypeOf(GType.List)).Where(__.Count(Scope.Local).Is(P.Gt(2)))}}, + {"g_injectXlistX_isXtypeOfXGType_LISTXX_groupCount", new List, ITraversal>> {(g,p) =>g.Inject(new List { "test" }).Is(P.TypeOf(GType.List)).GroupCount()}}, + {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("long", 1l), (g,p) =>g.V().Values("long").Is(P.TypeOf(GType.Long))}}, + {"g_V_hasXlong_typeOfXGType_LONGXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("name", "test").Property("long", 1l), (g,p) =>g.V().Has("long", P.TypeOf(GType.Long)).Values("name")}}, + {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX_mathXmulX2XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("long", 5l), (g,p) =>g.V().Values("long").Is(P.TypeOf(GType.Long)).Math("_ * 2")}}, + {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX_isXgtX5XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("long", 10l), (g,p) =>g.V().Values("long").Is(P.TypeOf(GType.Long)).Is(P.Gt(5l))}}, + {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX_sumX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("long", 1l).AddV((string) "data").Property("long", 2l).AddV((string) "data").Property("long", 3l), (g,p) =>g.V().Values("long").Is(P.TypeOf(GType.Long)).Sum()}}, + {"g_V_valuesXlongX_isXtypeOfXGType_LONGXX_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("long", 100l), (g,p) =>g.V().Values("long").Is(P.TypeOf(GType.Long)).Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_hasLabelXpersonX_valueMap_isXtypeOfXGType_MAPXX_count", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").ValueMap().Is(P.TypeOf(GType.Map)).Count()}}, + {"g_V_groupCount_byXlabelX_isXtypeOfXGType_MAPX", new List, ITraversal>> {(g,p) =>g.V().GroupCount().By(T.Label).Is(P.TypeOf(GType.Map))}}, + {"g_V_valuesXageX_isXtypeOfXGType_MAPXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Map))}}, + {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("map", new Dictionary {{ "key1", "1" }, { "key2", "2" }}), (g,p) =>g.V().Values("map").Is(P.TypeOf(GType.Map))}}, + {"g_V_hasXmap_typeOfXGType_MAPXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("name", "test").Property("map", new Dictionary {{ "a", 1 }, { "b", 2 }}), (g,p) =>g.V().Has("map", P.TypeOf(GType.Map)).Values("name")}}, + {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX_countXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("map", new Dictionary {{ "a", 1 }, { "b", 2 }, { "c", 3 }}), (g,p) =>g.V().Values("map").Is(P.TypeOf(GType.Map)).Count(Scope.Local)}}, + {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX_selectXvaluesX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("map", new Dictionary {{ "city", "NYC" }, { "country", "USA" }}), (g,p) =>g.V().Values("map").Is(P.TypeOf(GType.Map)).Select(Column.Values)}}, + {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX_whereX_countXlocalX_isXgtX1XXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("map", new Dictionary {{ "single", "value" }}).AddV((string) "data").Property("map", new Dictionary {{ "key1", "1" }, { "key2", "2" }}), (g,p) =>g.V().Values("map").Is(P.TypeOf(GType.Map)).Where(__.Count(Scope.Local).Is(P.Gt(1)))}}, + {"g_V_valuesXmapX_isXtypeOfXGType_MAPXX_foldX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("map", new Dictionary {{ "a", 1 }}).AddV((string) "data").Property("map", new Dictionary {{ "b", 2 }, { "c", 3 }}), (g,p) =>g.V().Values("map").Is(P.TypeOf(GType.Map)).Fold()}}, + {"g_V_valueXnameX_aggregateXxX_capXxX_isXtypeOfXGType_SETX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Aggregate("x").Cap("x").Is(P.TypeOf(GType.Set))}}, + {"g_V_valuesXageX_isXtypeOfXGType_SETXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Set))}}, + {"g_V_valueMap_selectXkeysX_dedup_isXtypeOfXGType_SETXX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select(Column.Keys).Dedup().Is(P.TypeOf(GType.Set))}}, + {"g_V_valuesXsetX_isXtypeOfXGType_SETXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("set", new HashSet { "a", "b", "c" }), (g,p) =>g.V().Values("set").Is(P.TypeOf(GType.Set))}}, + {"g_V_hasXset_typeOfXGType_SETXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("name", "test").Property("set", new HashSet { 1, 2, 3 }), (g,p) =>g.V().Has("set", P.TypeOf(GType.Set)).Values("name")}}, + {"g_V_valuesXsetX_isXtypeOfXGType_SETXX_unfold", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("set", new HashSet { "x", "y", "z" }), (g,p) =>g.V().Values("set").Is(P.TypeOf(GType.Set)).Unfold()}}, + {"g_V_valuesXsetX_isXtypeOfXGType_SETXX_countXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("set", new HashSet { 1, 2, 3, 4, 5 }), (g,p) =>g.V().Values("set").Is(P.TypeOf(GType.Set)).Count(Scope.Local)}}, + {"g_V_valuesXsetX_isXtypeOfXGType_SETXX_whereXcountXlocalX_isXeqX3XXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("set", new HashSet { 1, 2 }).AddV((string) "data").Property("set", new HashSet { 1, 2, 3 }), (g,p) =>g.V().Values("set").Is(P.TypeOf(GType.Set)).Where(__.Count(Scope.Local).Is(P.Eq(3)))}}, + {"g_V_valuesXsetX_isXtypeOfXGType_SETXX_unfold_limitX2X", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("set", new HashSet { "first", "second", "third", "fourth" }), (g,p) =>g.V().Values("set").Is(P.TypeOf(GType.Set)).Unfold().Limit(2)}}, + {"g_injectXsetX_isXtypeOfXGType_SETXX_groupCount", new List, ITraversal>> {(g,p) =>g.Inject(new HashSet { "test" }).Is(P.TypeOf(GType.Set)).GroupCount()}}, + {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 100), (g,p) =>g.V().Values("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short))}}, + {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_mathXmulX10XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 50), (g,p) =>g.V().Values("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short)).Math("_ * 10")}}, + {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_isXbetweenX20_30XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 25), (g,p) =>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", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 10).AddV((string) "data").Property("int", 20).AddV((string) "data").Property("int", 30), (g,p) =>g.V().Values("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short)).Min()}}, + {"g_V_valuesXintX_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_maxX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("int", 15).AddV((string) "data").Property("int", 25).AddV((string) "data").Property("int", 35), (g,p) =>g.V().Values("int").AsNumber(GType.Short).Is(P.TypeOf(GType.Short)).Max()}}, + {"g_injectX42X_asNumberXGType_SHORTX_isXtypeOfXGType_SHORTXX_storeXaX_capXaX", new List, ITraversal>> {(g,p) =>g.Inject(42).AsNumber(GType.Short).Is(P.TypeOf(GType.Short))}}, + {"g_V_valuesXageX_isXtypeOfXGType_SHORTXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Short))}}, + {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values("uuid").Is(P.TypeOf(GType.UUID))}}, + {"g_V_hasXuuid_typeOfXGType_UUIDXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("name", "test").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Has("uuid", P.TypeOf(GType.UUID)).Values("name")}}, + {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_project_byXidentityX_byXconstantXuuidXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values("uuid").Is(P.TypeOf(GType.UUID)).Project("original", "type").By(__.Identity()).By(__.Constant("uuid"))}}, + {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_whereXisXeqXuuidXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values("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, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values("uuid").Is(P.TypeOf(GType.UUID)).Choose(__.Is(P.Eq(Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479"))), __.Constant("match"), __.Constant("noMatch"))}}, + {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values("uuid").Is(P.TypeOf(GType.UUID)).Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_valuesXuuidX_isXtypeOfXGType_UUIDXX_aggregateXaX_capXaX", new List, ITraversal>> {(g,p) =>g.AddV((string) "data").Property("uuid", Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")), (g,p) =>g.V().Values("uuid").Is(P.TypeOf(GType.UUID)).Aggregate("a").Cap("a")}}, + {"g_injectXuuidX_isXtypeOfXGType_UUIDXX_groupCount", new List, ITraversal>> {(g,p) =>g.Inject(Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479")).Is(P.TypeOf(GType.UUID)).GroupCount()}}, + {"g_injectXUUIDX47af10b_58cc_4372_a567_0f02b2f3d479XX", new List, ITraversal>> {(g,p) =>g.Inject(Guid.Parse("f47af10b-58cc-4372-a567-0f02b2f3d479"))}}, + {"g_injectXUUIDXXX", new List, ITraversal>> {(g,p) =>g.Inject(Guid.NewGuid())}}, + {"g_V_aggregateXxX_byXnameX_byXageX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("x").By("name").By("age").Cap("x")}}, + {"g_V_localXaggregateXxX_byXnameXX_byXageX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("x").By("name").By("age")).Cap("x")}}, + {"g_V_valuesXageX_allXgtX32XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").All(P.Gt(32))}}, + {"g_V_valuesXageX_whereXisXP_gtX33XXX_fold_allXgtX33XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Where(__.Is(P.Gt(33))).Fold().All(P.Gt(33))}}, + {"g_V_valuesXageX_order_byXdescX_fold_allXgtX10XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Fold().All(P.Gt(10))}}, + {"g_V_valuesXageX_order_byXdescX_fold_allXgtX30XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Fold().All(P.Gt(30))}}, + {"g_injectXabc_bcdX_allXeqXbcdXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "abc", "bcd" }).All(P.Eq("bcd"))}}, + {"g_injectXbcd_bcdX_allXeqXbcdXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "bcd", "bcd" }).All(P.Eq("bcd"))}}, + {"g_injectXnull_abcX_allXTextP_startingWithXaXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, "abc" }).All(TextP.StartingWith("a"))}}, + {"g_injectX5_8_10_10_7X_allXgteX7XX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 5, 8, 10 }, new List { 10, 7 }).All(P.Gte(7))}}, + {"g_injectXnullX_allXeqXnullXX", new List, ITraversal>> {(g,p) =>g.Inject(null).All(P.Eq(null))}}, + {"g_injectX7X_allXeqX7XX", new List, ITraversal>> {(g,p) =>g.Inject(7).All(P.Eq(7))}}, + {"g_injectXnull_nullX_allXeqXnullXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, null }).All(P.Eq(null))}}, + {"g_injectX3_threeX_allXeqX3XX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).All(P.Eq(3))}}, + {"g_V_andXhasXage_gt_27X__outE_count_gte_2X_name", new List, ITraversal>> {(g,p) =>g.V().And(__.Has("age", P.Gt(27)), __.OutE().Count().Is(P.Gte(2))).Values("name")}}, + {"g_V_andXoutE__hasXlabel_personX_and_hasXage_gte_32XX_name", new List, ITraversal>> {(g,p) =>g.V().And(__.OutE(), __.Has(T.Label, "person").And().Has("age", P.Gte(32))).Values("name")}}, + {"g_V_asXaX_outXknowsX_and_outXcreatedX_inXcreatedX_asXaX_name", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("knows").And().Out("created").In("created").As("a").Values("name")}}, + {"g_V_asXaX_andXselectXaX_selectXaXX", new List, ITraversal>> {(g,p) =>g.V().As("a").And(__.Select("a"), __.Select("a"))}}, + {"g_V_hasXname_markoX_and_hasXname_markoX_and_hasXname_markoX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").And().Has("name", "marko").And().Has("name", "marko")}}, + {"g_V_valuesXageX_anyXgtX32XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Any(P.Gt(32))}}, + {"g_V_valuesXageX_order_byXdescX_fold_anyXeqX29XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Fold().Any(P.Eq(29))}}, + {"g_V_valuesXageX_order_byXdescX_fold_anyXgtX10XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Fold().Any(P.Gt(10))}}, + {"g_V_valuesXageX_order_byXdescX_fold_anyXgtX42XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Fold().Any(P.Gt(42))}}, + {"g_injectXabc_cdeX_anyXeqXbcdXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "abc", "cde" }).Any(P.Eq("bcd"))}}, + {"g_injectXabc_bcdX_anyXeqXbcdXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "abc", "bcd" }).Any(P.Eq("bcd"))}}, + {"g_injectXnull_abcX_anyXTextP_startingWithXaXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, "abc" }).Any(TextP.StartingWith("a"))}}, + {"g_injectX5_8_10_10_7X_anyXeqX7XX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 5, 8, 10 }, new List { 10, 7 }).Any(P.Eq(7))}}, + {"g_injectXnullX_anyXeqXnullXX", new List, ITraversal>> {(g,p) =>g.Inject(null).Any(P.Eq(null))}}, + {"g_injectX7X_anyXeqX7XX", new List, ITraversal>> {(g,p) =>g.Inject(7).Any(P.Eq(7))}}, + {"g_injectXnull_nullX_anyXeqXnullXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, null }).Any(P.Eq(null))}}, + {"g_injectX3_threeX_anyXeqX3XX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Any(P.Eq(3))}}, + {"g_V_coinX1_0X", new List, ITraversal>> {(g,p) =>g.V().Coin(1.0)}}, + {"g_V_coinX1X", new List, ITraversal>> {(g,p) =>g.V().Coin(1)}}, + {"g_V_coinX0X", new List, ITraversal>> {(g,p) =>g.V().Coin(0.0)}}, + {"g_withStrategiesXSeedStrategyX_V_order_byXnameX_coinX50X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SeedStrategy(seed: 999999)).V().Order().By("name").Coin(0.5)}}, + {"g_VX1X_outXcreatedX_inXcreatedX_cyclicPath", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("created").In("created").CyclicPath()}}, + {"g_VX1X_both_both_cyclicPath_byXageX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Both().Both().CyclicPath().By("age")}}, + {"g_VX1X_outXcreatedX_inXcreatedX_cyclicPath_path", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("created").In("created").CyclicPath().Path()}}, + {"g_VX1X_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_cyclicPath_fromXaX_toXbX_path", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("created").As("b").In("created").As("c").CyclicPath().From("a").To("b").Path()}}, + {"g_injectX0X_V_both_coalesceXhasXname_markoX_both_constantX0XX_cyclicPath_path", new List, ITraversal>> {(g,p) =>g.Inject(0).V().Both().Coalesce(__.Has("name", "marko").Both(), __.Constant(0)).CyclicPath().Path()}}, + {"g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold", new List, ITraversal>> {(g,p) =>g.V().Out().In().Values("name").Fold().Dedup(Scope.Local).Unfold()}}, + {"g_V_out_in_valuesXnameX_fold_dedupXlocalX", new List, ITraversal>> {(g,p) =>g.V().Out().Map(__.In().Values("name").Fold().Dedup(Scope.Local))}}, + {"g_V_out_asXxX_in_asXyX_selectXx_yX_byXnameX_fold_dedupXlocal_x_yX_unfold", new List, ITraversal>> {(g,p) =>g.V().Out().As("x").In().As("y").Select("x", "y").By("name").Fold().Dedup(Scope.Local, "x", "y").Unfold()}}, + {"g_V_both_dedup_name", new List, ITraversal>> {(g,p) =>g.V().Both().Dedup().Values("name")}}, + {"g_V_both_hasXlabel_softwareX_dedup_byXlangX_name", new List, ITraversal>> {(g,p) =>g.V().Both().Has(T.Label, "software").Dedup().By("lang").Values("name")}}, + {"g_V_both_both_name_dedup", new List, ITraversal>> {(g,p) =>g.V().Both().Both().Values("name").Dedup()}}, + {"g_V_both_both_dedup", new List, ITraversal>> {(g,p) =>g.V().Both().Both().Dedup()}}, + {"g_V_both_both_dedup_byXlabelX", new List, ITraversal>> {(g,p) =>g.V().Both().Both().Dedup().By(T.Label)}}, + {"g_V_group_byXlabelX_byXbothE_weight_dedup_foldX", new List, ITraversal>> {(g,p) =>g.V().Group().By(T.Label).By(__.BothE().Values("weight").Dedup().Order().By(Order.Asc).Fold())}}, + {"g_V_asXaX_both_asXbX_dedupXa_bX_byXlabelX_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().As("a").Both().As("b").Dedup("a", "b").By(T.Label).Select("a", "b")}}, + {"g_V_asXaX_out_asXbX_in_asXcX_dedupXa_bX_path_byXnameX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").As("a").AddV((string) "person").Property("name", "bob").As("b").AddV((string) "person").Property("name", "carol").As("c").AddE((string) "knows").From("a").To("b").AddE((string) "likes").From("a").To("b").AddE((string) "likes").From("a").To("c"), (g,p) =>g.V().As("a").Out().As("b").In().As("c").Dedup("a", "b").Path().By("name")}}, + {"g_V_outE_asXeX_inV_asXvX_selectXeX_order_byXweight_ascX_selectXvX_valuesXnameX_dedup", new List, ITraversal>> {(g,p) =>g.V().OutE().As("e").InV().As("v").Select("e").Order().By("weight", Order.Asc).Select("v").Values("name").Dedup()}}, + {"g_V_both_both_dedup_byXoutE_countX_name", new List, ITraversal>> {(g,p) =>g.V().Both().Both().Dedup().By(__.OutE().Count()).Values("name")}}, + {"g_V_groupCount_selectXvaluesX_unfold_dedup", new List, ITraversal>> {(g,p) =>g.V().GroupCount().Select(Column.Values).Unfold().Dedup()}}, + {"g_V_asXaX_repeatXbothX_timesX3X_emit_name_asXbX_group_byXselectXaXX_byXselectXbX_dedup_order_foldX_selectXvaluesX_unfold_dedup", new List, ITraversal>> {(g,p) =>g.V().As("a").Repeat(__.Both()).Times(3).Emit().Values("name").As("b").Group().By(__.Select("a")).By(__.Select("b").Dedup().Order().Fold()).Select(Column.Values).Unfold().Dedup()}}, + {"g_V_repeatXdedupX_timesX2X_count", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Dedup()).Times(2).Count()}}, + {"g_V_both_group_by_byXout_dedup_foldX_unfold_selectXvaluesX_unfold_out_order_byXnameX_limitX1X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Both().Group().By().By(__.Out().Dedup().Fold()).Unfold().Select(Column.Values).Unfold().Out().Order().By("name").Limit(1).Values("name")}}, + {"g_V_bothE_properties_dedup_count", new List, ITraversal>> {(g,p) =>g.V().BothE().Properties().Dedup().Count()}}, + {"g_V_both_properties_dedup_count", new List, ITraversal>> {(g,p) =>g.V().Both().Properties().Dedup().Count()}}, + {"g_V_both_properties_properties_dedup_count", new List, ITraversal>> {(g,p) =>g.V().Both().Properties().Properties().Dedup().Count()}}, + {"g_V_order_byXname_descX_barrier_dedup_age_name", new List, ITraversal>> {(g,p) =>g.V().Order().By("name", Order.Desc).Barrier().Dedup().By("age").Values("name")}}, + {"g_withStrategiesXProductiveByStrategyX_V_order_byXname_descX_barrier_dedup_age_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Order().By("name", Order.Desc).Barrier().Dedup().By("age").Values("name")}}, + {"g_V_both_dedup_age_name", new List, ITraversal>> {(g,p) =>g.V().Both().Dedup().By("age").Values("name")}}, + {"g_VX1X_asXaX_both_asXbX_both_asXcX_dedupXa_bX_age_selectXa_b_cX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Both().As("b").Both().As("c").Dedup("a", "b").By("age").Select("a", "b", "c").By("name")}}, + {"g_VX1X_valuesXageX_dedupXlocalX_unfold", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Dedup(Scope.Local).Unfold()}}, + {"g_V_properties_dedup_count", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "josh").AddV((string) "person").Property("name", "josh").AddV((string) "person").Property("name", "josh"), (g,p) =>g.V().Properties("name").Dedup().Count()}}, + {"g_V_properties_dedup_byXvalueX_count", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "josh").AddV((string) "person").Property("name", "josh").AddV((string) "person").Property("name", "josh"), (g,p) =>g.V().Properties("name").Dedup().By(T.Value).Count()}}, + {"g_V_both_hasXlabel_softwareX_dedup_byXlangX_byXnameX_name", new List, ITraversal>> {(g,p) =>g.V().Both().Has(T.Label, "software").Dedup().By("lang").By("name").Values("name")}}, + {"g_V_count_discard", new List, ITraversal>> {(g,p) =>g.V().Count().Discard()}}, + {"g_V_hasLabelXpersonX_discard", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Discard()}}, + {"g_VX1X_outXcreatedX_discard", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("created").Discard()}}, + {"g_V_discard", new List, ITraversal>> {(g,p) =>g.V().Discard()}}, + {"g_V_discard_discard", new List, ITraversal>> {(g,p) =>g.V().Discard().Discard()}}, + {"g_V_discard_fold", new List, ITraversal>> {(g,p) =>g.V().Discard().Fold()}}, + {"g_V_discard_fold_discard", new List, ITraversal>> {(g,p) =>g.V().Discard().Fold().Discard()}}, + {"g_V_discard_fold_constantX1X", new List, ITraversal>> {(g,p) =>g.V().Discard().Fold().Constant(1)}}, + {"g_V_projectXxX_byXcoalesceXage_isXgtX29XX_discardXX_selectXxX", new List, ITraversal>> {(g,p) =>g.V().Project("x").By(__.Coalesce(__.Values("age").Is(P.Gt(29)), __.Discard())).Select("x")}}, + {"g_V_drop", new List, ITraversal>> {(g,p) =>g.AddV().As("a").AddV().As("b").AddE((string) "knows").To("a"), (g,p) =>g.V().Drop(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_V_outE_drop", new List, ITraversal>> {(g,p) =>g.AddV().As("a").AddV().As("b").AddE((string) "knows").To("a"), (g,p) =>g.V().OutE().Drop(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_V_properties_drop", new List, ITraversal>> {(g,p) =>g.AddV().Property("name", "bob").AddV().Property("name", "alice"), (g,p) =>g.V().Properties().Drop(), (g,p) =>g.V(), (g,p) =>g.V().Properties()}}, + {"g_E_propertiesXweightX_drop", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.E().Properties("weight").Drop(), (g,p) =>g.E().Properties()}}, + {"g_V_properties_propertiesXstartTimeX_drop", new List, ITraversal>> {(g,p) =>g.AddV().Property("name", "bob").Property(Cardinality.List, "location", "ny", "startTime", 2014, "endTime", 2016).Property(Cardinality.List, "location", "va", "startTime", 2016).AddV().Property("name", "alice").Property(Cardinality.List, "location", "va", "startTime", 2014, "endTime", 2016).Property(Cardinality.List, "location", "ny", "startTime", 2016), (g,p) =>g.V().Properties().Properties("startTime").Drop(), (g,p) =>g.V().Properties().Properties(), (g,p) =>g.V().Properties().Properties("startTime")}}, + {"g_V_filterXisX0XX", new List, ITraversal>> {(g,p) =>g.V().Filter(__.Is(0))}}, + {"g_V_filterXconstantX0XX", new List, ITraversal>> {(g,p) =>g.V().Filter(__.Constant(0))}}, + {"g_V_filterXhasXlang_javaXX", new List, ITraversal>> {(g,p) =>g.V().Filter(__.Has("lang", "java"))}}, + {"g_VX1X_filterXhasXage_gtX30XXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Filter(__.Has("age", P.Gt(30)))}}, + {"g_VX2X_filterXhasXage_gtX30XXX", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).Filter(__.Has("age", P.Gt(30)))}}, + {"g_VX1X_out_filterXhasXage_gtX30XXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Filter(__.Has("age", P.Gt(30)))}}, + {"g_V_filterXhasXname_startingWithXm_or_pXX", new List, ITraversal>> {(g,p) =>g.V().Filter(__.Has("name", TextP.StartingWith("m").Or(TextP.StartingWith("p"))))}}, + {"g_E_filterXisX0XX", new List, ITraversal>> {(g,p) =>g.E().Filter(__.Is(0))}}, + {"g_E_filterXconstantX0XX", new List, ITraversal>> {(g,p) =>g.E().Filter(__.Constant(0))}}, + {"g_VX1X_hasXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Has("name")}}, + {"g_VX1X_hasXcircumferenceX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Has("circumference")}}, + {"g_VX1X_hasXname_markoX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Has("name", "marko")}}, + {"g_VX1X_hasXname_markovarX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Has("name", new GValue("xx1", (object) p["xx1"]))}}, + {"g_VX2X_hasXname_markoX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Has("name", "marko")}}, + {"g_V_hasXname_markoX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko")}}, + {"g_V_hasXname_blahX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "blah")}}, + {"g_V_hasXage_gt_30X", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.Gt(30))}}, + {"g_VX1X_hasXage_gt_30X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Has("age", P.Gt(30))}}, + {"g_V_hasXpersonvar_age_gt_30X", new List, ITraversal>> {(g,p) =>g.V().Has(new GValue("xx1", (string) p["xx1"]), "age", P.Gt(30))}}, + {"g_VX4X_hasXage_gt_30X", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).Has("age", P.Gt(30))}}, + {"g_VXv1X_hasXage_gt_30X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Has("age", P.Gt(30))}}, + {"g_VXv4X_hasXage_gt_30X", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).Has("age", P.Gt(30))}}, + {"g_VX1X_out_hasXid_2X", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).Has("age", P.Gt(30))}}, + {"g_V_hasXblahX", new List, ITraversal>> {(g,p) =>g.V().Has("blah")}}, + {"g_V_hasXperson_name_markoX_age", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Values("age")}}, + {"g_V_hasXperson_name_markovarX_age", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", new GValue("xx1", (object) p["xx1"])).Values("age")}}, + {"g_V_hasXpersonvar_name_markoX_age", new List, ITraversal>> {(g,p) =>g.V().Has(new GValue("xx1", (string) p["xx1"]), "name", "marko").Values("age")}}, + {"g_VX1X_outE_hasXweight_inside_0_06X_inV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().Has("weight", P.Inside(0.0, 0.6)).InV()}}, + {"g_EX11X_outV_outE_hasXid_10X", new List, ITraversal>> {(g,p) =>g.E(p["eid11"]).OutV().OutE().Has(T.Id, new GValue("eid10", (object) p["eid10"]))}}, + {"g_EX11X_outV_outE_hasXid_10AsStringX", new List, ITraversal>> {(g,p) =>g.E(p["eid11"]).OutV().OutE().Has(T.Id, new GValue("eid10", (object) p["eid10"]))}}, + {"g_V_hasXlocationX", new List, ITraversal>> {(g,p) =>g.V().Has("location")}}, + {"g_V_hasXage_withinX27X_count", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.Within(27)).Count()}}, + {"g_V_hasXage_withinX27_nullX_count", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.Within(27, null)).Count()}}, + {"g_V_hasXage_withinX27_29X_count", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.Within(27, 29)).Count()}}, + {"g_V_hasXage_withoutX27X_count", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.Without(27)).Count()}}, + {"g_V_hasXage_withoutX27_29X_count", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.Without(27, 29)).Count()}}, + {"g_V_hasXperson_age_withinX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "age", P.Within())}}, + {"g_V_hasXperson_age_withoutX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "age", P.Without())}}, + {"g_V_hasXname_containingXarkXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", TextP.Containing("ark"))}}, + {"g_V_hasXname_startingWithXmarXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", TextP.StartingWith("mar"))}}, + {"g_V_hasXname_endingWithXasXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", TextP.EndingWith("as"))}}, + {"g_V_hasXperson_name_containingXoX_andXltXmXXX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", TextP.Containing("o").And(P.Lt("m")))}}, + {"g_V_hasXname_gtXmX_andXcontainingXoXXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", P.Gt("m").And(TextP.Containing("o")))}}, + {"g_V_hasXname_not_containingXarkXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", TextP.NotContaining("ark"))}}, + {"g_V_hasXname_not_startingWithXmarXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", TextP.NotStartingWith("mar"))}}, + {"g_V_hasXname_not_endingWithXasXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", TextP.NotEndingWith("as"))}}, + {"g_V_hasXname_regexXrMarXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", TextP.Regex("^mar"))}}, + {"g_V_hasXname_notRegexXrMarXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", TextP.NotRegex("^mar"))}}, + {"g_V_hasXname_regexXTinkerXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "software").Property("name", "Apache TinkerPop©"), (g,p) =>g.V().Has("name", TextP.Regex("Tinker")).Values("name")}}, + {"g_V_hasXname_regexXTinkerUnicodeXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "software").Property("name", "Apache TinkerPop©"), (g,p) =>g.V().Has("name", TextP.Regex("Tinker.*\u00A9")).Values("name")}}, + {"g_V_hasXp_neqXvXX", new List, ITraversal>> {(g,p) =>g.V().Has("p", P.Neq("v"))}}, + {"g_V_hasXage_gtX18X_andXltX30XXorXgtx35XXX", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.Gt(18).And(P.Lt(30)).Or(P.Gt(35)))}}, + {"g_V_hasXage_gtX18X_andXltX30XXorXltx35XXX", new List, ITraversal>> {(g,p) =>g.V().Has("age", P.Gt(18).And(P.Lt(30)).And(P.Lt(35)))}}, + {"g_V_hasXk_withinXcXX_valuesXkX", new List, ITraversal>> {(g,p) =>g.AddV().Property("k", "轉注").AddV().Property("k", "✦").AddV().Property("k", "♠").AddV().Property("k", "A"), (g,p) =>g.V().Has("k", P.Within("轉注", "✦", "♠")).Values("k")}}, + {"g_V_hasXnullX", new List, ITraversal>> {(g,p) =>g.V().Has(null)}}, + {"g_V_hasXnull_testnullkeyX", new List, ITraversal>> {(g,p) =>g.V().Has((string) null, "test-null-key")}}, + {"g_E_hasXnullX", new List, ITraversal>> {(g,p) =>g.E().Has(null)}}, + {"g_V_hasXlabel_personX", new List, ITraversal>> {(g,p) =>g.V().Has(T.Label, "person")}}, + {"g_V_hasXlabel_eqXpersonXX", new List, ITraversal>> {(g,p) =>g.V().Has(T.Label, P.Eq("person"))}}, + {"g_V_hasXname_nullX", new List, ITraversal>> {(g,p) =>g.V().Has("name", (object) null)}}, + {"g_V_hasIdXemptyX_count", new List, ITraversal>> {(g,p) =>g.V().HasId(p["xx1"]).Count()}}, + {"g_V_hasIdXwithinXemptyXX_count", new List, ITraversal>> {(g,p) =>g.V().HasId(P.Within(new List { })).Count()}}, + {"g_V_hasIdXwithoutXemptyXX_count", new List, ITraversal>> {(g,p) =>g.V().HasId(P.Without(new List { })).Count()}}, + {"g_V_notXhasIdXwithinXemptyXXX_count", new List, ITraversal>> {(g,p) =>g.V().Not(__.HasId(P.Within(new List { }))).Count()}}, + {"g_V_hasIdXnullX", new List, ITraversal>> {(g,p) =>g.V().HasId(null)}}, + {"g_V_hasIdXeqXnullXX", new List, ITraversal>> {(g,p) =>g.V().HasId(P.Eq(null))}}, + {"g_V_hasIdX2_nullX", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid2"], null)}}, + {"g_V_hasIdXmarkovar_vadasvarX", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid1"], p["vid2"])}}, + {"g_V_hasIdXmarkovar_vadasvar_petervarX", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid1"], p["vid2"])}}, + {"g_V_hasIdX2AsString_nullX", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid2"], null)}}, + {"g_V_hasIdX1AsString_2AsString_nullX", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid1"], p["vid2"], null)}}, + {"g_V_hasIdXnull_2X", new List, ITraversal>> {(g,p) =>g.V().HasId(null, p["vid2"])}}, + {"g_V_hasIdX1X_hasIdX2X", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid1"]).HasId(p["vid2"])}}, + {"g_V_in_hasIdXneqX1XX", new List, ITraversal>> {(g,p) =>g.V().In().HasId(P.Neq(p["xx1"]))}}, + {"g_VX1X_out_hasIdX2X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().HasId(p["vid2"])}}, + {"g_VX1X_out_hasXid_2_3X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().HasId(p["vid2"], p["vid3"])}}, + {"g_VX1X_out_hasXid_2AsString_3AsStringX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().HasId(p["vid2"], p["vid3"])}}, + {"g_VX1AsStringX_out_hasXid_2AsStringX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().HasId(p["vid2"])}}, + {"g_VX1X_out_hasXid_2_3X_inList", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().HasId(p["xx1"])}}, + {"g_V_hasXid_1_2X", new List, ITraversal>> {(g,p) =>g.V().HasId(p["vid1"], p["vid2"])}}, + {"g_V_hasXid_1_2X_inList", new List, ITraversal>> {(g,p) =>g.V().HasId(p["xx1"])}}, + {"g_V_both_dedup_properties_hasKeyXageX_value", new List, ITraversal>> {(g,p) =>g.V().Both().Properties().Dedup().HasKey("age").Value()}}, + {"g_V_both_properties_dedup_hasKeyXageX_hasValueXgtX30XX_value", new List, ITraversal>> {(g,p) =>g.V().Both().Properties().Dedup().HasKey("age").HasValue(P.Gt(30)).Value(), (g,p) =>g.V().Both().Properties().Dedup().HasKey("age").HasValue(P.Gt(30)).Value()}}, + {"g_V_bothE_properties_dedup_hasKeyXweightX_value", new List, ITraversal>> {(g,p) =>g.V().BothE().Properties().Dedup().HasKey("weight").Value()}}, + {"g_V_bothE_properties_dedup_hasKeyXweightX_hasValueXltX0d3XX_value", new List, ITraversal>> {(g,p) =>g.V().BothE().Properties().Dedup().HasKey("weight").HasValue(P.Lt(0.3)).Value(), (g,p) =>g.V().BothE().Properties().Dedup().HasKey("weight").HasValue(P.Lt(0.3)).Value()}}, + {"g_V_properties_hasKeyXnullX", new List, ITraversal>> {(g,p) =>g.V().Properties().HasKey((string) null)}}, + {"g_V_properties_hasKeyXnull_nullX", new List, ITraversal>> {(g,p) =>g.V().Properties().HasKey(null, null)}}, + {"g_V_properties_hasKeyXnull_ageX_value", new List, ITraversal>> {(g,p) =>g.V().Properties().HasKey(null, "age").Value()}}, + {"g_E_properties_hasKeyXnullX", new List, ITraversal>> {(g,p) =>g.E().Properties().HasKey((string) null)}}, + {"g_E_properties_hasKeyXnull_nullX", new List, ITraversal>> {(g,p) =>g.E().Properties().HasKey(null, null)}}, + {"g_E_properties_hasKeyXnull_weightX_value", new List, ITraversal>> {(g,p) =>g.E().Properties().HasKey(null, "weight").Value()}}, + {"g_EX7X_hasLabelXknowsX", new List, ITraversal>> {(g,p) =>g.E(p["eid7"]).HasLabel("knows")}}, + {"g_E_hasLabelXknowsX", new List, ITraversal>> {(g,p) =>g.E().HasLabel("knows")}}, + {"g_E_hasLabelXuses_traversesX", new List, ITraversal>> {(g,p) =>g.E().HasLabel("uses", "traverses")}}, + {"g_V_hasLabelXperson_software_blahX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person", "software", "blah")}}, + {"g_V_hasLabelXperson_softwarevarX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person", (string) p["xx1"])}}, + {"g_V_hasLabelXpersonX_hasLabelXsoftwareX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").HasLabel("software")}}, + {"g_V_hasLabelXpersonvarX_hasLabelXsoftwareX", new List, ITraversal>> {(g,p) =>g.V().HasLabel(new GValue("xx1", (string) p["xx1"])).HasLabel("software")}}, + {"g_V_hasLabelXpersonvar_softwarevarX", new List, ITraversal>> {(g,p) =>g.V().HasLabel(new GValue("xx1", (string) p["xx1"]), new GValue("xx2", (string) p["xx2"]))}}, + {"g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Has("age", P.Not(P.Lte(10).And(P.Not(P.Between(11, 20)))).And(P.Lt(29).Or(P.Eq(35)))).Values("name")}}, + {"g_V_hasLabelXnullX", new List, ITraversal>> {(g,p) =>g.V().HasLabel((string) null)}}, + {"g_V_hasXlabel_nullX", new List, ITraversal>> {(g,p) =>g.V().Has(T.Label, (object) null)}}, + {"g_V_hasLabelXnull_nullX", new List, ITraversal>> {(g,p) =>g.V().HasLabel((string) null, (string) null)}}, + {"g_V_hasLabelXnull_personX", new List, ITraversal>> {(g,p) =>g.V().HasLabel((string) null, "person")}}, + {"g_E_hasLabelXnullX", new List, ITraversal>> {(g,p) =>g.E().HasLabel((string) null)}}, + {"g_E_hasXlabel_nullX", new List, ITraversal>> {(g,p) =>g.E().Has(T.Label, (object) null)}}, + {"g_V_properties_hasLabelXnullX", new List, ITraversal>> {(g,p) =>g.V().Properties().HasLabel((string) null)}}, + {"g_V_hasNotXageX_name", new List, ITraversal>> {(g,p) =>g.V().HasNot("age").Values("name")}}, + {"g_V_properties_hasValueXnullX", new List, ITraversal>> {(g,p) =>g.V().Properties().HasValue((object) null)}}, + {"g_V_properties_hasValueXnull_nullX", new List, ITraversal>> {(g,p) =>g.V().Properties().HasValue(null, null)}}, + {"g_V_properties_hasValueXnull_joshX_value", new List, ITraversal>> {(g,p) =>g.V().Properties().HasValue(null, "josh").Value()}}, + {"g_V_valuesXageX_isX32X", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(32)}}, + {"g_V_valuesXageX_isX32varX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(p["xx1"])}}, + {"g_V_valuesXageX_isXlte_30X", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.Lte(30))}}, + {"g_V_valuesXageX_isXlte_30varX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.Lte(p["xx1"]))}}, + {"g_V_valuesXageX_isXgte_29X_isXlt_34X", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.Gte(29)).Is(P.Lt(34))}}, + {"g_V_valuesXageX_isXgte_29vaarX_isXlt_34varX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.Gte(p["xx1"])).Is(P.Lt(p["xx2"]))}}, + {"g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Where(__.In("created").Count().Is(1)).Values("name")}}, + {"g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Where(__.In("created").Count().Is(P.Gte(2))).Values("name")}}, + {"g_V_valuesXageX_noneXgtX32XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").None(P.Gt(32))}}, + {"g_V_valuesXageX_whereXisXP_gtX33XXX_fold_noneXlteX33XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Where(__.Is(P.Gt(33))).Fold().None(P.Lte(33))}}, + {"g_V_valuesXageX_order_byXdescX_fold_noneXltX10XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Fold().None(P.Lt(10))}}, + {"g_V_valuesXageX_order_byXdescX_fold_noneXgtX30XX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Fold().None(P.Gt(30))}}, + {"g_injectXabc_bcdX_noneXeqXbcdXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "abc", "bcd" }).None(P.Eq("bcd"))}}, + {"g_injectXbcd_bcdX_noneXeqXabcXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "bcd", "bcd" }).None(P.Eq("abc"))}}, + {"g_injectXnull_bcdX_noneXP_eqXabcXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, "bcd" }).None(P.Eq("abc"))}}, + {"g_injectX5_8_10_10_7X_noneXltX7XX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 5, 8, 10 }, new List { 10, 7 }).None(P.Lt(7))}}, + {"g_injectXnullX_noneXeqXnullXX", new List, ITraversal>> {(g,p) =>g.Inject(null).None(P.Eq(null))}}, + {"g_injectX7X_noneXeqX7XX", new List, ITraversal>> {(g,p) =>g.Inject(7).None(P.Eq(7))}}, + {"g_injectXnull_1_emptyX_noneXeqXnullXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, 1 }, new List { }).None(P.Eq(null))}}, + {"g_injectXnull_nullX_noneXnotXnullXX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, null }).None(P.Neq(null))}}, + {"g_injectX3_threeX_noneXeqX3XX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).None(P.Eq(3))}}, + {"g_V_notXhasXage_gt_27XX_name", new List, ITraversal>> {(g,p) =>g.V().Not(__.Has("age", P.Gt(27))).Values("name")}}, + {"g_V_notXnotXhasXage_gt_27XXX_name", new List, ITraversal>> {(g,p) =>g.V().Not(__.Not(__.Has("age", P.Gt(27)))).Values("name")}}, + {"g_V_notXhasXname_gt_27XX_name", new List, ITraversal>> {(g,p) =>g.V().Not(__.Has("name", P.Gt(27))).Values("name")}}, + {"g_V_orXhasXage_gt_27X__outE_count_gte_2X_name", new List, ITraversal>> {(g,p) =>g.V().Or(__.Has("age", P.Gt(27)), __.OutE().Count().Is(P.Gte(2))).Values("name")}}, + {"g_V_orXoutEXknowsX__hasXlabel_softwareX_or_hasXage_gte_35XX_name", new List, ITraversal>> {(g,p) =>g.V().Or(__.OutE("knows"), __.Has(T.Label, "software").Or().Has("age", P.Gte(35))).Values("name")}}, + {"g_V_asXaX_orXselectXaX_selectXaXX", new List, ITraversal>> {(g,p) =>g.V().As("a").Or(__.Select("a"), __.Select("a"))}}, + {"g_VX1X_out_limitX2X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Limit(2)}}, + {"g_VX1X_out_limitX2varX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Limit(new GValue("xx1", (long) p["xx1"]))}}, + {"g_V_localXoutE_limitX1X_inVX_limitX3X", new List, ITraversal>> {(g,p) =>g.V().Local(__.OutE().Limit(1)).InV().Limit(3)}}, + {"g_VX1X_outXknowsX_outEXcreatedX_rangeX0_1X_inV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("knows").OutE("created").Range(0, 1).InV()}}, + {"g_VX1X_outXknowsX_outXcreatedX_rangeX0_1X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("knows").Out("created").Range(0, 1)}}, + {"g_VX1X_outXcreatedX_inXcreatedX_rangeX1_3X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("created").In("created").Range(1, 3)}}, + {"g_VX1X_outXcreatedX_inXcreatedX_rangeX1var_3varX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("created").In("created").Range(new GValue("xx1", (long) p["xx1"]), new GValue("xx2", (long) p["xx2"]))}}, + {"g_VX1X_outXcreatedX_inEXcreatedX_rangeX1_3X_outV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("created").InE("created").Range(1, 3).OutV()}}, + {"g_V_repeatXbothX_timesX3X_rangeX5_11X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both()).Times(3).Range(5, 11)}}, + {"g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_2X", new List, ITraversal>> {(g,p) =>g.V().As("a").In().As("b").In().As("c").Select("a", "b", "c").By("name").Limit(Scope.Local, 2)}}, + {"g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_2varX", new List, ITraversal>> {(g,p) =>g.V().As("a").In().As("b").In().As("c").Select("a", "b", "c").By("name").Limit(Scope.Local, new GValue("xx1", (long) p["xx1"]))}}, + {"g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_1X", new List, ITraversal>> {(g,p) =>g.V().As("a").In().As("b").In().As("c").Select("a", "b", "c").By("name").Limit(Scope.Local, 1)}}, + {"g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1_3X", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Out().As("c").Select("a", "b", "c").By("name").Range(Scope.Local, 1, 3)}}, + {"g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1var_3varX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Out().As("c").Select("a", "b", "c").By("name").Range(Scope.Local, new GValue("xx1", (long) p["xx1"]), new GValue("xx2", (long) p["xx2"]))}}, + {"g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1_2X", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Out().As("c").Select("a", "b", "c").By("name").Range(Scope.Local, 1, 2)}}, + {"g_V_hasLabelXpersonX_order_byXageX_skipX1X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Order().By("age").Skip(1).Values("name")}}, + {"g_V_hasLabelXpersonX_order_byXageX_skipX1varX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Order().By("age").Skip(new GValue("xx1", (long) p["xx1"])).Values("name")}}, + {"g_V_foldX_rangeXlocal_6_7X", new List, ITraversal>> {(g,p) =>g.V().Fold().Range(Scope.Local, 6, 7)}}, + {"g_V_outE_valuesXweightX_fold_orderXlocalX_skipXlocal_2X", new List, ITraversal>> {(g,p) =>g.V().OutE().Values("weight").Fold().Order(Scope.Local).Skip(Scope.Local, 2)}}, + {"g_V_outE_valuesXweightX_fold_orderXlocalX_skipXlocal_2varX", new List, ITraversal>> {(g,p) =>g.V().OutE().Values("weight").Fold().Order(Scope.Local).Skip(Scope.Local, new GValue("xx1", (long) p["xx1"]))}}, + {"g_V_hasLabelXpersonX_order_byXageX_valuesXnameX_skipX1X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Order().By("age").Values("name").Skip(1)}}, + {"g_VX1X_valuesXageX_rangeXlocal_20_30X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Range(Scope.Local, 20, 30)}}, + {"g_V_mapXin_hasIdX1XX_limitX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Map(__.In().HasId(p["vid1"])).Limit(2).Values("name")}}, + {"g_V_rangeX2_1X", new List, ITraversal>> {(g,p) =>g.V().Range(2, 1)}}, + {"g_V_rangeX3_2X", new List, ITraversal>> {(g,p) =>g.V().Range(3, 2)}}, + {"g_injectXlistX1_2_3XX_rangeXlocal_1_2X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3 }).Range(Scope.Local, 1, 2)}}, + {"g_injectXlistX1_2_3XX_limitXlocal_1X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3 }).Limit(Scope.Local, 1)}}, + {"g_injectXlistX1_2_3X_limitXlocal_1X_unfold", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3 }).Limit(Scope.Local, 1).Unfold()}}, + {"g_injectX1_2_3_4_5X_limitXlocal_1X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }, new List { 3, 4, 5 }).Limit(Scope.Local, 1)}}, + {"g_injectX1_2_3_4_5_6X_rangeXlocal_1_2X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3 }, new List { 4, 5, 6 }).Range(Scope.Local, 1, 2)}}, + {"g_VX5X_repeatXlimitX1X_inX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Repeat(__.Limit(1).In()).Times(2).Values("name")}}, + {"g_VX5X_repeatXlimitX1X_inX_untilXloopsXisX2XXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Repeat(__.Limit(1).In()).Until(__.Loops().Is(2)).Values("name")}}, + {"g_VX5X_limitX1X_in_limitX1X_in_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Limit(1).In().Limit(1).In().Values("name")}}, + {"g_VX5X_repeatXlimitX1X_inX_timesX1X_repeatXlimitX1X_inX_timesX1X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Repeat(__.Limit(1).In()).Times(1).Repeat(__.Limit(1).In()).Times(1).Values("name")}}, + {"g_VX5X_repeatXlimitX1X_in_aggregateXxXX_timesX2X_capXxX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Repeat(__.Limit(1).In().Aggregate("x")).Times(2).Cap("x")}}, + {"g_VX5X_repeatXrangeX0_1X_inX_timesX2X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Repeat(__.Range(0, 1).In()).Times(2).Values("name")}}, + {"g_VX5X_repeatXrangeX0_1X_inX_untilXloopsXisX2XXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Repeat(__.Range(0, 1).In()).Until(__.Loops().Is(2)).Values("name")}}, + {"g_VX5X_rangeX0_1X_in_rangeX0_1X_in_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Range(0, 1).In().Range(0, 1).In().Values("name")}}, + {"g_VX5X_repeatXrangeX0_1X_in_repeatXrangeX0_1X_inX_timesX1XX_timesX1X_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Repeat(__.Range(0, 1).In().Repeat(__.Range(0, 1).In()).Times(1)).Times(1).Values("name")}}, + {"g_VX5X_repeatXrangeX0_1X_in_aggregateXxXX_timesX2X_capXxX", new List, ITraversal>> {(g,p) =>g.V(p["vid5"]).Repeat(__.Range(0, 1).In().Aggregate("x")).Times(2).Cap("x")}}, + {"g_withoutStrategiesXEarlyLimitStrategyX_VX5X_repeatXlimitX1X_in_limitX1X_limitX1XX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(EarlyLimitStrategy)).V(p["vid5"]).Repeat(__.Limit(1).In().Limit(1).Limit(1)).Times(2)}}, + {"g_V_repeatXout_whereXhasXnameX_order_byXnameX_limitX1XXX_timesX2X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out().Where(__.Has("name").Order().By("name").Limit(1))).Times(2)}}, + {"g_V_out_whereXhasXnameX_order_byXnameX_limitX1XX_out_whereXhasXnameX_order_byXnameX_limitX1XX", new List, ITraversal>> {(g,p) =>g.V().Out().Where(__.Has("name").Order().By("name").Limit(1)).Out().Where(__.Has("name").Order().By("name").Limit(1))}}, + {"g_V_hasXnameXJAMXX_repeatXoutXfollowedByX_order_byXnameX_limitX2XX_timesX2X", new List, ITraversal>> {(g,p) =>g.V().Has("name", "JAM").Repeat(__.Out("followedBy").Order().By("name").Limit(2)).Times(2)}}, + {"g_V_hasXnameXJAMXX_outXfollowedByX_order_byXnameX_limitX2X_outXfollowedByX_order_byXnameX_limitX2X", new List, ITraversal>> {(g,p) =>g.V().Has("name", "JAM").Out("followedBy").Order().By("name").Limit(2).Out("followedBy").Order().By("name").Limit(2)}}, + {"g_V_hasXnameXDRUMSXX_repeatXinXfollowedByX_order_byXnameX_rangeX1_4XX_timesX2X", new List, ITraversal>> {(g,p) =>g.V().Has("name", "DRUMS").Repeat(__.In("followedBy").Order().By("name").Range(1, 4)).Times(2)}}, + {"g_V_hasXnameXDRUMSXX_inXfollowedByX_order_byXnameX_rangeX1_4X_inXfollowedByX_order_byXnameX_rangeX1_4X", new List, ITraversal>> {(g,p) =>g.V().Has("name", "DRUMS").In("followedBy").Order().By("name").Range(1, 4).In("followedBy").Order().By("name").Range(1, 4)}}, + {"g_V_chooseXvaluesXageX_isXlteX30XX_out_order_byXnameX_limitX1X_out_order_byXnameX_limitX2XX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Values("age").Is(P.Lte(30)), __.Out().Order().By("name").Limit(1), __.Out().Order().By("name").Limit(2))}}, + {"g_V_chooseXvaluesXageX_isXlteX30XX_localXout_order_byXnameX_limitX1XX_localXout_order_byXnameX_limitX2XXX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Values("age").Is(P.Lte(30)), __.Local(__.Out().Order().By("name").Limit(1)), __.Local(__.Out().Order().By("name").Limit(2)))}}, + {"g_V_hasXnameXHEY_BO_DIDDLEYXX_unionXoutXfollowedByX_order_byXnameX_limitX2X_outXsungByX_order_byXnameX_byXnameX_limitX1XX_unionXoutXfollowedByX_order_limitX2X_outXsungByX_order_byXnameX_limitX1XX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "HEY BO DIDDLEY").Union(__.Out("followedBy").Order().By("name").Limit(2), __.Out("sungBy").Order().By("name").Limit(1)).Union(__.Out("followedBy").Order().By("name").Limit(2), __.Out("sungBy").Order().By("name").Limit(1))}}, + {"g_V_hasXnameXHEY_BO_DIDDLEYXX_repeatXunionXoutXfollowedByX_order_byXnameX_limitX2X_outXsungByX_order_byXnameX_limitX1XXX_timesX2X", new List, ITraversal>> {(g,p) =>g.V().Has("name", "HEY BO DIDDLEY").Repeat(__.Union(__.Out("followedBy").Order().By("name").Limit(2), __.Out("sungBy").Order().By("name").Limit(1))).Times(2)}}, + {"g_V_sampleX1X_byXageX_byXT_idX", new List, ITraversal>> {(g,p) =>g.V().Sample(1).By("age").By(T.Id)}}, + {"g_E_sampleX1X", new List, ITraversal>> {(g,p) =>g.E().Sample(1)}}, + {"g_E_sampleX2X_byXweightX", new List, ITraversal>> {(g,p) =>g.E().Sample(2).By("weight")}}, + {"g_V_localXoutE_sampleX1X_byXweightXX", new List, ITraversal>> {(g,p) =>g.V().Local(__.OutE().Sample(1).By("weight"))}}, + {"g_withStrategiesXSeedStrategyX_V_group_byXlabelX_byXbothE_weight_order_sampleX2X_foldXunfold", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SeedStrategy(seed: 999999)).V().Group().By(T.Label).By(__.BothE().Values("weight").Order().Sample(2).Fold()).Unfold()}}, + {"g_withStrategiesXSeedStrategyX_V_group_byXlabelX_byXbothE_weight_order_fold_sampleXlocal_5XXunfold", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SeedStrategy(seed: 999999)).V().Group().By(T.Label).By(__.BothE().Values("weight").Order().Fold().Sample(Scope.Local, 5)).Unfold()}}, + {"g_withStrategiesXSeedStrategyX_V_order_byXlabel_descX_sampleX1X_byXageX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SeedStrategy(seed: 999999)).V().Order().By(T.Label, Order.Desc).Sample(1).By("age")}}, + {"g_VX1X_valuesXageX_sampleXlocal_5X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Sample(Scope.Local, 5)}}, + {"g_V_repeatXsampleX2XX_timesX2X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Sample(2)).Times(2)}}, + {"g_V_sampleX2X_sampleX2X", new List, ITraversal>> {(g,p) =>g.V().Sample(2).Sample(2)}}, + {"g_V3_repeatXout_order_byXperformancesX_sampleX2X_aggregateXxXX_untilXloops_isX2XX_capXxX_unfold", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).Repeat(__.Out().Order().By("performances").Sample(2).Aggregate("x")).Until(__.Loops().Is(2)).Cap("x").Unfold()}}, + {"g_V3_out_order_byXperformancesX_sampleX2X_aggregateXxX_out_order_byXperformancesX_sampleX2X_aggregateXxX_capXxX_unfold", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).Out().Order().By("performances").Sample(2).Aggregate("x").Out().Order().By("performances").Sample(2).Aggregate("x").Cap("x").Unfold()}}, + {"g_VX1X_outXcreatedX_inXcreatedX_simplePath", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("created").In("created").SimplePath()}}, + {"g_V_repeatXboth_simplePathX_timesX3X_path", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both().SimplePath()).Times(3).Path()}}, + {"g_V_asXaX_out_asXbX_out_asXcX_simplePath_byXlabelX_fromXbX_toXcX_path_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Out().As("c").SimplePath().By(T.Label).From("b").To("c").Path().By("name")}}, + {"g_injectX0X_V_both_coalesceXhasXname_markoX_both_constantX0XX_simplePath_path", new List, ITraversal>> {(g,p) =>g.Inject(0).V().Both().Coalesce(__.Has("name", "marko").Both(), __.Constant(0)).SimplePath().Path()}}, + {"g_V_both_asXaX_both_asXbX_simplePath_path_byXageX__fromXaX_toXbX", new List, ITraversal>> {(g,p) =>g.V().Both().As("a").Both().As("b").SimplePath().Path().By("age").From("a").To("b")}}, + {"g_V_valuesXnameX_order_tailXglobal_2X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order().Tail(Scope.Global, 2)}}, + {"g_V_valuesXnameX_order_tailX2X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order().Tail(2)}}, + {"g_V_valuesXnameX_order_tailX2varX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order().Tail(new GValue("xx1", (long) p["xx1"]))}}, + {"g_V_valuesXnameX_order_tail", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order().Tail()}}, + {"g_V_valuesXnameX_order_tailX7X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order().Tail(7)}}, + {"g_V_repeatXbothX_timesX3X_tailX7X", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both()).Times(3).Tail(7)}}, + {"g_V_repeatXin_outX_timesX3X_tailX7X_count", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.In().Out()).Times(3).Tail(7).Count()}}, + {"g_V_asXaX_out_asXaX_out_asXaX_selectXaX_byXunfold_valuesXnameX_foldX_tailXlocal_1X_unfold", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("a").Out().As("a").Select("a").By(__.Unfold().Values("name").Fold()).Tail(Scope.Local, 1).Unfold()}}, + {"g_V_asXaX_out_asXaX_out_asXaX_selectXaX_byXunfold_valuesXnameX_foldX_tailXlocalX_unfold", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("a").Out().As("a").Select("a").By(__.Unfold().Values("name").Fold()).Tail(Scope.Local).Unfold()}}, + {"g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_2X", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Out().As("c").Select("a", "b", "c").By("name").Tail(Scope.Local, 2)}}, + {"g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_2varX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Out().As("c").Select("a", "b", "c").By("name").Tail(Scope.Local, new GValue("xx1", (long) p["xx1"]))}}, + {"g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_1X", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Out().As("c").Select("a", "b", "c").By("name").Tail(Scope.Local, 1)}}, + {"g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocal_1X_unfold", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("a").Out().As("a").Select(Pop.Mixed, "a").By(__.Unfold().Values("name").Fold()).Tail(Scope.Local, 1).Unfold()}}, + {"g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocalX_unfold", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("a").Out().As("a").Select(Pop.Mixed, "a").By(__.Unfold().Values("name").Fold()).Tail(Scope.Local).Unfold()}}, + {"g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXlimitXlocal_0XX_tailXlocal_1X", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("a").Out().As("a").Select(Pop.Mixed, "a").By(__.Limit(Scope.Local, 0)).Tail(Scope.Local, 1)}}, + {"g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX_tailXlocal_2X", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("a").Out().As("a").Select(Pop.Mixed, "a").By(__.Unfold().Values("name").Fold()).Tail(Scope.Local, 2)}}, + {"g_VX1X_valuesXageX_tailXlocal_5X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Tail(Scope.Local, 50)}}, + {"g_injectXlistX1_2_3XX_tailXlocal_1X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3 }).Tail(Scope.Local, 1)}}, + {"g_VX1X_valueMapXnameX_tailXlocal_1X", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).ValueMap("name").Tail(Scope.Local, 1)}}, + {"g_injectX1_2_3X_tailXlocal_1X_unfold", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3 }).Tail(Scope.Local, 1).Unfold()}}, + {"g_injectX1_2_3_4_5_6X_tailXlocal_1X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3 }, new List { 4, 5, 6 }).Tail(Scope.Local, 1)}}, + {"g_injectX1_2_3_4_5X_tailXlocal_2X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3, 4, 5 }).Tail(Scope.Local, 2)}}, + {"g_V_valuesXnameX_isXtypeOfXGType_STRINGXX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Is(P.TypeOf(GType.String))}}, + {"g_V_valuesXnameX_isXtypeOfXjava_lang_StringXX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Is(P.TypeOf("String"))}}, + {"g_V_hasXname_typeOfXGType_STRINGXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Has("name", P.TypeOf(GType.String)).Values("name")}}, + {"g_V_orXhasXname_typeOfXGType_STRINGXX__hasXage_typeOfXGType_INTXXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Or(__.Has("name", P.TypeOf(GType.String)), __.Has("age", P.TypeOf(GType.Int))).Values("name")}}, + {"g_V_andXhasXname_typeOfXGType_STRINGXX__hasXage_typeOfXGType_INTXXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().And(__.Has("name", P.TypeOf(GType.String)), __.Has("age", P.TypeOf(GType.Int))).Values("name")}}, + {"g_V_notXhasXage_typeOfXGType_STRINGXXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Not(__.Has("age", P.TypeOf(GType.String))).Values("name")}}, + {"g_V_valuesXageX_isXnotXtypeOfXGType_STRINGXXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.Not(P.TypeOf(GType.String)))}}, + {"g_V_valuesXnameX_isXtypeOfXstringStringXX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Is(P.TypeOf("String"))}}, + {"g_V_orXvaluesXageX_isXtypeOfXGType_INTXX__valuesXnameX_isXtypeOfXGType_STRINGXXX_count", new List, ITraversal>> {(g,p) =>g.V().Or(__.Values("age").Is(P.TypeOf(GType.Int)), __.Values("name").Is(P.TypeOf(GType.String))).Count()}}, + {"g_V_whereXvaluesXnameX_isXtypeOfXGType_STRINGXXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Values("name").Is(P.TypeOf(GType.String))).Values("name")}}, + {"g_V_whereXvaluesXageX_isXtypeOfXGType_STRINGXXX_count", new List, ITraversal>> {(g,p) =>g.V().Where(__.Values("age").Is(P.TypeOf(GType.String))).Count()}}, + {"g_V_whereXnotXvaluesXageX_isXtypeOfXGType_STRINGXXXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Not(__.Values("age").Is(P.TypeOf(GType.String)))).Values("name")}}, + {"g_V_valuesXageX_isXtypeOfXGType_NULLXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Null))}}, + {"g_V_valuesXageX_isXtypeOfXGType_BOOLEANXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Boolean))}}, + {"g_V_valuesXageX_isXtypeOfXGType_CHARXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Char))}}, + {"g_V_valuesXageX_isXtypeOfXGType_BINARYXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Binary))}}, + {"g_V_valuesXageX_isXtypeOfXGType_UUIDXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.UUID))}}, + {"g_V_valuesXageX_isXtypeOfXGType_DATETIMEXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.DateTime))}}, + {"g_V_valuesXageX_isXtypeOfXGType_DURATIONXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Duration))}}, + {"g_V_valuesXageX_isXtypeOfXnon_registered_NameXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf("non-registered-Name"))}}, + {"g_injectXtrueX_isXtypeOfXGType_BOOLEANX", new List, ITraversal>> {(g,p) =>g.Inject(true).Is(P.TypeOf(GType.Boolean))}}, + {"g_V_path_isXtypeOfXGType_PATHXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").Path().Is(P.TypeOf(GType.Path))}}, + {"g_V_out_path_isXtypeOfXGType_PATHXX_count", new List, ITraversal>> {(g,p) =>g.V().Out().Path().Is(P.TypeOf(GType.Path)).Count()}}, + {"g_V_hasXname_markoX_out_out_path_isXtypeOfXGType_PATHXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").Out().Out().Path().Is(P.TypeOf(GType.Path))}}, + {"g_V_out_tree_isXtypeOfXGType_TREEXX_count", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").Out().Tree().Is(P.TypeOf(GType.Tree)).Count()}}, + {"g_V_whereXtree_isXtypeOfXGType_TREEXXX_values_name", new List, ITraversal>> {(g,p) =>g.V().Where(__.Tree().Is(P.TypeOf(GType.Tree))).Values("name")}}, + {"g_VX1X_outEXknowsX_subgraphXsgX_name_capXsgX_isXtypeOfXGType_GRAPHXX_count", new List, ITraversal>> {(g,p) =>g.V().OutE("knows").Subgraph("sg").Cap("sg").Is(P.TypeOf(GType.Graph)).Count()}}, + {"g_VX1X_outEXknowsX_subgraphXsgX_name_capXsgX_isX_notXtypeOfXGType_GRAPHXXX_count", new List, ITraversal>> {(g,p) =>g.V().OutE("knows").Subgraph("sg").Cap("sg").Is(P.Not(P.TypeOf(GType.Graph))).Count()}}, + {"g_V_valuesXageX_isXtypeOfXGType_PATHXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Path))}}, + {"g_V_valuesXageX_isXtypeOfXGType_TREEXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Tree))}}, + {"g_V_valuesXageX_isXtypeOfXGType_GRAPHXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.Graph))}}, + {"g_V_valuesXageX_isXtypeOfXGType_VPROPERTYXX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Is(P.TypeOf(GType.VProperty))}}, + {"g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_eqXbXX", new List, ITraversal>> {(g,p) =>g.V().Has("age").As("a").Out().In().Has("age").As("b").Select("a", "b").Where("a", P.Eq("b"))}}, + {"g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_neqXbXX", new List, ITraversal>> {(g,p) =>g.V().Has("age").As("a").Out().In().Has("age").As("b").Select("a", "b").Where("a", P.Neq("b"))}}, + {"g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXb_hasXname_markoXX", new List, ITraversal>> {(g,p) =>g.V().Has("age").As("a").Out().In().Has("age").As("b").Select("a", "b").Where(__.As("b").Has("name", "marko"))}}, + {"g_V_hasXageX_asXaX_out_in_hasXageX_asXbX_selectXa_bX_whereXa_outXknowsX_bX", new List, ITraversal>> {(g,p) =>g.V().Has("age").As("a").Out().In().Has("age").As("b").Select("a", "b").Where(__.As("a").Out("knows").As("b"))}}, + {"g_V_asXaX_outXcreatedX_whereXasXaX_name_isXjoshXX_inXcreatedX_name", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("created").Where(__.As("a").Values("name").Is("josh")).In("created").Values("name")}}, + {"g_withSideEffectXa_josh_peterX_VX1X_outXcreatedX_inXcreatedX_name_whereXwithinXaXX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", new List { "josh", "peter" }).V(p["vid1"]).Out("created").In("created").Values("name").Where(P.Within("a"))}}, + {"g_VX1X_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXa_neqXbXX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("created").In("created").As("b").Where("a", P.Neq("b")).Values("name")}}, + {"g_VX1X_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXasXbX_outXcreatedX_hasXname_rippleXX_valuesXage_nameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("created").In("created").As("b").Where(__.As("b").Out("created").Has("name", "ripple")).Values("age", "name")}}, + {"g_VX1X_asXaX_outXcreatedX_inXcreatedX_whereXeqXaXX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("created").In("created").Where(P.Eq("a")).Values("name")}}, + {"g_VX1X_asXaX_outXcreatedX_inXcreatedX_whereXneqXaXX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("created").In("created").Where(P.Neq("a")).Values("name")}}, + {"g_VX1X_out_aggregateXxX_out_whereXnotXwithinXaXXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Aggregate("x").Out().Where(P.Not(P.Within("x")))}}, + {"g_withSideEffectXa_g_VX2XX_VX1X_out_whereXneqXaXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Where(__.Id().Where(P.Neq("a")))}}, + {"g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.BothE("created").Where(P.Without("e")).Aggregate("e").OtherV()).Emit().Path()}}, + {"g_V_whereXnotXoutXcreatedXXX_name", new List, ITraversal>> {(g,p) =>g.V().Where(__.Not(__.Out("created"))).Values("name")}}, + {"g_V_asXaX_out_asXbX_whereXandXasXaX_outXknowsX_asXbX__orXasXbX_outXcreatedX_hasXname_rippleX__asXbX_inXknowsX_count_isXnotXeqX0XXXXX_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Where(__.And(__.As("a").Out("knows").As("b"), __.Or(__.As("b").Out("created").Has("name", "ripple"), __.As("b").In("knows").Count().Is(P.Not(P.Eq(0)))))).Select("a", "b")}}, + {"g_V_whereXoutXcreatedX_and_outXknowsX_or_inXknowsXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Out("created").And().Out("knows").Or().In("knows")).Values("name")}}, + {"g_V_asXaX_outXcreatedX_asXbX_whereXandXasXbX_in__notXasXaX_outXcreatedX_hasXname_rippleXXX_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("created").As("b").Where(__.And(__.As("b").In(), __.Not(__.As("a").Out("created").Has("name", "ripple")))).Select("a", "b")}}, + {"g_V_asXaX_outXcreatedX_asXbX_inXcreatedX_asXcX_bothXknowsX_bothXknowsX_asXdX_whereXc__notXeqXaX_orXeqXdXXXX_selectXa_b_c_dX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("created").As("b").In("created").As("c").Both("knows").Both("knows").As("d").Where("c", P.Not(P.Eq("a").Or(P.Eq("d")))).Select("a", "b", "c", "d")}}, + {"g_V_asXaX_out_asXbX_whereXin_count_isXeqX3XX_or_whereXoutXcreatedX_and_hasXlabel_personXXX_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Where(__.As("b").In().Count().Is(P.Eq(3)).Or().Where(__.As("b").Out("created").And().As("b").Has(T.Label, "person"))).Select("a", "b")}}, + {"g_V_asXaX_outXcreatedX_inXcreatedX_asXbX_whereXa_gtXbXX_byXageX_selectXa_bX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("created").In("created").As("b").Where("a", P.Gt("b")).By("age").Select("a", "b").By("name")}}, + {"g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_whereXa_gtXbX_orXeqXbXXX_byXageX_byXweightX_byXweightX_selectXa_cX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("a").OutE("created").As("b").InV().As("c").Where("a", P.Gt("b").Or(P.Eq("b"))).By("age").By("weight").By("weight").Select("a", "c").By("name")}}, + {"g_V_asXaX_outEXcreatedX_asXbX_inV_asXcX_inXcreatedX_asXdX_whereXa_ltXbX_orXgtXcXX_andXneqXdXXX_byXageX_byXweightX_byXinXcreatedX_valuesXageX_minX_selectXa_c_dX", new List, ITraversal>> {(g,p) =>g.V().As("a").OutE("created").As("b").InV().As("c").In("created").As("d").Where("a", P.Lt("b").Or(P.Gt("c")).And(P.Neq("d"))).By("age").By("weight").By(__.In("created").Values("age").Min()).Select("a", "c", "d").By("name")}}, + {"g_VX1X_asXaX_out_hasXageX_whereXgtXaXX_byXageX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out().Has("age").Where(P.Gt("a")).By("age").Values("name")}}, + {"g_VX3X_asXaX_in_out_asXbX_whereXa_eqXbXX_byXageX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid3"]).As("a").In().Out().As("b").Where("a", P.Eq("b")).By("age").Values("name")}}, + {"g_withStrategiesXProductiveByStrategyX_VX3X_asXaX_in_out_asXbX_whereXa_eqXbXX_byXageX_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V(p["vid3"]).As("a").In().Out().As("b").Where("a", P.Eq("b")).By("age").Values("name")}}, + {"g_V_asXnX_whereXorXhasLabelXsoftwareX_hasLabelXpersonXXX_selectXnX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("n").Where(__.Or(__.HasLabel("software"), __.HasLabel("person"))).Select("n").By("name")}}, + {"g_V_asXnX_whereXorXselectXnX_hasLabelXsoftwareX_selectXnX_hasLabelXpersonXXX_selectXnX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("n").Where(__.Or(__.Select("n").HasLabel("software"), __.Select("n").HasLabel("person"))).Select("n").By("name")}}, + {"g_V_hasLabelXpersonX_asXxX_whereXinEXknowsX_count_isXgteX1XXX_selectXxX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").As("x").Where(__.InE("knows").Count().Is(P.Gte(1))).Select("x")}}, + {"get_g_V_whereXage_isXgt_30XX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Values("age").Is(P.Gt(30)))}}, + {"g_V_whereXlabel_isXsoftwareXX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Label().Is("software"))}}, + {"g_V_whereXlabel_isXpersonXX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Label().Is("person"))}}, + {"g_withStrategiesXAdjacentToIncidentStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new AdjacentToIncidentStrategy()).V()}}, + {"g_withoutStrategiesXAdjacentToIncidentStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(AdjacentToIncidentStrategy)).V()}}, + {"g_withStrategiesXAdjacentToIncidentStrategyX_V_out_count", new List, ITraversal>> {(g,p) =>g.WithStrategies(new AdjacentToIncidentStrategy()).V().Out().Count()}}, + {"g_withStrategiesXAdjacentToIncidentStrategyX_V_whereXoutX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new AdjacentToIncidentStrategy()).V().Where(__.Out())}}, + {"g_withStrategiesXByModulatorOptimizationStrategyX_V_order_byXvaluesXnameXX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ByModulatorOptimizationStrategy()).V().Order().By(__.Values("name"))}}, + {"g_withoutStrategiesXByModulatorOptimizationStrategyX_V_order_byXvaluesXnameXX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ByModulatorOptimizationStrategy)).V().Order().By(__.Values("name"))}}, + {"g_withStrategiesXComputerFinalizationStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ComputerFinalizationStrategy()).V()}}, + {"g_withoutStrategiesXByModulatorOptimizationStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ComputerFinalizationStrategy)).V()}}, + {"g_withStrategiesXComputerVerificationStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ComputerVerificationStrategy()).V()}}, + {"g_withoutStrategiesXComputerVerificationStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ComputerVerificationStrategy)).V()}}, + {"g_withStrategiesXConnectiveStrategyStrategyX_V_hasXname_markoX_or_whereXinXknowsX_hasXname_markoXX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ConnectiveStrategy()).V().Has("name", "marko").Or().Where(__.In("knows").Has("name", "marko"))}}, + {"g_withoutStrategiesXConnectiveStrategyX_V_hasXname_markoX_or_whereXinXknowsX_hasXname_markoXX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ConnectiveStrategy)).V().Has("name", "marko").Or().Where(__.In("knows").Has("name", "marko"))}}, + {"g_withStrategiesXCountStrategyX_V_whereXoutE_count_isX0XX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new CountStrategy()).V().Where(__.OutE().Count().Is(0))}}, + {"g_withoutStrategiesXCountStrategyX_V_whereXoutE_count_isX0XX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(CountStrategy)).V().Where(__.OutE().Count().Is(0))}}, + {"g_withStrategiesXEarlyLimitStrategyX_V_out_order_byXnameX_valueMap_limitX3X_selectXnameX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new EarlyLimitStrategy()).V().Out().Order().By("name").ValueMap().Limit(3).Select("name")}}, + {"g_withoutStrategiesXEarlyLimitStrategyX_V_out_order_byXnameX_valueMap_limitX3X_selectXnameX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(EarlyLimitStrategy)).V().Out().Order().By("name").ValueMap().Limit(3).Select("name")}}, + {"g_withStrategiesXEdgeLabelVerificationStrategyXthrowException_true_logWarning_falseXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new EdgeLabelVerificationStrategy(throwException: true, logWarning: false)).V().Out()}}, + {"g_withStrategiesXEdgeLabelVerificationStrategyXthrowException_false_logWarning_falseXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new EdgeLabelVerificationStrategy(throwException: false, logWarning: false)).V().Out()}}, + {"g_withoutStrategiesXEdgeLabelVerificationStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(EdgeLabelVerificationStrategy)).V().Out()}}, + {"g_withStrategiesXElementIdStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ElementIdStrategy()).V()}}, + {"g_withoutStrategiesXElementIdStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ElementIdStrategy)).V()}}, + {"g_withStrategiesXFilterRankingStrategyX_V_out_order_dedup", new List, ITraversal>> {(g,p) =>g.WithStrategies(new FilterRankingStrategy()).V().Out().Order().Dedup()}}, + {"g_withoutStrategiesXFilterRankingStrategyX_V_out_order_dedup", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(FilterRankingStrategy)).V().Out().Order().Dedup()}}, + {"g_withStrategiesXGraphFilterStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new GraphFilterStrategy()).V()}}, + {"g_withoutStrategiesXGraphFilterStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(GraphFilterStrategy)).V()}}, + {"g_withStrategiesXHaltedTraverserStrategyXDetachedFactoryXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new HaltedTraverserStrategy(haltedTraverserFactory: "org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory")).V()}}, + {"g_withStrategiesXHaltedTraverserStrategyXReferenceFactoryXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new HaltedTraverserStrategy(haltedTraverserFactory: "org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceFactory")).V()}}, + {"g_withoutStrategiesXHaltedTraverserStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(HaltedTraverserStrategy)).V()}}, + {"g_withStrategiesXIdentityRemovalStrategyX_V_identity_out", new List, ITraversal>> {(g,p) =>g.WithStrategies(new IdentityRemovalStrategy()).V().Identity().Out()}}, + {"g_withoutStrategiesXIdentityRemovalStrategyX_V_identity_out", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(IdentityRemovalStrategy)).V().Identity().Out()}}, + {"g_withStrategiesXIncidentToAdjacentStrategyX_V_outE_inV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new IncidentToAdjacentStrategy()).V().OutE().InV()}}, + {"g_withoutStrategiesXIncidentToAdjacentStrategyX_V_outE_inV", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(IncidentToAdjacentStrategy)).V().OutE().InV()}}, + {"g_withStrategiesXInlineFilterStrategyX_V_filterXhasXname_markoXX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new InlineFilterStrategy()).V().Filter(__.Has("name", "marko"))}}, + {"g_withoutStrategiesXInlineFilterStrategyX_V_filterXhasXname_markoXX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(InlineFilterStrategy)).V().Filter(__.Has("name", "marko"))}}, + {"g_withStrategiesXLambdaRestrictionStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new LambdaRestrictionStrategy()).V()}}, + {"g_withoutStrategiesXLambdaRestrictionStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(LambdaRestrictionStrategy)).V()}}, + {"g_withStrategiesXLazyBarrierStrategyX_V_out_bothE_count", new List, ITraversal>> {(g,p) =>g.WithStrategies(new LazyBarrierStrategy()).V().Out().BothE().Count()}}, + {"g_withoutStrategiesXLazyBarrierStrategyX_V_out_bothE_count", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(LazyBarrierStrategy)).V().Out().BothE().Count()}}, + {"g_withStrategiesXMatchAlgorithmStrategyXmatchAlgorithm_CountMatchAlgorithmXX_V_matchXa_knows_b__a_created_cX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new MatchAlgorithmStrategy(matchAlgorithm: "org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep$CountMatchAlgorithm")).V().Match(__.As("a").Out("knows").As("b"), __.As("a").Out("created").As("c"))}}, + {"g_withStrategiesXMatchAlgorithmStrategyXmatchAlgorithm_GreedyMatchAlgorithmXX_V_matchXa_knows_b__a_created_cX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new MatchAlgorithmStrategy(matchAlgorithm: "org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep$GreedyMatchAlgorithm")).V().Match(__.As("a").Out("knows").As("b"), __.As("a").Out("created").As("c"))}}, + {"g_withoutStrategiesXMatchAlgorithmStrategyX_V_matchXa_knows_b__a_created_cX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(MatchAlgorithmStrategy)).V().Match(__.As("a").Out("knows").As("b"), __.As("a").Out("created").As("c"))}}, + {"g_withStrategiesXMatchPredicateStrategyX_V_matchXa_created_lop_b__b_0created_29_cX_whereXc_repeatXoutX_timesX2XX_selectXa_b_cX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new MatchPredicateStrategy()).V().Match(__.As("a").Out("created").Has("name", "lop").As("b"), __.As("b").In("created").Has("age", 29).As("c")).Where(__.As("c").Repeat(__.Out()).Times(2)).Select("a", "b", "c")}}, + {"g_withoutStrategiesXMatchPredicateStrategyX_V_matchXa_created_lop_b__b_0created_29_cX_whereXc_repeatXoutX_timesX2XX_selectXa_b_cX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(MatchPredicateStrategy)).V().Match(__.As("a").Out("created").Has("name", "lop").As("b"), __.As("b").In("created").Has("age", 29).As("c")).Where(__.As("c").Repeat(__.Out()).Times(2)).Select("a", "b", "c")}}, + {"g_withStrategiesXMessagePassingReductionStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new MessagePassingReductionStrategy()).V()}}, + {"g_withoutStrategiesXMessagePassingReductionStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(MessagePassingReductionStrategy)).V()}}, + {"g_V_coworker", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Filter(__.OutE("created")).Aggregate("p").As("p1").Values("name").As("p1n").Select("p").Unfold().Where(P.Neq("p1")).As("p2").Values("name").As("p2n").Select("p2").Out("created").Choose(__.In("created").Where(P.Eq("p1")), __.Values("name"), __.Constant(new List { })).Group().By(__.Select("p1n")).By(__.Group().By(__.Select("p2n")).By(__.Unfold().Fold().Project("numCoCreated", "coCreated").By(__.Count(Scope.Local)).By())).Unfold()}}, + {"g_V_coworker_with_midV", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Filter(__.OutE("created")).As("p1").V().HasLabel("person").Where(P.Neq("p1")).Filter(__.OutE("created")).As("p2").Map(__.Out("created").Where(__.In("created").As("p1")).Values("name").Fold()).Group().By(__.Select("p1").By("name")).By(__.Group().By(__.Select("p2").By("name")).By(__.Project("numCoCreated", "coCreated").By(__.Count(Scope.Local)).By())).Unfold()}}, + {"g_withStrategiesXOptionsStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new OptionsStrategy()).V()}}, + {"g_withStrategiesXOptionsStrategyXmyVar_myValueXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new OptionsStrategy(new Dictionary {{"myVar","myValue"},})).V()}}, + {"g_withoutStrategiesXOptionsStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(OptionsStrategy)).V()}}, + {"g_withStrategiesXOrderLimitStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new OrderLimitStrategy()).V()}}, + {"g_withoutStrategiesXOrderLimitStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(OrderLimitStrategy)).V()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").AddV((string) "person").Property("_partition", "b").Property("name", "bob"), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).V().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").AddV((string) "person").Property("_partition", "b").Property("name", "bob"), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a", "b" })).V().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").AddV((string) "person").Property("_partition", "b").Property("name", "bob"), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "c" })).V().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_bothE_weight", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).V().BothE().Values("weight")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_bothE_weight", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "b" })).V().BothE().Values("weight")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_bothE_dedup_weight", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a", "b" })).V().BothE().Dedup().Values("weight")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_bothE_weight", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "c" })).V().BothE().Values("weight")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_both_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).V().Both().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_both_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "b" })).V().Both().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_both_dedup_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a", "b" })).V().Both().Dedup().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_both_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "c" })).V().Both().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_V_out_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).V().Out().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_bXX_V_in_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "b" })).V().In().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_a_bXX_V_out_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a", "b" })).V().Out().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_cXX_V_out_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").As("a").AddV((string) "person").Property("_partition", "b").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("_partition", "a").Property("weight", 1.0d).AddE((string) "knows").From("b").To("a").Property("_partition", "b").Property("weight", 2.0d), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "c" })).V().Out().Values("name")}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_addVXpersonX_propertyXname_aliceX_addXselfX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).AddV((string) "person").Property("name", "alice").AddE((string) "self"), (g,p) =>g.V().Has("person", "name", "alice").Has("_partition", "a"), (g,p) =>g.V(), (g,p) =>g.E().Has("_partition", "a"), (g,p) =>g.E()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectXzeroX_addVXpersonX_propertyXname_aliceX_addXselfX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).Inject(0).AddV((string) "person").Property("name", "alice").AddE((string) "self"), (g,p) =>g.V().Has("person", "name", "alice").Has("_partition", "a"), (g,p) =>g.V(), (g,p) =>g.E().Has("_partition", "a"), (g,p) =>g.E()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "alice").Has("_partition", "a"), (g,p) =>g.V()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0X_mergeV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).Inject(0).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "alice").Has("_partition", "a"), (g,p) =>g.V()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeE", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").AddV((string) "person").Property("_partition", "a").Property("name", "bob"), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).MergeE(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.E().Has("knows", "_partition", "a"), (g,p) =>g.E()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0XmergeE", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").AddV((string) "person").Property("_partition", "a").Property("name", "bob"), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).Inject(0).MergeE(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.E().Has("knows", "_partition", "a"), (g,p) =>g.E()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeVXlabel_person_name_aliceX_optionXonMatch_name_bobX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "a").Property("name", "alice").AddV((string) "person").Property("_partition", "b").Property("name", "alice"), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V().Has("person", "name", "bob").Has("_partition", "a"), (g,p) =>g.V()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_mergeV_optionXonCreateX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "b").Property("name", "alice"), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V().Has("name", "alice").Has("age", 35).Has("_partition", "a"), (g,p) =>g.V()}}, + {"g_withStrategiesXPartitionStrategyXwrite_a_read_aXX_injectX0X__mergeV_optionXonCreateX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("_partition", "b").Property("name", "alice"), (g,p) =>g.WithStrategies(new PartitionStrategy(partitionKey: "_partition", writePartition: "a", readPartitions: new HashSet { "a" })).Inject(0).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V().Has("name", "alice").Has("age", 35).Has("_partition", "a"), (g,p) =>g.V()}}, + {"g_withStrategiesXPathProcessorStrategyX_V_asXaX_selectXaX_byXvaluesXnameXX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new PathProcessorStrategy()).V().As("a").Select("a").By(__.Values("name"))}}, + {"g_withoutStrategiesXPathProcessorStrategyX_V_asXaX_selectXaX_byXvaluesXnameXX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(PathProcessorStrategy)).V().As("a").Select("a").By(__.Values("name"))}}, + {"g_withStrategiesXPathRetractionStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new PathRetractionStrategy()).V()}}, + {"g_withoutStrategiesXPathRetractionStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(PathRetractionStrategy)).V()}}, + {"g_V_shortestpath", new List, ITraversal>> {(g,p) =>g.V().As("v").Both().As("v").Project("src", "tgt", "p").By(__.Select(Pop.First, "v")).By(__.Select(Pop.Last, "v")).By(__.Select(Pop.All, "v")).As("triple").Group("x").By(__.Select("src", "tgt")).By(__.Select("p").Fold()).Select("tgt").Barrier().Repeat(__.Both().As("v").Project("src", "tgt", "p").By(__.Select(Pop.First, "v")).By(__.Select(Pop.Last, "v")).By(__.Select(Pop.All, "v")).As("t").Filter(__.Select(Pop.All, "p").Count(Scope.Local).As("l").Select(Pop.Last, "t").Select(Pop.All, "p").Dedup(Scope.Local).Count(Scope.Local).Where(P.Eq("l"))).Where("src", P.Neq("tgt")).Select(Pop.Last, "t").Not(__.Select(Pop.All, "p").As("p").Count(Scope.Local).As("l").Select(Pop.All, "x").Unfold().Filter(__.Select(Column.Keys).Where(P.Eq("t")).By(__.Select("src", "tgt"))).Filter(__.Select(Column.Values).Unfold().Or(__.Count(Scope.Local).Where(P.Lt("l")), __.Where(P.Eq("p"))))).Barrier().Group("x").By(__.Select("src", "tgt")).By(__.Select(Pop.All, "p").Fold()).Select("tgt").Barrier()).Cap("x").Select(Column.Values).Unfold().Unfold().Map(__.Unfold().Values("name").Fold())}}, + {"g_V_playlist_paths", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SeedStrategy(seed: 99999)).V().Has("name", "Bob_Dylan").In("sungBy").As("a").Repeat(__.Out().Order().By(Order.Shuffle).SimplePath().From("a")).Until(__.Out("writtenBy").Has("name", "Johnny_Cash")).Limit(1).As("b").Repeat(__.Out().Order().By(Order.Shuffle).As("c").SimplePath().From("b").To("c")).Until(__.Out("sungBy").Has("name", "Grateful_Dead")).Limit(1).Path().From("a").Unfold().Project("song", "artists").By("name").By(__.Coalesce(__.Out("sungBy", "writtenBy").Dedup().Values("name"), __.Constant("Unknown")).Fold())}}, + {"g_withStrategiesXProductiveByStrategyX_V_group_byXageX_byXnameX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Group().By("age").By("name")}}, + {"g_withoutStrategiesXProductiveByStrategyX_V_group_byXageX_byXnameX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ProductiveByStrategy)).V().Group().By("age").By("name")}}, + {"g_withStrategiesXProfileStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProfileStrategy()).V()}}, + {"g_withoutStrategiesXProfileStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ProfileStrategy)).V()}}, + {"g_withStrategiesXReadOnlyStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V()}}, + {"g_withStrategiesXReadOnlyStrategyX_V_outXknowsX_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V().Out("knows").Values("name")}}, + {"g_withStrategiesXReadOnlyStrategyX_addVXpersonX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).AddV((string) "person")}}, + {"g_withStrategiesXReadOnlyStrategyX_addVXpersonX_fromXVX1XX_toXVX2XX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).AddE((string) "link").From(__.V(p["vid1"])).To(__.V(p["vid2"]))}}, + {"g_withStrategiesXReadOnlyStrategyX_V_addVXpersonX_fromXVX1XX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V().AddE((string) "link").From(__.V(p["vid1"]))}}, + {"g_withStrategiesXReadOnlyStrategyX_V_propertyXname_joshX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).V().Property("name", "josh")}}, + {"g_withStrategiesXReadOnlyStrategyX_E_propertyXweight_0X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReadOnlyStrategy()).E().Property("weight", 0)}}, + {"g_V_classic_recommendation", new List, ITraversal>> {(g,p) =>g.V().Has("name", "DARK STAR").As("a").Out("followedBy").Aggregate("stash").In("followedBy").Where(P.Neq("a").And(P.Not(P.Within("stash")))).GroupCount().Unfold().Project("x", "y", "z").By(__.Select(Column.Keys).Values("name")).By(__.Select(Column.Keys).Values("performances")).By(__.Select(Column.Values)).Order().By(__.Select("z"), Order.Desc).By(__.Select("y"), Order.Asc).Limit(5).Local(__.Aggregate("m")).Select("x")}}, + {"g_V_classic_recommendation_ranked", new List, ITraversal>> {(g,p) =>g.V().Has("name", "DARK STAR").As("a").Out("followedBy").Aggregate("stash").In("followedBy").Where(P.Neq("a").And(P.Not(P.Within("stash")))).GroupCount().Unfold().Project("x", "y", "z").By(__.Select(Column.Keys).Values("name")).By(__.Select(Column.Keys).Values("performances")).By(__.Select(Column.Values)).Order().By(__.Select("z"), Order.Desc).By(__.Select("y"), Order.Asc).Limit(5).Local(__.Aggregate("m"))}}, + {"g_withStrategiesXReferenceElementStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReferenceElementStrategy()).V()}}, + {"g_withoutStrategiesXReferenceElementStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ReferenceElementStrategy)).V()}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_repeatXoutX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Repeat(__.Out()).Times(2)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXoutX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Repeat(__.Out()).Times(2)}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_repeatXinX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Repeat(__.In()).Times(2)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXinX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Repeat(__.In()).Times(2)}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_repeatXout_hasXname_notStartingWithXzXXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Repeat(__.Out().Has("name", TextP.NotStartingWith("z"))).Times(2)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXout_hasXname_notStartingWithXzXXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Repeat(__.Out().Has("name", TextP.NotStartingWith("z"))).Times(2)}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_repeatXin_hasXage_gtX20XXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Repeat(__.In().Has("age", P.Gt(20))).Times(2)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXin_hasXage_gtX20XXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Repeat(__.In().Has("age", P.Gt(20))).Times(2)}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_repeatXboth_hasXage_ltX30XXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Repeat(__.Both().Has("age", P.Lt(30))).Times(2)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXboth_hasXage_ltX30XXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Repeat(__.Both().Has("age", P.Lt(30))).Times(2)}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_repeatXbothE_otherV_hasXage_ltX30XXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Repeat(__.BothE().OtherV().Has("age", P.Lt(30))).Times(2)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXbothE_otherV_hasXage_ltX30XXX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Repeat(__.BothE().OtherV().Has("age", P.Lt(30))).Times(2)}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_repeatXboth_limitX1XX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Repeat(__.Both().Limit(1)).Times(2)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXboth_limitX1XX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Repeat(__.Both().Limit(1)).Times(2)}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_order_byXnameX_repeatXboth_order_byXnameX_aggregateXxXX_timesX2X_limitX10X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Order().By("name").Repeat(__.Both().Order().By("name").Aggregate("x")).Times(2).Limit(10)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_order_byXnameX_repeatXboth_order_byXnameX_aggregateXxXX_timesX2X_limitX10X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Order().By("name").Repeat(__.Both().Order().By("name").Aggregate("x")).Times(2).Limit(10)}}, + {"g_withStrategiesXRepeatUnrollStrategyX_V_repeatXboth_sampleX1XX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithStrategies(new RepeatUnrollStrategy()).V().Repeat(__.Both().Sample(1)).Times(2)}}, + {"g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXboth_sampleX1XX_timesX2X", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(RepeatUnrollStrategy)).V().Repeat(__.Both().Sample(1)).Times(2)}}, + {"g_withStrategiesXReservedKeysVerificationStrategyXthrowException_trueXX_addVXpersonX_propertyXid_123X_propertyXname_markoX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReservedKeysVerificationStrategy(throwException: true)).AddV((string) "person").Property("id", 123).Property("name", "marko")}}, + {"g_withStrategiesXReservedKeysVerificationStrategyXthrowException_trueXX_addVXpersonX_propertyXage_29X_propertyXname_markoX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ReservedKeysVerificationStrategy(throwException: true, keys: new HashSet { "age" })).AddV((string) "person").Property("age", 29).Property("name", "marko")}}, + {"g_withoutStrategiesXReservedKeysVerificationStrategyX_addVXpersonX_propertyXid_123X_propertyXname_markoX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(ReservedKeysVerificationStrategy)).AddV((string) "person").Property("id", 123).Property("name", "marko").Values()}}, + {"g_withoutStrategiesXSeedStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(SeedStrategy)).V()}}, + {"g_withStrategiesXStandardVerificationStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new StandardVerificationStrategy()).V()}}, + {"g_withoutStrategiesXStandardVerificationStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(StandardVerificationStrategy)).V()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).V()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_E", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).E()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_outE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).V(p["vid4"]).OutE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_inE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).V(p["vid4"]).InE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_out", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).V(p["vid4"]).Out()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_in", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).V(p["vid4"]).In()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_both", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).V(p["vid4"]).Both()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_bothE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).V(p["vid4"]).BothE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_VX4X_localXbothE_limitX1XX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).V(p["vid4"]).Local(__.BothE().Limit(1))}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_EX11X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).E(p["eid11"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphAXX_EX12X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")))).E(p["eid12"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_E", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).E()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_outE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid1"]).OutE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_out", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid1"]).Out()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX1X_outXcreatedX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid1"]).Out("knows")}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outXcreatedX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Out("created")}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).OutE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_out", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Out()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_bothE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).BothE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_both", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Both()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphBXX_VX4X_outV_outE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Or(__.Has("weight", 1.0).HasLabel("knows"), __.Has("weight", 0.4).HasLabel("created").OutV().Has("name", "marko"), __.Has("weight", 1.0).HasLabel("created")))).E(p["eid8"]).OutV().OutE()}}, + {"g_withStrategiesXSubgraphStrategyXvertices_inXknowsX_hasXname_markoXXX_V_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.In("knows").Has("name", "marko"))).V().Values("name")}}, + {"g_withStrategiesXSubgraphStrategyXvertices_in_hasXname_markoXXX_V_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.In().Has("name", "marko"))).V().Values("name")}}, + {"g_withStrategiesXSubgraphStrategyXvertices_inXknowsX_whereXoutXcreatedX_hasXname_lopXXXX_V_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.In("knows").Where(__.Out("created").Has("name", "lop")))).V().Values("name")}}, + {"g_withStrategiesXSubgraphStrategyXvertices_in_hasXname_markoX_outXcreatedX_hasXname_lopXXXX_V_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.In().Where(__.Has("name", "marko").Out("created").Has("name", "lop")))).V().Values("name")}}, + {"g_withStrategiesXSubgraphStrategyXvertices_orXboth_hasXname_markoX_hasXname_markoXXXX_V_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Or(__.Both().Has("name", "marko"), __.Has("name", "marko")))).V().Where(__.BothE().Count().Is(P.Neq(0))).Values("name")}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_E", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_outE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).OutE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_inE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).InE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_out", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Out()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_in", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).In()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_both", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Both()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_bothE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).BothE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_VX4X_localXbothE_limitX1XX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Local(__.BothE().Limit(1))}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX11X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E(p["eid11"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX12X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E(p["eid12"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphCXX_EX9X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E(p["eid9"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXvertices_hasXname_withinXripple_josh_markoXXX_V_asXaX_out_in_asXbX_dedupXa_bX_name", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertices: __.Has("name", P.Within("ripple", "josh", "marko")))).V().As("a").Out().In().As("b").Dedup("a", "b").Values("name")}}, + {"g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_propertiesXlocationX_value", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertexProperties: __.Has("startTime", P.Gt(2005)))).V().Properties("location").Value()}}, + {"g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_valuesXlocationX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertexProperties: __.Has("startTime", P.Gt(2005)))).V().Values("location")}}, + {"g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_asXaX_propertiesXlocationX_asXbX_selectXaX_outE_properties_selectXbX_value_dedup", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertexProperties: __.Has("startTime", P.Gt(2005)))).V().As("a").Properties("location").As("b").Select("a").OutE().Properties().Select("b").Value().Dedup()}}, + {"g_withStrategiesXSubgraphStrategyXvertexProperties_hasXstartTime_gtX2005XXXX_V_asXaX_valuesXlocationX_asXbX_selectXaX_outE_properties_selectXbX_dedup", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertexProperties: __.Has("startTime", P.Gt(2005)))).V().As("a").Values("location").As("b").Select("a").OutE().Properties().Select("b").Dedup()}}, + {"g_withStrategiesXSubgraphStrategyXvertices_hasXname_neqXstephenXX_vertexProperties_hasXstartTime_gtX2005XXXX_V_propertiesXlocationX_value", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertexProperties: __.Has("startTime", P.Gt(2005)), vertices: __.Has("name", P.Neq("stephen")))).V().Properties("location").Value()}}, + {"g_withStrategiesXSubgraphStrategyXvertices_hasXname_neqXstephenXX_vertexProperties_hasXstartTime_gtX2005XXXX_V_valuesXlocationX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(vertexProperties: __.Has("startTime", P.Gt(2005)), vertices: __.Has("name", P.Neq("stephen")))).V().Values("location")}}, + {"g_withStrategiesXSubgraphStrategyXedges_hasLabelXusesX_hasXskill_5XXX_V_outE_valueMap_selectXvaluesX_unfold", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.HasLabel("uses").Has("skill", 5))).V().OutE().ValueMap().Select(Column.Values).Unfold()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_E", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E()}}, + {"g_withStrategiesXSubgraphStrategyXcheckAdjacentVertices_subgraphDXX_E", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: true, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_outE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).OutE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_inE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).InE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_out", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Out()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_in", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).In()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_both", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Both()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_bothE", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).BothE()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_VX4X_localXbothE_limitX1XX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).V(p["vid4"]).Local(__.BothE().Limit(1))}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX11X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E(p["eid11"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX12X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E(p["eid12"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXsubgraphDXX_EX9X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: false, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E(p["eid9"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXcheckAdjacentVertices_subgraphDXX_EX9X_bothV", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(checkAdjacentVertices: true, vertices: __.Has("name", P.Within("josh", "lop", "ripple")), edges: __.Or(__.Has("weight", 0.4).HasLabel("created"), __.Has("weight", 1.0).HasLabel("created")))).E(p["eid9"]).BothV()}}, + {"g_withStrategiesXSubgraphStrategyXuseMapStepsInFilterX_E", new List, ITraversal>> {(g,p) =>g.WithStrategies(new SubgraphStrategy(edges: __.Label().Is(P.Eq("created")), vertices: __.Values("name").Is(P.Within("lop", "josh")), checkAdjacentVertices: true)).E()}}, + {"g_withStrategiesXVertexProgramRestrictionStrategyX_withoutStrategiesXVertexProgramStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new VertexProgramRestrictionStrategy()).WithoutStrategies(typeof(VertexProgramStrategy)).V()}}, + {"g_withStrategiesXVertexProgramRestrictionStrategy_VertexProgramStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new VertexProgramRestrictionStrategy(), new VertexProgramStrategy()).V()}}, + {"g_withoutStrategiesXVertexProgramRestrictionStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(VertexProgramRestrictionStrategy)).WithStrategies(new VertexProgramStrategy()).V()}}, + {"g_withStrategiesXVertexProgramStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithStrategies(new VertexProgramStrategy()).V()}}, + {"g_withoutStrategiesXVertexProgramStrategyX_V", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(VertexProgramStrategy)).V()}}, + {"g_VX1X_asXaX_outXcreatedX_addEXcreatedByX_toXaX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V(p["vid1"]).As("a").Out("created").AddE((string) "createdBy").To("a"), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).InE()}}, + {"g_VX1X_asXaX_outXcreatedX_addEXcreatedByX_toXaX_propertyXweight_2X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V(p["vid1"]).As("a").Out("created").AddE((string) "createdBy").To("a").Property("weight", 2.0d), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).BothE(), (g,p) =>g.V(p["vid1"]).InE().Has("weight", 2.0d)}}, + {"g_V_outE_propertyXweight_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().OutE().Property("weight", null), (g,p) =>g.E().Properties("weight")}}, + {"g_V_aggregateXxX_asXaX_selectXxX_unfold_addEXexistsWithX_toXaX_propertyXtime_nowX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Aggregate("x").As("a").Select("x").Unfold().AddE((string) "existsWith").To("a").Property("time", "now"), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).BothE(), (g,p) =>g.V(p["vid1"]).InE("existsWith"), (g,p) =>g.V(p["vid1"]).OutE("existsWith"), (g,p) =>g.V(p["vid1"]).BothE("existsWith").Has("time", "now"), (g,p) =>g.V(p["vid2"]).BothE(), (g,p) =>g.V(p["vid2"]).InE("existsWith"), (g,p) =>g.V(p["vid2"]).OutE("existsWith"), (g,p) =>g.V(p["vid2"]).BothE("existsWith").Has("time", "now"), (g,p) =>g.V(p["vid3"]).BothE(), (g,p) =>g.V(p["vid3"]).InE("existsWith"), (g,p) =>g.V(p["vid3"]).OutE("existsWith"), (g,p) =>g.V(p["vid3"]).BothE("existsWith").Has("time", "now"), (g,p) =>g.V(p["vid4"]).BothE(), (g,p) =>g.V(p["vid4"]).InE("existsWith"), (g,p) =>g.V(p["vid4"]).OutE("existsWith"), (g,p) =>g.V(p["vid4"]).BothE("existsWith").Has("time", "now"), (g,p) =>g.V(p["vid5"]).BothE(), (g,p) =>g.V(p["vid5"]).InE("existsWith"), (g,p) =>g.V(p["vid5"]).OutE("existsWith"), (g,p) =>g.V(p["vid5"]).BothE("existsWith").Has("time", "now"), (g,p) =>g.V(p["vid6"]).BothE(), (g,p) =>g.V(p["vid6"]).InE("existsWith"), (g,p) =>g.V(p["vid6"]).OutE("existsWith"), (g,p) =>g.V(p["vid6"]).BothE("existsWith").Has("time", "now")}}, + {"g_V_asXaX_outXcreatedX_inXcreatedX_whereXneqXaXX_asXbX_addEXcodeveloperX_fromXaX_toXbX_propertyXyear_2009X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().As("a").Out("created").In("created").Where(P.Neq("a")).As("b").AddE((string) "codeveloper").From("a").To("b").Property("year", 2009), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).BothE(), (g,p) =>g.V(p["vid1"]).InE("codeveloper"), (g,p) =>g.V(p["vid1"]).OutE("codeveloper"), (g,p) =>g.V(p["vid1"]).BothE("codeveloper").Has("year", 2009), (g,p) =>g.V(p["vid2"]).BothE(), (g,p) =>g.V(p["vid4"]).BothE(), (g,p) =>g.V(p["vid4"]).InE("codeveloper"), (g,p) =>g.V(p["vid4"]).OutE("codeveloper"), (g,p) =>g.V(p["vid4"]).BothE("codeveloper").Has("year", 2009), (g,p) =>g.V(p["vid6"]).BothE(), (g,p) =>g.V(p["vid6"]).InE("codeveloper"), (g,p) =>g.V(p["vid6"]).OutE("codeveloper"), (g,p) =>g.V(p["vid6"]).BothE("codeveloper").Has("year", 2009)}}, + {"g_V_asXaX_inXcreatedX_addEXcreatedByX_fromXaX_propertyXyear_2009X_propertyXacl_publicX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().As("a").In("created").AddE((string) "createdBy").From("a").Property("year", 2009).Property("acl", "public"), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).BothE(), (g,p) =>g.V(p["vid1"]).InE("createdBy"), (g,p) =>g.V(p["vid1"]).OutE("createdBy"), (g,p) =>g.V(p["vid1"]).BothE("createdBy").Has("year", 2009).Has("acl", "public"), (g,p) =>g.V(p["vid2"]).BothE(), (g,p) =>g.V(p["vid3"]).BothE(), (g,p) =>g.V(p["vid3"]).InE("createdBy"), (g,p) =>g.V(p["vid3"]).OutE("createdBy"), (g,p) =>g.V(p["vid3"]).BothE("createdBy").Has("year", 2009).Has("acl", "public"), (g,p) =>g.V(p["vid4"]).BothE(), (g,p) =>g.V(p["vid4"]).InE("createdBy"), (g,p) =>g.V(p["vid4"]).OutE("createdBy"), (g,p) =>g.V(p["vid4"]).BothE("createdBy").Has("year", 2009).Has("acl", "public"), (g,p) =>g.V(p["vid5"]).BothE(), (g,p) =>g.V(p["vid5"]).InE("createdBy"), (g,p) =>g.V(p["vid5"]).OutE("createdBy"), (g,p) =>g.V(p["vid5"]).BothE("createdBy").Has("year", 2009).Has("acl", "public"), (g,p) =>g.V(p["vid6"]).BothE(), (g,p) =>g.V(p["vid6"]).InE("createdBy"), (g,p) =>g.V(p["vid6"]).OutE("createdBy"), (g,p) =>g.V(p["vid6"]).BothE("createdBy").Has("year", 2009).Has("acl", "public")}}, + {"g_withSideEffectXb_bX_VXaX_addEXknowsX_toXbX_propertyXweight_0_5X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V(p["vid1"]).AddE((string) "knows").To("b").Property("weight", 0.5d), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).BothE(), (g,p) =>g.V(p["vid1"]).InE("knows"), (g,p) =>g.V(p["vid1"]).OutE("knows"), (g,p) =>g.V(p["vid1"]).BothE("knows").Has("weight", 0.5), (g,p) =>g.V(p["vid6"]).BothE(), (g,p) =>g.V(p["vid6"]).InE("knows"), (g,p) =>g.V(p["vid6"]).OutE("knows"), (g,p) =>g.V(p["vid6"]).BothE("knows").Has("weight", 0.5)}}, + {"g_addV_asXfirstX_repeatXaddEXnextX_toXaddVX_inVX_timesX5X_addEXnextX_toXselectXfirstXX", new List, ITraversal>> {(g,p) =>g.AddV().As("first").Repeat(__.AddE((string) "next").To(__.AddV()).InV()).Times(5).AddE((string) "next").To(__.Select("first")), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("next"), (g,p) =>g.V().Limit(1).BothE(), (g,p) =>g.V().Limit(1).InE(), (g,p) =>g.V().Limit(1).OutE()}}, + {"g_V_hasXname_markoX_asXaX_outEXcreatedX_asXbX_inV_addEXselectXbX_labelX_toXaX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Has("name", "marko").As("a").OutE("created").As("b").InV().AddE(__.Select("b").Label()).To("a"), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).BothE(), (g,p) =>g.V(p["vid1"]).InE("created"), (g,p) =>g.V(p["vid1"]).In("created").Has("name", "lop"), (g,p) =>g.V(p["vid1"]).OutE("created")}}, + {"g_addEXV_outE_label_groupCount_orderXlocalX_byXvalues_descX_selectXkeysX_unfold_limitX1XX_fromXV_hasXname_vadasXX_toXV_hasXname_lopXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddE(__.V().OutE().Label().GroupCount().Order(Scope.Local).By(Column.Values, Order.Desc).Select(Column.Keys).Unfold().Limit(1)).From(__.V().Has("name", "vadas")).To(__.V().Has("name", "lop")), (g,p) =>g.E(), (g,p) =>g.V(p["vid2"]).BothE(), (g,p) =>g.V(p["vid2"]).InE("knows"), (g,p) =>g.V(p["vid2"]).OutE("created"), (g,p) =>g.V(p["vid2"]).Out("created").Has("name", "lop")}}, + {"g_addEXknowsX_fromXVXvid1XX_toXVXvid6XX_propertyXweight_0_1X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddE((string) "knows").From(__.V(p["vid1"])).To(__.V(p["vid6"])).Property("weight", p["xx1"]), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).OutE("knows"), (g,p) =>g.V(p["vid1"]).Out("knows").Has("name", "peter")}}, + {"g_addEXknowsvarX_fromXVXvid1XX_toXVXvid6XX_propertyXweight_0_1X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddE(new GValue("xx1", (string) p["xx1"])).From(__.V(p["vid1"])).To(__.V(p["vid6"])).Property("weight", p["xx2"]), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).OutE("knows"), (g,p) =>g.V(p["vid1"]).Out("knows").Has("name", "peter")}}, + {"g_VXaX_addEXknowsX_toXbX_propertyXweight_0_1X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V(p["vid1"]).AddE((string) "knows").To(__.V(p["vid6"])).Property("weight", p["xx1"]), (g,p) =>g.E(), (g,p) =>g.V(p["vid1"]).OutE("knows"), (g,p) =>g.V(p["vid1"]).Out("knows").Has("name", "peter")}}, + {"g_addEXknowsXpropertyXweight_nullXfromXV_hasXname_markoXX_toXV_hasXname_vadasXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.AddE((string) "knows").Property("weight", null).From(__.V().Has("name", "marko")).To(__.V().Has("name", "vadas")), (g,p) =>g.E().Has("knows", "weight", (object) null)}}, + {"g_addEXknowsvarXpropertyXweight_nullXfromXV_hasXname_markoXX_toXV_hasXname_vadasXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.AddE(new GValue("xx1", (string) p["xx1"])).Property("weight", null).From(__.V().Has("name", "marko")).To(__.V().Has("name", "vadas")), (g,p) =>g.E().Has("knows", "weight", (object) null)}}, + {"g_unionXaddEXknowsvarXpropertyXweight_nullXfromXV_hasXname_markoXX_toXV_hasXname_vadasXXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.Union(__.AddE(new GValue("xx1", (string) p["xx1"])).Property("weight", 1).From(__.V().Has("name", "marko")).To(__.V().Has("name", "vadas"))), (g,p) =>g.E().Has("knows", "weight", 1)}}, + {"g_addEXedgeX_fromXV_hasXname_markoXX_toXV_hasXname_vadasXX_propertyXweight_0_5X_withXkey_valueX_valuesXweight_keyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.AddE((string) "edge").From(__.V().Has("name", "marko")).To(__.V().Has("name", "vadas")).Property("weight", 0.5).With("key", "value").Values("weight", "key")}}, + {"g_addEXknowsX_fromXV_hasXname_markoXX_toXV_hasXname_vadasXX_propertyXweight_0_5X_addEXknowsX_fromXV_hasXname_markoXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.AddE((string) "knows").From(__.V().Has("name", "marko")).To(__.V().Has("name", "vadas")).Property("weight", 0.5).AddE((string) "knows").From(__.V().Has("name", "marko"))}}, + {"g_VX1X_addVXanimalX_propertyXage_selectXaX_byXageXX_propertyXname_puppyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V(p["vid1"]).As("a").AddV((string) "animal").Property("age", __.Select("a").By("age")).Property("name", "puppy"), (g,p) =>g.V().Has("animal", "age", 29)}}, + {"g_V_addVXanimalX_propertyXage_0X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().AddV((string) "animal").Property("age", 0), (g,p) =>g.V().Has("animal", "age", 0)}}, + {"g_V_addVXanimalvarX_propertyXage_0varX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().AddV(new GValue("xx1", (string) p["xx1"])).Property("age", p["xx2"]), (g,p) =>g.V().Has("animal", "age", 0)}}, + {"g_addVXpersonX_propertyXname_stephenX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddV((string) "person").Property("name", "stephen"), (g,p) =>g.V().Has("person", "name", "stephen")}}, + {"g_addVXpersonvarX_propertyXname_stephenvarX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddV(new GValue("xx1", (string) p["xx1"])).Property("name", p["xx2"]), (g,p) =>g.V().Has("person", "name", "stephen")}}, + {"g_V_hasLabelXpersonX_propertyXname_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().HasLabel("person").Property(Cardinality.Single, "name", (object) null), (g,p) =>g.V().Properties("name")}}, + {"g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenmX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddV((string) "person").Property(Cardinality.Single, "name", "stephen").Property(Cardinality.Single, "name", "stephenm"), (g,p) =>g.V().Has("person", "name", "stephen"), (g,p) =>g.V().Has("person", "name", "stephenm")}}, + {"get_g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenm_since_2010X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddV((string) "person").Property(Cardinality.Single, "name", "stephen").Property(Cardinality.Single, "name", "stephenm", "since", 2010), (g,p) =>g.V().Has("person", "name", "stephen"), (g,p) =>g.V().Has("person", "name", "stephenm"), (g,p) =>g.V().Has("person", "name", "stephenm").Properties("name").Has("since", 2010)}}, + {"g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Has("name", "marko").Property("friendWeight", __.OutE("knows").Values("weight").Sum(), "acl", "private"), (g,p) =>g.V().Has("person", "name", "marko").Has("friendWeight", 1.5), (g,p) =>g.V().Has("person", "name", "marko").Properties("friendWeight").Has("acl", "private"), (g,p) =>g.V().Has("person", "name", "marko").Properties("friendWeight").Count()}}, + {"g_addVXanimalX_propertyXname_mateoX_propertyXname_gateoX_propertyXname_cateoX_propertyXage_5X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddV((string) "animal").Property("name", "mateo").Property("name", "gateo").Property("name", "cateo").Property("age", 5), (g,p) =>g.V().HasLabel("animal").Has("name", "mateo").Has("name", "gateo").Has("name", "cateo").Has("age", 5)}}, + {"g_withSideEffectXa_markoX_addV_propertyXname_selectXaXX_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.WithSideEffect("a", "marko").AddV().Property("name", __.Select("a")).Values("name"), (g,p) =>g.V().Has("name", "marko")}}, + {"g_addVXpersonX_propertyXsingle_name_stephenX_propertyXsingle_name_stephenm_since_2010X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddV((string) "person").Property(Cardinality.Single, "name", "stephen").Property(Cardinality.Single, "name", "stephenm", "since", 2010), (g,p) =>g.V().Has("name", "stephen"), (g,p) =>g.V().Has("name", "stephenm"), (g,p) =>g.V().Has("name", "stephenm").Properties("name").Has("since", 2010)}}, + {"g_V_addVXanimalX_propertyXname_valuesXnameXX_propertyXname_an_animalX_propertyXvaluesXnameX_labelX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().AddV((string) "animal").Property("name", __.Values("name")).Property("name", "an animal").Property(__.Values("name"), __.Label()), (g,p) =>g.V().HasLabel("animal").Has("name", "marko").Has("name", "an animal").Has("marko", "person"), (g,p) =>g.V().HasLabel("animal").Has("name", "vadas").Has("name", "an animal").Has("vadas", "person"), (g,p) =>g.V().HasLabel("animal").Has("name", "lop").Has("name", "an animal").Has("lop", "software"), (g,p) =>g.V().HasLabel("animal").Has("name", "josh").Has("name", "an animal").Has("josh", "person"), (g,p) =>g.V().HasLabel("animal").Has("name", "ripple").Has("name", "an animal").Has("ripple", "software"), (g,p) =>g.V().HasLabel("animal").Has("name", "peter").Has("name", "an animal").Has("peter", "person")}}, + {"g_withSideEffectXa_testX_V_hasLabelXsoftwareX_propertyXtemp_selectXaXX_valueMapXname_tempX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.WithSideEffect("a", "test").V().HasLabel("software").Property("temp", __.Select("a")).ValueMap("name", "temp")}}, + {"g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.WithSideEffect("a", "name").AddV().Property(__.Select("a"), "marko").Values("name"), (g,p) =>g.V().Has("name", "marko")}}, + {"g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMap_withXtokensX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().As("a").Has("name", "marko").Out("created").As("b").AddV(__.Select("a").Label()).Property("test", __.Select("b").Label()).ValueMap().With(WithOptions.Tokens), (g,p) =>g.V().Has("person", "test", "software")}}, + {"g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddV(__.V().Has("name", "marko").Properties("name").Key()).Label()}}, + {"g_addV_propertyXlabel_personX", new List, ITraversal>> {(g,p) =>g.AddV().Property(T.Label, "person"), (g,p) =>g.V().HasLabel("person")}}, + {"g_addV_propertyXlabel_personvarX", new List, ITraversal>> {(g,p) =>g.AddV().Property(T.Label, p["xx1"]), (g,p) =>g.V().HasLabel("person")}}, + {"g_addV_propertyXid_1X", new List, ITraversal>> {(g,p) =>g.AddV().Property(T.Id, 1), (g,p) =>g.V().HasId("1")}}, + {"g_addV_propertyXidvar_1varX", new List, ITraversal>> {(g,p) =>g.AddV().Property(T.Id, p["xx1"]), (g,p) =>g.V().HasId("1")}}, + {"g_addV_propertyXmapX", new List, ITraversal>> {(g,p) =>g.AddV().Property(new Dictionary {{ "name", "foo" }, { "age", 42 }}), (g,p) =>g.V().Has("name", "foo")}}, + {"g_addV_propertyXsingle_mapX", new List, ITraversal>> {(g,p) =>g.AddV().Property(Cardinality.Single, new Dictionary {{ "name", "foo" }, { "age", 42 }}), (g,p) =>g.V().Has("name", "foo")}}, + {"g_V_hasXname_fooX_propertyXname_setXbarX_age_43X", new List, ITraversal>> {(g,p) =>g.AddV().Property(Cardinality.Single, "name", "foo").Property("age", 42), (g,p) =>g.V().Has("name", "foo").Property(new Dictionary {{ "name", CardinalityValue.Set("bar") }, { "age", 43 }}), (g,p) =>g.V().Has("name", "foo"), (g,p) =>g.V().Has("name", "bar"), (g,p) =>g.V().Has("age", 43), (g,p) =>g.V().Has("age", 42)}}, + {"g_V_hasXname_fooX_propertyXset_name_bar_age_singleX43XX", new List, ITraversal>> {(g,p) =>g.AddV().Property(Cardinality.Single, "name", "foo").Property("age", 42), (g,p) =>g.V().Has("name", "foo").Property(Cardinality.Set, new Dictionary {{ "name", "bar" }, { "age", CardinalityValue.Single(43) }}), (g,p) =>g.V().Has("name", "foo"), (g,p) =>g.V().Has("name", "bar"), (g,p) =>g.V().Has("age", 43), (g,p) =>g.V().Has("age", 42)}}, + {"g_addV_propertyXnullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property(null), (g,p) =>g.V().HasLabel("person").Values()}}, + {"g_addV_propertyXemptyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property(new Dictionary {}), (g,p) =>g.V().HasLabel("person").Values()}}, + {"g_addV_propertyXset_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "foo").Property(Cardinality.Set, null), (g,p) =>g.V().HasLabel("foo").Values()}}, + {"g_addV_propertyXset_emptyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "foo").Property(Cardinality.Set, new Dictionary {}), (g,p) =>g.V().HasLabel("person").Values()}}, + {"g_addVXpersonX_propertyXname_joshX_propertyXage_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "josh").Property("age", null), (g,p) =>g.V().Has("person", "age", (object) null)}}, + {"g_addVXpersonX_propertyXname_markoX_propertyXfriendWeight_null_acl_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("friendWeight", null, "acl", null), (g,p) =>g.V().Has("person", "name", "marko").Has("friendWeight", (object) null), (g,p) =>g.V().Has("person", "name", "marko").Properties("friendWeight").Has("acl", (object) null), (g,p) =>g.V().Has("person", "name", "marko").Properties("friendWeight").Count()}}, + {"g_V_hasXperson_name_aliceX_propertyXsingle_age_unionXage_constantX1XX_sumX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").Property(Cardinality.Single, "age", 50), (g,p) =>g.V().Has("person", "name", "alice").Property("age", __.Union(__.Values("age"), __.Constant(1)).Sum()), (g,p) =>g.V().Has("person", "age", 50), (g,p) =>g.V().Has("person", "age", 51)}}, + {"g_V_limitX3X_addVXsoftwareX_aggregateXa1X_byXlabelX_aggregateXa2X_byXlabelX_capXa1_a2X_selectXa_bX_byXunfoldX_foldX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Limit(3).AddV((string) "software").Aggregate("a1").By(T.Label).Aggregate("a2").By(T.Label).Cap("a1", "a2").Select("a1", "a2").By(__.Unfold().Fold())}}, + {"g_addV_propertyXname_markoX_withXkey_valueX_valuesXname_keyX", new List, ITraversal>> {(g,p) =>g.AddV().Property("name", "marko").With("key", "value").Values("name", "key")}}, + {"g_addV_propertyXname_marko_since_2010X_withXkey_valueX_propertiesXnameX_valuesXsince_keyX", new List, ITraversal>> {(g,p) =>g.AddV().Property("name", "marko", "since", 2010).With("key", "value").Properties("name").Values("since", "key")}}, + {"g_injectX1X_asBool", new List, ITraversal>> {(g,p) =>g.Inject(1).AsBool()}}, + {"g_injectX3_14X_asBool", new List, ITraversal>> {(g,p) =>g.Inject(3.14).AsBool()}}, + {"g_injectXneg_1X_asBool", new List, ITraversal>> {(g,p) =>g.Inject(-1).AsBool()}}, + {"g_injectX0X_asBool", new List, ITraversal>> {(g,p) =>g.Inject(0).AsBool()}}, + {"g_injectXneg_0X_asBool", new List, ITraversal>> {(g,p) =>g.Inject(-0.0).AsBool()}}, + {"g_injectXNaNX_asBool", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).AsBool()}}, + {"g_injectXbool_trueX_asBool", new List, ITraversal>> {(g,p) =>g.Inject(true).AsBool()}}, + {"g_injectXfalseX_asBool", new List, ITraversal>> {(g,p) =>g.Inject(false).AsBool()}}, + {"g_injectXtrueX_asBool", new List, ITraversal>> {(g,p) =>g.Inject("true").AsBool()}}, + {"g_injectXmixed_trueX_asBool", new List, ITraversal>> {(g,p) =>g.Inject("tRUe").AsBool()}}, + {"g_injectXnullX_asBool", new List, ITraversal>> {(g,p) =>g.Inject(null).AsBool()}}, + {"g_injectXhelloX_asBool", new List, ITraversal>> {(g,p) =>g.Inject("hello").AsBool()}}, + {"g_injectX1_2X_asBool", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }).AsBool()}}, + {"g_VXX_localX_outE_countX_asBool", new List, ITraversal>> {(g,p) =>g.V().Local(__.OutE().Count()).AsBool()}}, + {"g_V_sackXassignX_byX_hasLabelXpersonX_count_asBoolX_sackXandX_byX_outE_count_asBoolX_sack_path", new List, ITraversal>> {(g,p) =>g.V().Sack(Operator.Assign).By(__.HasLabel("person").Count().AsBool()).Sack(Operator.And).By(__.OutE().Count().AsBool()).Sack().Path()}}, + {"g_injectXstrX_asDate", new List, ITraversal>> {(g,p) =>g.Inject("2023-08-02T00:00:00Z").AsDate()}}, + {"g_injectXstr_offsetX_asDate", new List, ITraversal>> {(g,p) =>g.Inject("2023-08-02T00:00:00-07:00").AsDate()}}, + {"g_injectX1694017707000X_asDate", new List, ITraversal>> {(g,p) =>g.Inject(1694017707000).AsDate()}}, + {"g_injectX1694017708000LX_asDate", new List, ITraversal>> {(g,p) =>g.Inject(1694017708000l).AsDate()}}, + {"g_injectX1694017709000dX_asDate", new List, ITraversal>> {(g,p) =>g.Inject(1694017709000.1d).AsDate()}}, + {"g_injectX1_2X_asDate", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }).AsDate()}}, + {"g_injectXnullX_asDate", new List, ITraversal>> {(g,p) =>g.Inject(null).AsDate()}}, + {"g_injectXinvalidstrX_asDate", new List, ITraversal>> {(g,p) =>g.Inject("This String is not an ISO 8601 Date").AsDate()}}, + {"g_V_valuesXbirthdayX_asDate_asNumber_asDate", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").Property("birthday", "2020-08-02").AddV((string) "person").Property("name", "john").Property("birthday", "1988-12-10").AddV((string) "person").Property("name", "charlie").Property("birthday", "2002-02-01").AddV((string) "person").Property("name", "suzy").Property("birthday", "1965-10-31"), (g,p) =>g.V().Values("birthday").AsDate().AsNumber().AsDate()}}, + {"g_injectX5bX_asNumber", new List, ITraversal>> {(g,p) =>g.Inject((sbyte) 5).AsNumber()}}, + {"g_injectX5sX_asNumber", new List, ITraversal>> {(g,p) =>g.Inject((short) 5).AsNumber()}}, + {"g_injectX5iX_asNumber", new List, ITraversal>> {(g,p) =>g.Inject(5).AsNumber()}}, + {"g_injectX5lX_asNumber", new List, ITraversal>> {(g,p) =>g.Inject(5l).AsNumber()}}, + {"g_injectX5nX_asNumber", new List, ITraversal>> {(g,p) =>g.Inject(BigInteger.Parse("5")).AsNumber()}}, + {"g_injectX5_0X_asNumber", new List, ITraversal>> {(g,p) =>g.Inject(5.0).AsNumber()}}, + {"g_injectX5_75fX_asNumber", new List, ITraversal>> {(g,p) =>g.Inject(5.75f).AsNumber()}}, + {"g_injectX5X_asNumber", new List, ITraversal>> {(g,p) =>g.Inject("5").AsNumber()}}, + {"g_injectXtestX_asNumber", new List, ITraversal>> {(g,p) =>g.Inject("test").AsNumber()}}, + {"g_injectX_1_2_3_4X_asNumber", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3, 4 }).AsNumber()}}, + {"g_injectX1_2_3_4X_unfold_asNumber", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2, 3, 4 }).Unfold().AsNumber()}}, + {"g_injectX_1__2__3__4_X_asNumberXX_foldXX", new List, ITraversal>> {(g,p) =>g.Inject("1", 2, "3", 4).AsNumber().Fold()}}, + {"g_injectX5_43X_asNumberXGType_INTX", new List, ITraversal>> {(g,p) =>g.Inject(5.43).AsNumber(GType.Int)}}, + {"g_injectX5_67X_asNumberXGType_INTX", new List, ITraversal>> {(g,p) =>g.Inject(5.67).AsNumber(GType.Int)}}, + {"g_injectX5X_asNumberXGType_LONGX", new List, ITraversal>> {(g,p) =>g.Inject(5).AsNumber(GType.Long)}}, + {"g_injectX12X_asNumberXGType_BYTEX", new List, ITraversal>> {(g,p) =>g.Inject(12).AsNumber(GType.Byte)}}, + {"g_injectX32768X_asNumberXGType_SHORTX", new List, ITraversal>> {(g,p) =>g.Inject(32768).AsNumber(GType.Short)}}, + {"g_injectX300X_asNumberXGType_BYTEX", new List, ITraversal>> {(g,p) =>g.Inject(300).AsNumber(GType.Byte)}}, + {"g_injectX32768X_asNumberXGType_VertexX", new List, ITraversal>> {(g,p) =>g.Inject(32768).AsNumber(GType.Vertex)}}, + {"g_injectX5X_asNumberXGType_BYTEX", new List, ITraversal>> {(g,p) =>g.Inject("5").AsNumber(GType.Byte)}}, + {"g_injectX1_000X_asNumberXGType_BIGINTX", new List, ITraversal>> {(g,p) =>g.Inject("1,000").AsNumber(GType.BigInt)}}, + {"g_injectX1_2_3_4_0x5X_asNumber_sum_asNumberXGType_BYTEX", new List, ITraversal>> {(g,p) =>g.Inject(1.0, 2, 3, "4", "0x5").AsNumber().Sum().AsNumber(GType.Byte)}}, + {"g_injectXnullX_asNumberXGType_INTX", new List, ITraversal>> {(g,p) =>g.Inject(null).AsNumber(GType.Int)}}, + {"g_V_asXaX_outXknowsX_asXbX_mathXa_plus_bX_byXageX_asNumberXGType_INTX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("knows").As("b").Math("a + b").By("age").AsNumber(GType.Int)}}, + {"g_withSideEffectXx_100X_V_age_mathX__plus_xX_asNumberXGType_LONGX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("x", 100).V().Values("age").Math("_ + x").AsNumber(GType.Long)}}, + {"g_V_valuesXageX_asString_asNumberXGType_DOUBLEX", new List, ITraversal>> {(g,p) =>g.V().Values("age").AsString().AsNumber(GType.Double)}}, + {"g_V_valuesXbirthdayX_asNumber_asDate_asNumber", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").Property("birthday", 1596326400000).AddV((string) "person").Property("name", "john").Property("birthday", 597715200000).AddV((string) "person").Property("name", "charlie").Property("birthday", 1012521600000).AddV((string) "person").Property("name", "suzy").Property("birthday", -131587200000), (g,p) =>g.V().Values("birthday").AsNumber().AsDate().AsNumber()}}, + {"g_injectX1_2X_asString", new List, ITraversal>> {(g,p) =>g.Inject(1, 2).AsString()}}, + {"g_injectX1_2X_asStringXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(1, 2).AsString(Scope.Local)}}, + {"g_injectXlist_1_2X_asStringXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }).AsString(Scope.Local)}}, + {"g_injectX1_nullX_asString", new List, ITraversal>> {(g,p) =>g.Inject(null, 1).AsString()}}, + {"g_injectX1_nullX_asStringXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, null }).AsString(Scope.Local)}}, + {"g_V_valueMapXnameX_asString", new List, ITraversal>> {(g,p) =>g.V().ValueMap("name").AsString()}}, + {"g_V_valueMapXnameX_order_fold_asStringXlocalX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("name").Order().Fold().AsString(Scope.Local)}}, + {"g_V_asString", new List, ITraversal>> {(g,p) =>g.V().AsString()}}, + {"g_V_fold_asStringXlocalX_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Fold().AsString(Scope.Local).Order(Scope.Local)}}, + {"g_E_asString", new List, ITraversal>> {(g,p) =>g.E().AsString()}}, + {"g_V_properties", new List, ITraversal>> {(g,p) =>g.V().Properties().AsString()}}, + {"g_V_hasLabelXpersonX_valuesXageX_asString", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("age").AsString()}}, + {"g_V_hasLabelXpersonX_valuesXageX_order_fold_asStringXlocalX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("age").Order().Fold().AsString(Scope.Local)}}, + {"g_V_hasLabelXpersonX_valuesXageX_asString_concatX_years_oldX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("age").AsString().Concat(" years old")}}, + {"g_V_outEXknowsX_subgraphXsgX_capXsgX_asString", new List, ITraversal>> {(g,p) =>g.V().OutE("knows").Subgraph("sg").Cap("sg").AsString()}}, + {"g_call", new List, ITraversal>> {(g,p) =>g.Call()}}, + {"g_callXlistX", new List, ITraversal>> {(g,p) =>g.Call((string) "--list")}}, + {"g_callXlistX_withXstring_stringX", new List, ITraversal>> {(g,p) =>g.Call((string) "--list").With("service", "tinker.search")}}, + {"g_callXlistX_withXstring_traversalX", new List, ITraversal>> {(g,p) =>g.Call((string) "--list").With("service", __.Constant("tinker.search"))}}, + {"g_callXlist_mapX", new List, ITraversal>> {(g,p) =>g.Call("--list", new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_callXlist_traversalX", new List, ITraversal>> {(g,p) =>g.Call("--list", (ITraversal) __.Project("service").By(__.Constant("tinker.search")))}}, + {"g_callXlist_map_traversalX", new List, ITraversal>> {(g,p) =>g.Call("--list", new GValue>("xx1", (IDictionary) p["xx1"]), (ITraversal) __.Project("service").By(__.Constant("tinker.search")))}}, + {"g_callXsearch_mapX", new List, ITraversal>> {(g,p) =>g.Call("tinker.search", new GValue>("xx1", (IDictionary) p["xx1"])).Element()}}, + {"g_callXsearch_traversalX", new List, ITraversal>> {(g,p) =>g.Call("tinker.search", (ITraversal) __.Project("search").By(__.Constant("vada"))).Element()}}, + {"g_callXsearchX_withXstring_stringX", new List, ITraversal>> {(g,p) =>g.Call((string) "tinker.search").With("search", "vada").Element()}}, + {"g_callXsearchX_withXstring_traversalX", new List, ITraversal>> {(g,p) =>g.Call((string) "tinker.search").With("search", __.Constant("vada")).Element()}}, + {"g_callXsearch_mapX_withXstring_VertexX", new List, ITraversal>> {(g,p) =>g.Call("tinker.search", new GValue>("xx1", (IDictionary) p["xx1"])).With("type", "Vertex").Element()}}, + {"g_callXsearch_mapX_withXstring_EdgeX", new List, ITraversal>> {(g,p) =>g.Call("tinker.search", new GValue>("xx1", (IDictionary) p["xx1"])).With("type", "Edge").Element()}}, + {"g_callXsearch_mapX_withXstring_VertexPropertyX", new List, ITraversal>> {(g,p) =>g.Call("tinker.search", new GValue>("xx1", (IDictionary) p["xx1"])).With("type", "VertexProperty").Element()}}, + {"g_V_callXdcX", new List, ITraversal>> {(g,p) =>g.V().As("v").Call((string) "tinker.degree.centrality").Project("vertex", "degree").By(__.Select("v")).By()}}, + {"g_V_whereXcallXdcXX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Call((string) "tinker.degree.centrality").Is(3))}}, + {"g_V_callXdcX_withXdirection_OUTX", new List, ITraversal>> {(g,p) =>g.V().As("v").Call((string) "tinker.degree.centrality").With("direction", Direction.Out).Project("vertex", "degree").By(__.Select("v")).By()}}, + {"g_V_callXdc_mapX_withXdirection_OUTX", new List, ITraversal>> {(g,p) =>g.V().As("v").Call("tinker.degree.centrality", new GValue>("xx1", (IDictionary) p["xx1"])).With("direction", Direction.Out).Project("vertex", "degree").By(__.Select("v")).By()}}, + {"g_V_callXdc_traversalX", new List, ITraversal>> {(g,p) =>g.V().As("v").Call("tinker.degree.centrality", (ITraversal) __.Project("direction").By(__.Constant(Direction.Out))).Project("vertex", "degree").By(__.Select("v")).By()}}, + {"g_V_callXdc_map_traversalX", new List, ITraversal>> {(g,p) =>g.V().As("v").Call("tinker.degree.centrality", new GValue>("xx1", (IDictionary) p["xx1"]), (ITraversal) __.Project("direction").By(__.Constant(Direction.Out))).Project("vertex", "degree").By(__.Select("v")).By()}}, + {"g_V_coalesceXoutXfooX_outXbarXX", new List, ITraversal>> {(g,p) =>g.V().Coalesce(__.Out("foo"), __.Out("bar"))}}, + {"g_VX1X_coalesceXoutXknowsX_outXcreatedXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Coalesce(__.Out("knows"), __.Out("created")).Values("name")}}, + {"g_VX1X_coalesceXoutXcreatedX_outXknowsXX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Coalesce(__.Out("created"), __.Out("knows")).Values("name")}}, + {"g_V_coalesceXoutXlikesX_outXknowsX_inXcreatedXX_groupCount_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Coalesce(__.Out("likes"), __.Out("knows"), __.Out("created")).GroupCount().By("name")}}, + {"g_V_coalesceXoutEXknowsX_outEXcreatedXX_otherV_path_byXnameX_byXlabelX", new List, ITraversal>> {(g,p) =>g.V().Coalesce(__.OutE("knows"), __.OutE("created")).OtherV().Path().By("name").By(T.Label)}}, + {"g_V_outXcreatedX_order_byXnameX_coalesceXname_constantXxXX", new List, ITraversal>> {(g,p) =>g.V().Out("created").Order().By("name").Coalesce(__.Values("name"), __.Constant("x"))}}, + {"g_injectXnullX_combineXinjectX1XX", new List, ITraversal>> {(g,p) =>g.Inject(null).Combine(__.Inject(1))}}, + {"g_V_valuesXnameX_combineXV_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Combine(__.V().Fold())}}, + {"g_V_fold_combineXconstantXnullXX", new List, ITraversal>> {(g,p) =>g.V().Fold().Combine(__.Constant(null))}}, + {"g_V_fold_combineXVX", new List, ITraversal>> {(g,p) =>g.V().Fold().Combine(__.V())}}, + {"g_V_valuesXnameX_fold_combineX2X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Combine(2)}}, + {"g_V_valuesXnameX_fold_combineXnullX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Combine(null)}}, + {"g_V_valuesXnonexistantX_fold_combineXV_valuesXnameX_foldX_unfold", new List, ITraversal>> {(g,p) =>g.V().Values("nonexistant").Fold().Combine(__.V().Values("name").Fold()).Unfold()}}, + {"g_V_valuesXnameX_fold_combineXV_valuesXnonexistantX_foldX_unfold", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Combine(__.V().Values("nonexistant").Fold()).Unfold()}}, + {"g_V_valuesXageX_order_byXdescX_fold_combineXV_valuesXageX_order_byXdescX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Fold().Combine(__.V().Values("age").Order().By(Order.Desc).Fold())}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_combineXMARKOX", new List, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values("name").ToUpper()).Combine(new List { "MARKO" })}}, + {"g_injectXxx1X_combineXV_valuesXnameX_foldX_unfold", new List, ITraversal>> {(g,p) =>g.Inject(new List { "marko" }).Combine(__.V().Values("name").Fold()).Unfold()}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_combineXseattle_vancouverX_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("location").Select(Column.Values).Unfold().Combine(new List { "seattle", "vancouver" }).Order(Scope.Local)}}, + {"g_V_out_out_path_byXnameX_combineXempty_listX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Combine(new List { })}}, + {"g_V_valuesXageX_order_fold_combineXconstantX27X_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().Fold().Combine(__.Constant(27).Fold())}}, + {"g_V_out_out_path_byXnameX_combineXdave_kelvinX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Combine(new List { "dave", "kelvin" })}}, + {"g_injectXa_null_bX_combineXa_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Combine(new List { "a", "c" })}}, + {"g_injectXa_null_bX_combineXa_null_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Combine(new List { "a", null, "c" })}}, + {"g_injectX3_threeX_combineXfive_three_7X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Combine(new List { "five", "three", 7 })}}, + {"g_injectXa_bX_concat", new List, ITraversal>> {(g,p) =>g.Inject("a", "b").Concat()}}, + {"g_injectXa_bX_concat_XcX", new List, ITraversal>> {(g,p) =>g.Inject("a", "b").Concat("c")}}, + {"g_injectXa_bX_concat_Xc_dX", new List, ITraversal>> {(g,p) =>g.Inject("a", "b").Concat("c", "d")}}, + {"g_injectXa_bX_concat_Xinject_c_dX", new List, ITraversal>> {(g,p) =>g.Inject("a", "b").Concat(__.Inject("c"))}}, + {"g_injectXaX_concat_Xinject_List_b_cX", new List, ITraversal>> {(g,p) =>g.Inject("a").Concat(__.Inject(new List { "b", "c" }))}}, + {"g_injectXListXa_bXcX_concat_XdX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }, "c").Concat("d")}}, + {"g_injectXnullX_concat_XinjectX", new List, ITraversal>> {(g,p) =>g.Inject(null).Concat()}}, + {"g_injectXnull_aX_concat_Xnull_bX", new List, ITraversal>> {(g,p) =>g.Inject(null, "a").Concat(null, "b")}}, + {"g_injectXhello_hiX_concatXV_values_order_byXnameX_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.Inject("hello", "hi").Concat(__.V().Order().By("name").Values("name"))}}, + {"g_V_hasLabel_value_concat_X_X_concat_XpersonX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").Concat(" ").Concat("person")}}, + {"g_hasLabelXpersonX_valuesXnameX_asXaX_constantXMrX_concatXselectXaX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").As("a").Constant("Mr.").Concat(__.Select("a"))}}, + {"g_hasLabelXsoftwareX_asXaX_valuesXnameX_concatXunsesX_concatXselectXaXvaluesXlangX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").As("a").Values("name").Concat(" uses ").Concat(__.Select("a").Values("lang"))}}, + {"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_labelX_concatXselectXaX_inV_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values("name").Concat(__.Select("a").Label()).Concat(__.Select("a").InV().Values("name"))}}, + {"g_VX1X_outE_asXaX_VX1X_valuesXnamesX_concatXselectXaX_label_selectXaX_inV_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().As("a").V(p["vid1"]).Values("name").Concat(__.Select("a").Label(), __.Select("a").InV().Values("name"))}}, + {"g_addVXconstantXprefix_X_concatXVX1X_labelX_label", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.AddV(__.Constant("prefix_").Concat(__.V(p["vid1"]).Label())).Label()}}, + {"g_injectXnullX_conjoinX1X", new List, ITraversal>> {(g,p) =>g.Inject(null).Conjoin((string) "1")}}, + {"g_V_valuesXnameX_conjoinX1X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Conjoin((string) "1")}}, + {"g_V_valuesXnonexistantX_fold_conjoinX_X", new List, ITraversal>> {(g,p) =>g.V().Values("nonexistant").Fold().Conjoin((string) ";")}}, + {"g_V_valuesXnameX_order_fold_conjoinX_X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order().Fold().Conjoin((string) "_")}}, + {"g_V_valuesXageX_order_fold_conjoinXsemicolonX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().Fold().Conjoin((string) ";")}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_conjoinXMARKOX", new List, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values("name").ToUpper()).Conjoin((string) "MARKO")}}, + {"g_injectXmarkoX_conjoinX_X", new List, ITraversal>> {(g,p) =>g.Inject(new List { "marko" }).Conjoin((string) "-")}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_orderXlocalX_conjoinX1X", new List, ITraversal>> {(g,p) =>g.V().ValueMap("location").Select(Column.Values).Unfold().Order(Scope.Local).Conjoin((string) "1")}}, + {"g_V_out_out_path_byXnameX_conjoinXX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Conjoin((string) "")}}, + {"g_injectXa_null_bX_conjoinXxyzX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Conjoin((string) "xyz")}}, + {"g_injectX3_threeX_conjoinX_X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Conjoin((string) ";")}}, + {"g_injectXnull_a_null_bX_conjoinXplusX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, "a", null, "b" }).Conjoin((string) "+")}}, + {"g_injectXnull_nullX_conjoinXplusX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, null }).Conjoin((string) "+")}}, + {"g_V_connectedComponent_hasXcomponentX", new List, ITraversal>> {(g,p) =>g.V().ConnectedComponent().Has("gremlin.connectedComponentVertexProgram.component")}}, + {"g_V_dedup_connectedComponent_hasXcomponentX", new List, ITraversal>> {(g,p) =>g.V().Dedup().ConnectedComponent().Has("gremlin.connectedComponentVertexProgram.component")}}, + {"g_V_hasLabelXsoftwareX_connectedComponent_project_byXnameX_byXcomponentX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").ConnectedComponent().Project("name", "component").By("name").By("gremlin.connectedComponentVertexProgram.component")}}, + {"g_V_connectedComponent_withXEDGES_bothEXknowsXX_withXPROPERTY_NAME_clusterX_project_byXnameX_byXclusterX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").ConnectedComponent().With("~tinkerpop.connectedComponent.edges", __.BothE("knows")).With("~tinkerpop.connectedComponent.propertyName", "cluster").Project("name", "cluster").By("name").By("cluster")}}, + {"g_V_constantX123X", new List, ITraversal>> {(g,p) =>g.V().Constant(123)}}, + {"g_V_constantXnullX", new List, ITraversal>> {(g,p) =>g.V().Constant(null)}}, + {"g_V_chooseXhasLabelXpersonX_valuesXnameX_constantXinhumanXX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.HasLabel("person"), __.Values("name"), __.Constant("inhuman"))}}, + {"g_V_count", new List, ITraversal>> {(g,p) =>g.V().Count()}}, + {"g_V_out_count", new List, ITraversal>> {(g,p) =>g.V().Out().Count()}}, + {"g_V_both_both_count", new List, ITraversal>> {(g,p) =>g.V().Both().Both().Count()}}, + {"g_V_fold_countXlocalX", new List, ITraversal>> {(g,p) =>g.V().Fold().Count(Scope.Local)}}, + {"g_V_hasXnoX_count", new List, ITraversal>> {(g,p) =>g.V().Has("no").Count()}}, + {"g_V_whereXinXkknowsX_outXcreatedX_count_is_0XX_name", new List, ITraversal>> {(g,p) =>g.V().Where(__.In("knows").Out("created").Count().Is(0)).Values("name")}}, + {"g_V_repeatXoutX_timesX8X_count", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out()).Times(8).Count()}}, + {"g_V_repeatXoutX_timesX5X_asXaX_outXwrittenByX_asXbX_selectXa_bX_count", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out()).Times(5).As("a").Out("writtenBy").As("b").Select("a", "b").Count()}}, + {"g_V_repeatXoutX_timesX3X_count", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out()).Times(3).Count()}}, + {"g_V_order_byXlangX_count", new List, ITraversal>> {(g,p) =>g.V().Order().By("lang").Count()}}, + {"g_E_sampleX1X_count", new List, ITraversal>> {(g,p) =>g.E().Sample(1).Count()}}, + {"g_V_sampleX1X_byXageX_count", new List, ITraversal>> {(g,p) =>g.V().Sample(1).By("age").Count()}}, + {"g_V_order_byXnoX_count", new List, ITraversal>> {(g,p) =>g.V().Order().By("no").Count()}}, + {"g_V_group_byXlabelX_count", new List, ITraversal>> {(g,p) =>g.V().Group().By(T.Label).Count()}}, + {"g_V_group_byXlabelX_countXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group().By(T.Label).Count(Scope.Local)}}, + {"g_injectXdatetimeXstrXX_dateAddXDT_hour_2X", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-02T00:00Z"), DateTimeOffset.Parse("2023-08-02T00:00Z")).DateAdd(DT.Hour, 2)}}, + {"g_injectXdatetimeXstrXX_dateAddXhour_2X", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-02T00:00Z"), DateTimeOffset.Parse("2023-08-02T00:00Z")).DateAdd(DT.Hour, 2)}}, + {"g_injectXdatetimeXstrXX_dateAddXhour_1X", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-02T00:00Z"), DateTimeOffset.Parse("2023-08-02T00:00Z")).DateAdd(DT.Hour, -1)}}, + {"g_injectXdatetimeXstrXX_dateAddXminute_10X", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-02T00:00Z"), DateTimeOffset.Parse("2023-08-02T00:00Z")).DateAdd(DT.Minute, 10)}}, + {"g_injectXdatetimeXstrXX_dateAddXsecond_20X", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-02T00:00Z"), DateTimeOffset.Parse("2023-08-02T00:00Z")).DateAdd(DT.Second, 20)}}, + {"g_injectXdatetimeXstrXX_dateAddXday_11X", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-09-06T00:00Z"), DateTimeOffset.Parse("2023-09-06T00:00Z")).DateAdd(DT.Day, 11)}}, + {"g_injectXdatetimeXstr1XX_dateDiffXdatetimeXstr2XX", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-02T00:00Z"), DateTimeOffset.Parse("2023-08-02T00:00Z")).DateDiff(DateTimeOffset.Parse("2023-08-09T00:00Z"))}}, + {"g_injectXdatetimeXstr1XX_dateDiffXconstantXdatetimeXstr2XXX", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-08T00:00Z"), DateTimeOffset.Parse("2023-08-08T00:00Z")).DateDiff(__.Constant(DateTimeOffset.Parse("2023-08-01T00:00Z")))}}, + {"g_injectXdatetimeXstr1XX_dateDiffXinjectXdatetimeXstr2XXX", new List, ITraversal>> {(g,p) =>g.Inject(DateTimeOffset.Parse("2023-08-08T00:00Z"), DateTimeOffset.Parse("2023-08-08T00:00Z")).DateDiff(__.Inject(DateTimeOffset.Parse("2023-10-11T00:00Z")))}}, + {"g_V_valuesXbirthdayX_asDate_dateDiffXdatetimeX19700101T0000ZXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").Property("birthday", "1596326400000").AddV((string) "person").Property("name", "john").Property("birthday", "597715200000").AddV((string) "person").Property("name", "charlie").Property("birthday", "1012521600000").AddV((string) "person").Property("name", "suzy").Property("birthday", "-131587200000"), (g,p) =>g.V().Values("birthday").AsNumber().AsDate().DateDiff(DateTimeOffset.Parse("1970-01-01T00:00Z"))}}, + {"g_V_hasXname_aliceX_valuesXbirthdayX_asDate_dateDiffXconstantXnullXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").Property("birthday", 1596326400000), (g,p) =>g.V().Has("name", "alice").Values("birthday").AsDate().DateDiff(__.Constant(null))}}, + {"g_injectXnullX_differenceXinjectX1XX", new List, ITraversal>> {(g,p) =>g.Inject(null).Difference(__.Inject(1))}}, + {"g_V_valuesXnameX_differenceXV_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Difference(__.V().Fold())}}, + {"g_V_fold_differenceXconstantXnullXX", new List, ITraversal>> {(g,p) =>g.V().Fold().Difference(__.Constant(null))}}, + {"g_V_fold_differenceXVX", new List, ITraversal>> {(g,p) =>g.V().Fold().Difference(__.V())}}, + {"g_V_valuesXnameX_fold_differenceX2X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Difference(2)}}, + {"g_V_valuesXnameX_fold_differenceXnullX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Difference(null)}}, + {"g_V_valuesXnonexistantX_fold_differenceXV_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("nonexistant").Fold().Difference(__.V().Values("name").Fold())}}, + {"g_V_valuesXnameX_fold_differenceXV_valuesXnonexistantX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Difference(__.V().Values("nonexistant").Fold())}}, + {"g_V_valuesXageX_fold_differenceXV_valuesXageX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Difference(__.V().Values("age").Fold())}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_differenceXMARKOX", new List, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values("name").ToUpper()).Difference(new List { "MARKO" })}}, + {"g_injectXmarkoX_differenceXV_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "marko" }).Difference(__.V().Values("name").Fold())}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_differenceXseattle_vancouverX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("location").Select(Column.Values).Unfold().Difference(new List { "seattle", "vancouver" })}}, + {"g_V_out_out_path_byXnameX_differenceXrippleX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Difference(new List { "ripple" })}}, + {"g_V_out_out_path_byXnameX_differenceXempty_listX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Difference(new List { })}}, + {"g_V_valuesXageX_fold_differenceXconstantX27X_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Difference(__.Constant(27).Fold())}}, + {"g_V_out_out_path_byXnameX_differenceXdave_kelvinX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Difference(new List { "dave", "kelvin" })}}, + {"g_injectXa_null_bX_differenceXa_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Difference(new List { "a", "c" })}}, + {"g_injectXa_null_bX_differenceXa_null_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Difference(new List { "a", null, "c" })}}, + {"g_injectX3_threeX_differenceXfive_three_7X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Difference(new List { "five", "three", 7 })}}, + {"g_injectXnullX_disjunctXinjectX1XX", new List, ITraversal>> {(g,p) =>g.Inject(null).Disjunct(__.Inject(1))}}, + {"g_V_valuesXnameX_disjunctXV_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Disjunct(__.V().Fold())}}, + {"g_V_fold_disjunctXconstantXnullXX", new List, ITraversal>> {(g,p) =>g.V().Fold().Disjunct(__.Constant(null))}}, + {"g_V_fold_disjunctXVX", new List, ITraversal>> {(g,p) =>g.V().Fold().Disjunct(__.V())}}, + {"g_V_valuesXnameX_fold_disjunctX2X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Disjunct(2)}}, + {"g_V_valuesXnameX_fold_disjunctXnullX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Disjunct(null)}}, + {"g_V_valuesXnonexistantX_fold_disjunctXV_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("nonexistant").Fold().Disjunct(__.V().Values("name").Fold())}}, + {"g_V_valuesXnameX_fold_disjunctXV_valuesXnonexistantX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Disjunct(__.V().Values("nonexistant").Fold())}}, + {"g_V_valuesXageX_fold_disjunctXV_valuesXageX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Disjunct(__.V().Values("age").Fold())}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_disjunctXMARKOX", new List, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values("name").ToUpper()).Disjunct(new List { "MARKO" })}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_disjunctXseattle_vancouverX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("location").Select(Column.Values).Unfold().Disjunct(new List { "seattle", "vancouver" })}}, + {"g_V_out_out_path_byXnameX_disjunctXmarkoX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Disjunct(new List { "marko" })}}, + {"g_V_out_out_path_byXnameX_disjunctXstephen_markoX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Disjunct(new List { "stephen", "marko" })}}, + {"g_V_out_out_path_byXnameX_disjunctXdave_kelvinX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Disjunct(new List { "dave", "kelvin" })}}, + {"g_injectXa_null_bX_disjunctXa_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Disjunct(new List { "a", "c" })}}, + {"g_injectXa_null_bX_disjunctXa_null_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Disjunct(new List { "a", null, "c" })}}, + {"g_injectX3_threeX_disjunctXfive_three_7X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Disjunct(new List { "five", "three", 7 })}}, + {"g_E", new List, ITraversal>> {(g,p) =>g.E()}}, + {"g_EX11X", new List, ITraversal>> {(g,p) =>g.E(p["eid11"])}}, + {"g_EX11AsStringX", new List, ITraversal>> {(g,p) =>g.E(p["eid11"])}}, + {"g_EXeid7_eid11X", new List, ITraversal>> {(g,p) =>g.E(p["eid7"], p["eid11"])}}, + {"g_EXlistXeid7_eid11XX", new List, ITraversal>> {(g,p) =>g.E(p["xx1"])}}, + {"g_EXnullX", new List, ITraversal>> {(g,p) =>g.E(null)}}, + {"g_EXlistXnullXX", new List, ITraversal>> {(g,p) =>g.E(p["xx1"])}}, + {"g_EX11_nullX", new List, ITraversal>> {(g,p) =>g.E(p["eid11"], null)}}, + {"g_V_EX11X", new List, ITraversal>> {(g,p) =>g.V().E(p["eid11"])}}, + {"g_EX11X_E", new List, ITraversal>> {(g,p) =>g.E(p["eid11"]).E()}}, + {"g_V_EXnullX", new List, ITraversal>> {(g,p) =>g.V().E(null)}}, + {"g_V_EXlistXnullXX", new List, ITraversal>> {(g,p) =>g.V().E(p["xx1"])}}, + {"g_injectX1X_EX11_nullX", new List, ITraversal>> {(g,p) =>g.Inject(1).E(p["eid11"], null)}}, + {"g_injectX1X_coalesceXEX_hasLabelXtestsX_addEXtestsX_from_V_hasXnameX_XjoshXX_toXV_hasXnameX_XvadasXXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "josh").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.Inject(1).Coalesce(__.E().HasLabel("tests"), __.AddE((string) "tests").From(__.V().Has("name", "josh")).To(__.V().Has("name", "vadas"))), (g,p) =>g.E().HasLabel("tests")}}, + {"g_VX1X_outE_inV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().InV()}}, + {"g_VX2X_inE_outV", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).InE().OutV()}}, + {"g_V_outE_hasXweight_1X_outV", new List, ITraversal>> {(g,p) =>g.V().OutE().Has("weight", 1.0).OutV()}}, + {"g_VX1X_outE_otherV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().OtherV()}}, + {"g_VX4X_bothE_otherV", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).BothE().OtherV()}}, + {"g_VX4X_bothE_hasXweight_lt_1X_otherV", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).BothE().Has("weight", P.Lt(1.0)).OtherV()}}, + {"get_g_VX1X_outE_otherV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().OtherV()}}, + {"g_VX1X_outEXknowsX_inV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("knows").InV()}}, + {"g_VX1X_outEXknows_createdX_inV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("knows", "created").InV()}}, + {"g_VX1X_outEXknowsX_bothV", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("knows").BothV()}}, + {"g_VX1X_outEXknowsX_bothV_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("knows").BothV().Values("name")}}, + {"g_V_toEXout_knowsvarX_valuesXweightX", new List, ITraversal>> {(g,p) =>g.V().ToE(Direction.Out, new GValue("xx1", (string) p["xx1"])).Values("weight")}}, + {"g_VX1X_properties_element", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).Properties().Element().Limit(1)}}, + {"g_V_properties_element", new List, ITraversal>> {(g,p) =>g.V().Properties().Element()}}, + {"g_V_propertiesXageX_element", new List, ITraversal>> {(g,p) =>g.V().Properties("age").Element()}}, + {"g_EX_properties_element", new List, ITraversal>> {(g,p) =>g.E(p["eid11"]).Properties().Element().Limit(1)}}, + {"g_E_properties_element", new List, ITraversal>> {(g,p) =>g.E().Properties().Element()}}, + {"g_VXv7_properties_properties_element_element", new List, ITraversal>> {(g,p) =>g.V(p["vid7"]).Properties().Properties().Element().Element().Limit(1)}}, + {"g_V_properties_properties_element_element", new List, ITraversal>> {(g,p) =>g.V(p["vid7"]).Properties().Properties().Element().Element()}}, + {"g_V_elementMap", new List, ITraversal>> {(g,p) =>g.V().ElementMap()}}, + {"g_V_elementMapXname_ageX", new List, ITraversal>> {(g,p) =>g.V().ElementMap("name", "age")}}, + {"g_EX11X_elementMap", new List, ITraversal>> {(g,p) =>g.E(p["eid11"]).ElementMap()}}, + {"g_V_elementMapXname_age_nullX", new List, ITraversal>> {(g,p) =>g.V().ElementMap("name", "age", null)}}, + {"g_V_asXaX_flatMapXselectXaXX", new List, ITraversal>> {(g,p) =>g.V().As("a").FlatMap(__.Select("a"))}}, + {"g_V_valuesXnameX_flatMapXsplitXaX_unfoldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").FlatMap(__.Split("a").Unfold())}}, + {"g_V_flatMapXout_outX_path", new List, ITraversal>> {(g,p) =>g.V().FlatMap(__.Out().Out()).Path()}}, + {"g_V_fold", new List, ITraversal>> {(g,p) =>g.V().Fold()}}, + {"g_V_fold_unfold", new List, ITraversal>> {(g,p) =>g.V().Fold().Unfold()}}, + {"g_V_age_foldX0_plusX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold(0, Operator.Sum)}}, + {"g_injectXa1_b2X_foldXm_addAllX", new List, ITraversal>> {(g,p) =>g.Inject(new Dictionary {{ "a", 1 }}, new Dictionary {{ "b", 2 }}).Fold(new Dictionary {}, Operator.AddAll)}}, + {"g_injectXa1_b2_b4X_foldXm_addAllX", new List, ITraversal>> {(g,p) =>g.Inject(new Dictionary {{ "a", 1 }}, new Dictionary {{ "b", 2 }}, new Dictionary {{ "b", 4 }}).Fold(new Dictionary {}, Operator.AddAll)}}, + {"g_injectXlist1_list2X_fold", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }, new List { 3, 4 }).Fold()}}, + {"g_injectXlist1_list2_list3X_fold", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }, new List { 3, 4 }, new List { 5, 6 }).Fold()}}, + {"g_VX1X_formatXstrX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").Format("Hello world")}}, + {"g_V_formatXstrX", new List, ITraversal>> {(g,p) =>g.V().Format("%{name} is %{age} years old")}}, + {"g_injectX1X_asXageX_V_formatXstrX", new List, ITraversal>> {(g,p) =>g.Inject(1).As("age").V().Format("%{name} is %{age} years old")}}, + {"g_V_formatXstrX_byXvaluesXnameXX_byXvaluesXageXX", new List, ITraversal>> {(g,p) =>g.V().Format("%{_} is %{_} years old").By(__.Values("name")).By(__.Values("age"))}}, + {"g_V_hasLabelXpersonX_formatXstrX_byXconstantXhelloXX_byXvaluesXnameXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Format("%{_} %{_} %{_}").By(__.Constant("hello")).By(__.Values("name"))}}, + {"g_VX1X_formatXstrX_byXconstantXhelloXX_byXvaluesXnameXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Format("%{_}").By(__.Constant("hello")).By(__.Values("name"))}}, + {"g_V_formatXstrX_byXbothE_countX", new List, ITraversal>> {(g,p) =>g.V().Format("%{name} has %{_} connections").By(__.BothE().Count())}}, + {"g_V_projectXname_countX_byXvaluesXnameXX_byXbothE_countX_formatXstrX", new List, ITraversal>> {(g,p) =>g.V().Project("name", "count").By(__.Values("name")).By(__.BothE().Count()).Format("%{name} has %{count} connections")}}, + {"g_V_elementMap_formatXstrX", new List, ITraversal>> {(g,p) =>g.V().ElementMap().Format("%{name} is %{age} years old")}}, + {"g_V_hasLabelXpersonX_asXaX_valuesXnameX_asXp1X_selectXaX_inXknowsX_formatXstrX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").As("a").Values("name").As("p1").Select("a").In("knows").Format("%{p1} knows %{name}")}}, + {"g_V_asXsX_label_asXsubjectX_selectXsX_outE_asXpX_label_asXpredicateX_selectXpX_inV_label_asXobjectX_formatXstrX", new List, ITraversal>> {(g,p) =>g.V().As("s").Label().As("subject").Select("s").OutE().As("p").Label().As("predicate").Select("p").InV().Label().As("object").Format("%{subject} %{predicate} %{object}")}}, + {"g_V_hasLabelXsoftwareX_index_unfold", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Index().Unfold()}}, + {"g_V_hasLabelXsoftwareX_order_byXnameX_index_withXmapX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Order().By("name").Index().With(WithOptions.Indexer, WithOptions.Map)}}, + {"g_V_hasLabelXsoftwareX_name_fold_orderXlocalX_index_unfold_order_byXtailXlocal_1XX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Fold().Order(Scope.Local).Index().Unfold().Order().By(__.Tail(Scope.Local, 1))}}, + {"g_V_hasLabelXpersonX_name_fold_orderXlocalX_index_withXmapX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").Fold().Order(Scope.Local).Index().With(WithOptions.Indexer, WithOptions.Map)}}, + {"g_VX1X_valuesXageX_index_unfold_unfold", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Index().Unfold().Unfold()}}, + {"g_injectXnullX_intersectXinjectX1XX", new List, ITraversal>> {(g,p) =>g.Inject(null).Intersect(__.Inject(1))}}, + {"g_V_valuesXnameX_intersectXV_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Intersect(__.V().Fold())}}, + {"g_V_fold_intersectXconstantXnullXX", new List, ITraversal>> {(g,p) =>g.V().Fold().Intersect(__.Constant(null))}}, + {"g_V_fold_intersectXVX", new List, ITraversal>> {(g,p) =>g.V().Fold().Intersect(__.V())}}, + {"g_V_valuesXnameX_fold_intersectX2X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Intersect(2)}}, + {"g_V_valuesXnameX_fold_intersectXnullX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Intersect(null)}}, + {"g_V_valuesXnonexistantX_fold_intersectXV_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("nonexistant").Fold().Intersect(__.V().Values("name").Fold())}}, + {"g_V_valuesXnameX_fold_intersectXV_valuesXnonexistantX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Intersect(__.V().Values("nonexistant").Fold())}}, + {"g_V_valuesXageX_fold_intersectXV_valuesXageX_foldX_order_local", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Intersect(__.V().Values("age").Fold()).Order(Scope.Local)}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_intersectXMARKOX", new List, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values("name").ToUpper()).Intersect(new List { "MARKO" })}}, + {"g_injectXmarkoX_intersectX___V_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "marko" }).Intersect(__.V().Values("name").Fold())}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_intersectXseattle_vancouverX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("location").Select(Column.Values).Unfold().Intersect(new List { "seattle", "vancouver" })}}, + {"g_V_valuesXageX_fold_intersectX___constantX27X_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Intersect(__.Constant(27).Fold())}}, + {"g_V_out_out_path_byXnameX_intersectXdave_kelvinX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Intersect(new List { "dave", "kelvin" })}}, + {"g_injectXa_null_bX_intersectXa_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Intersect(new List { "a", "c" })}}, + {"g_injectXa_null_bX_intersectXa_null_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Intersect(new List { "a", null, "c" })}}, + {"g_injectX3_threeX_intersectXfive_three_7X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Intersect(new List { "five", "three", 7 })}}, + {"g_injectX__feature___test__nullX_lTrim", new List, ITraversal>> {(g,p) =>g.Inject(" feature", " one test", null, "", " ", " abc", "abc ", " abc ", "  ").LTrim()}}, + {"g_injectX__feature___test__nullX_lTrimXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { " feature ", " one test ", null, "", " ", " abc", "abc ", " abc ", "  " }).LTrim(Scope.Local)}}, + {"g_injectX__feature__X_lTrim", new List, ITraversal>> {(g,p) =>g.Inject(" feature ").LTrim()}}, + {"g_injectXListXa_bXX_lTrim", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }).LTrim()}}, + {"g_injectXListX1_2XX_lTrimXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }).LTrim(Scope.Local)}}, + {"g_V_valuesXnameX_lTrim", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", " marko ").Property("age", 29).As("marko").AddV((string) "person").Property("name", " vadas ").Property("age", 27).As("vadas").AddV((string) "software").Property("name", " lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh ").Property("age", 32).As("josh").AddV((string) "software").Property("name", " ripple ").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").LTrim()}}, + {"g_V_valuesXnameX_order_fold_lTrimXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", " marko ").Property("age", 29).As("marko").AddV((string) "person").Property("name", " vadas ").Property("age", 27).As("vadas").AddV((string) "software").Property("name", " lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh ").Property("age", 32).As("josh").AddV((string) "software").Property("name", " ripple ").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").Order().Fold().LTrim(Scope.Local)}}, + {"g_injectXfeature_test_nullX_length", new List, ITraversal>> {(g,p) =>g.Inject("feature", "test", null).Length()}}, + {"g_injectXfeature_test_nullX_lengthXlocalX", new List, ITraversal>> {(g,p) =>g.Inject("feature", "test", null).Length(Scope.Local)}}, + {"g_injectXListXa_bXX_length", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }).Length()}}, + {"g_V_valuesXnameX_length", new List, ITraversal>> {(g,p) =>g.V().Values("name").Length()}}, + {"g_V_valuesXnameX_order_fold_lengthXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order().Fold().Length(Scope.Local)}}, + {"g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_or_loops_isX3XX_hasXname_peterX_path_byXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.Both().SimplePath()).Until(__.Has("name", "peter").Or().Loops().Is(3)).Has("name", "peter").Path().By("name")}}, + {"g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_or_loops_isX2XX_hasXname_peterX_path_byXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.Both().SimplePath()).Until(__.Has("name", "peter").Or().Loops().Is(2)).Has("name", "peter").Path().By("name")}}, + {"g_VX1X_repeatXboth_simplePathX_untilXhasXname_peterX_and_loops_isX3XX_hasXname_peterX_path_byXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.Both().SimplePath()).Until(__.Has("name", "peter").And().Loops().Is(3)).Has("name", "peter").Path().By("name")}}, + {"g_V_emitXhasXname_markoX_or_loops_isX2XX_repeatXoutX_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Emit(__.Has("name", "marko").Or().Loops().Is(2)).Repeat(__.Out()).Values("name")}}, + {"g_VX1X_mapXvaluesXnameXX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Map(__.Values("name"))}}, + {"g_VX1X_outE_label_mapXlengthX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().Label().Map(__.Length())}}, + {"g_VX1X_out_mapXvaluesXnameXX_mapXlengthX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Map(__.Values("name")).Map(__.Length())}}, + {"g_withPath_V_asXaX_out_mapXselectXaX_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.WithPath().V().As("a").Out().Map(__.Select("a").Values("name"))}}, + {"g_withPath_V_asXaX_out_out_asXbX_mapXselectXaX_valuesXnameX_concatXselectXbX_valuesXnameXXX", new List, ITraversal>> {(g,p) =>g.WithPath().V().As("a").Out().Out().As("b").Map(__.Select("a").Values("name").Concat(__.Select("b").Values("name")))}}, + {"g_V_mapXselectXaXX", new List, ITraversal>> {(g,p) =>g.V().As("a").Map(__.Select("a"))}}, + {"g_V_mapXconstantXnullXX", new List, ITraversal>> {(g,p) =>g.V().Map(__.Constant(null))}}, + {"g_V_valueMap_matchXa_selectXnameX_bX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Match(__.As("a").Select("name").As("b"))}}, + {"g_V_matchXa_out_bX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out().As("b"))}}, + {"g_V_matchXa_out_bX_selectXb_idX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out().As("b")).Select("b").By(T.Id)}}, + {"g_V_matchXa_knows_b__b_created_cX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("knows").As("b"), __.As("b").Out("created").As("c"))}}, + {"g_V_matchXb_created_c__a_knows_bX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("b").Out("created").As("c"), __.As("a").Out("knows").As("b"))}}, + {"g_V_matchXa_created_b__b_0created_cX_whereXa_neq_cX_selectXa_cX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("created").As("b"), __.As("b").In("created").As("c")).Where("a", P.Neq("c")).Select("a", "c")}}, + {"g_V_matchXd_0knows_a__d_hasXname_vadasX__a_knows_b__b_created_cX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("d").In("knows").As("a"), __.As("d").Has("name", "vadas"), __.As("a").Out("knows").As("b"), __.As("b").Out("created").As("c"))}}, + {"g_V_matchXa_created_lop_b__b_0created_29_c__c_whereXrepeatXoutX_timesX2XXX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("created").Has("name", "lop").As("b"), __.As("b").In("created").Has("age", 29).As("c"), __.As("c").Where(__.Repeat(__.Out()).Times(2)))}}, + {"g_V_asXaX_out_asXbX_matchXa_out_count_c__b_in_count_cX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Match(__.As("a").Out().Count().As("c"), __.As("b").In().Count().As("c"))}}, + {"g_V_matchXa__a_out_b__notXa_created_bXX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out().As("b"), __.Not(__.As("a").Out("created").As("b")))}}, + {"g_V_matchXa_created_lop_b__b_0created_29_cX_whereXc_repeatXoutX_timesX2XX_selectXa_b_cX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("created").Has("name", "lop").As("b"), __.As("b").In("created").Has("age", 29).As("c")).Where(__.As("c").Repeat(__.Out()).Times(2)).Select("a", "b", "c")}}, + {"g_V_out_out_matchXa_0created_b__b_0knows_cX_selectXcX_outXcreatedX_name", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Match(__.As("a").In("created").As("b"), __.As("b").In("knows").As("c")).Select("c").Out("created").Values("name")}}, + {"g_V_matchXa_knows_b__b_created_c__a_created_cX_dedupXa_b_cX_selectXaX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("knows").As("b"), __.As("b").Out("created").As("c"), __.As("a").Out("created").As("c")).Dedup("a", "b", "c").Select("a").By("name")}}, + {"g_V_matchXa_created_b__a_repeatXoutX_timesX2XX_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("created").As("b"), __.As("a").Repeat(__.Out()).Times(2).As("b")).Select("a", "b")}}, + {"g_V_notXmatchXa_age_b__a_name_cX_whereXb_eqXcXX_selectXaXX_name", new List, ITraversal>> {(g,p) =>g.V().Not(__.Match(__.As("a").Values("age").As("b"), __.As("a").Values("name").As("c")).Where("b", P.Eq("c")).Select("a")).Values("name")}}, + {"g_V_matchXa_knows_b__andXa_created_c__b_created_c__andXb_created_count_d__a_knows_count_dXXX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("knows").As("b"), __.And(__.As("a").Out("created").As("c"), __.As("b").Out("created").As("c"), __.And(__.As("b").Out("created").Count().As("d"), __.As("a").Out("knows").Count().As("d"))))}}, + {"g_V_matchXa_whereXa_neqXcXX__a_created_b__orXa_knows_vadas__a_0knows_and_a_hasXlabel_personXX__b_0created_c__b_0created_count_isXgtX1XXX_selectXa_b_cX_byXidX", new List, ITraversal>> {(g,p) =>g.V().Match(__.Where("a", P.Neq("c")), __.As("a").Out("created").As("b"), __.Or(__.As("a").Out("knows").Has("name", "vadas"), __.As("a").In("knows").And().As("a").Has(T.Label, "person")), __.As("b").In("created").As("c"), __.As("b").In("created").Count().Is(P.Gt(1))).Select("a", "b", "c").By(T.Id)}}, + {"g_V_matchXa__a_both_b__b_both_cX_dedupXa_bX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Both().As("b"), __.As("b").Both().As("c")).Dedup("a", "b")}}, + {"g_V_matchXa_knows_b__b_created_lop__b_matchXb_created_d__d_0created_cX_selectXcX_cX_selectXa_b_cX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("knows").As("b"), __.As("b").Out("created").Has("name", "lop"), __.As("b").Match(__.As("b").Out("created").As("d"), __.As("d").In("created").As("c")).Select("c").As("c")).Select("a", "b", "c")}}, + {"g_V_matchXa_knows_b__a_created_cX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("knows").As("b"), __.As("a").Out("created").As("c"))}}, + {"g_V_matchXwhereXandXa_created_b__b_0created_count_isXeqX3XXXX__a_both_b__whereXb_inXX", new List, ITraversal>> {(g,p) =>g.V().Match(__.Where(__.And(__.As("a").Out("created").As("b"), __.As("b").In("created").Count().Is(P.Eq(3)))), __.As("a").Both().As("b"), __.Where(__.As("b").In()))}}, + {"g_V_matchXa_outEXcreatedX_order_byXweight_descX_limitX1X_inV_b__b_hasXlang_javaXX_selectXa_bX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").OutE("created").Order().By("weight", Order.Desc).Limit(1).InV().As("b"), __.As("b").Has("lang", "java")).Select("a", "b").By("name")}}, + {"g_V_matchXa_both_b__b_both_cX_dedupXa_bX_byXlabelX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Both().As("b"), __.As("b").Both().As("c")).Dedup("a", "b").By(T.Label)}}, + {"g_V_matchXa_created_b__b_0created_aX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("created").As("b"), __.As("b").In("created").As("a"))}}, + {"g_V_asXaX_out_asXbX_matchXa_out_count_c__orXa_knows_b__b_in_count_c__and__c_isXgtX2XXXX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Match(__.As("a").Out().Count().As("c"), __.Or(__.As("a").Out("knows").As("b"), __.As("b").In().Count().As("c").And().As("c").Is(P.Gt(2))))}}, + {"g_V_matchXa_knows_count_bX_selectXbX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("knows").Count().As("b")).Select("b")}}, + {"g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_d__c_sungBy_d__d_hasXname_GarciaXX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").In("sungBy").As("b"), __.As("a").In("writtenBy").As("c"), __.As("b").Out("writtenBy").As("d"), __.As("c").Out("sungBy").As("d"), __.As("d").Has("name", "Garcia"))}}, + {"g_V_matchXa_hasXsong_name_sunshineX__a_mapX0followedBy_weight_meanX_b__a_0followedBy_c__c_filterXweight_whereXgteXbXXX_outV_dX_selectXdX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Has("song", "name", "HERE COMES SUNSHINE"), __.As("a").Map(__.InE("followedBy").Values("weight").Mean()).As("b"), __.As("a").InE("followedBy").As("c"), __.As("c").Filter(__.Values("weight").Where(P.Gte("b"))).OutV().As("d")).Select("d").By("name")}}, + {"g_V_matchXa_0sungBy_b__a_0sungBy_c__b_writtenBy_d__c_writtenBy_e__d_hasXname_George_HarisonX__e_hasXname_Bob_MarleyXX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").In("sungBy").As("b"), __.As("a").In("sungBy").As("c"), __.As("b").Out("writtenBy").As("d"), __.As("c").Out("writtenBy").As("e"), __.As("d").Has("name", "George_Harrison"), __.As("e").Has("name", "Bob_Marley"))}}, + {"g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__a_0sungBy_bX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Has("name", "Garcia"), __.As("a").In("writtenBy").As("b"), __.As("a").In("sungBy").As("b"))}}, + {"g_V_hasLabelXsongsX_matchXa_name_b__a_performances_cX_selectXb_cX_count", new List, ITraversal>> {(g,p) =>g.V().HasLabel("song").Match(__.As("a").Values("name").As("b"), __.As("a").Values("performances").As("c")).Select("b", "c").Count()}}, + {"g_V_matchXa_followedBy_count_isXgtX10XX_b__a_0followedBy_count_isXgtX10XX_bX_count", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("followedBy").Count().Is(P.Gt(10)).As("b"), __.As("a").In("followedBy").Count().Is(P.Gt(10)).As("b")).Count()}}, + {"g_V_matchXa_0sungBy_b__a_0writtenBy_c__b_writtenBy_dX_whereXc_sungBy_dX_whereXd_hasXname_GarciaXX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").In("sungBy").As("b"), __.As("a").In("writtenBy").As("c"), __.As("b").Out("writtenBy").As("d")).Where(__.As("c").Out("sungBy").As("d")).Where(__.As("d").Has("name", "Garcia"))}}, + {"g_V_matchXa_hasXname_GarciaX__a_0writtenBy_b__b_followedBy_c__c_writtenBy_d__whereXd_neqXaXXX", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Has("name", "Garcia"), __.As("a").In("writtenBy").As("b"), __.As("b").Out("followedBy").As("c"), __.As("c").Out("writtenBy").As("d"), __.Where("d", P.Neq("a")))}}, + {"g_V_matchXa_outXknowsX_name_bX_identity", new List, ITraversal>> {(g,p) =>g.V().Match(__.As("a").Out("knows").Values("name").As("b")).Identity()}}, + {"g_V_outE_mathX0_minus_itX_byXweightX", new List, ITraversal>> {(g,p) =>g.V().OutE().Math("0-_").By("weight")}}, + {"g_V_hasXageX_valueMap_mathXit_plus_itXbyXselectXageX_unfoldXX", new List, ITraversal>> {(g,p) =>g.V().Has("age").ValueMap().Math("_+_").By(__.Select("age").Unfold())}}, + {"g_V_asXaX_outXknowsX_asXbX_mathXa_plus_bX_byXageX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("knows").As("b").Math("a + b").By("age")}}, + {"g_withSideEffectXx_100X_V_age_mathX__plus_xX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("x", 100).V().Values("age").Math("_ + x")}}, + {"g_V_asXaX_outXcreatedX_asXbX_mathXb_plus_aX_byXinXcreatedX_countX_byXageX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("created").As("b").Math("b + a").By(__.In("created").Count()).By("age")}}, + {"g_withSackX1X_injectX1X_repeatXsackXsumX_byXconstantX1XXX_timesX5X_emit_mathXsin__X_byXsackX", new List, ITraversal>> {(g,p) =>g.WithSack(1).Inject(1).Repeat(__.Sack(Operator.Sum).By(__.Constant(1))).Times(5).Emit().Math("sin _").By(__.Sack())}}, + {"g_V_projectXa_b_cX_byXbothE_weight_sumX_byXbothE_countX_byXnameX_order_byXmathXa_div_bX_descX_selectXcX", new List, ITraversal>> {(g,p) =>g.V().Project("a", "b", "c").By(__.BothE().Values("weight").Sum()).By(__.BothE().Count()).By("name").Order().By(__.Math("a / b"), Order.Desc).Select("c")}}, + {"g_V_mathXit_plus_itXbyXageX", new List, ITraversal>> {(g,p) =>g.V().Math("_+_").By("age")}}, + {"g_V_valueMap_mathXit_plus_itXbyXselectXageX_unfoldXX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Math("_+_").By(__.Select("age").Unfold())}}, + {"g_VX1X_outE_asXexpectedWeightX_mathXexpectedWeightPlusOneXbyXweightX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().As("expectedWeight").Math("expectedWeight + 1").By("weight")}}, + {"g_V_age_max", new List, ITraversal>> {(g,p) =>g.V().Values("age").Max()}}, + {"g_V_foo_max", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Max()}}, + {"g_V_name_max", new List, ITraversal>> {(g,p) =>g.V().Values("name").Max()}}, + {"g_V_age_fold_maxXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Max(Scope.Local)}}, + {"g_V_aggregateXaX_byXageX_capXaX_maxXlocalX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("age").Cap("a").Max(Scope.Local)}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_maxXlocalX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("age").Cap("a").Max(Scope.Local)}}, + {"g_V_aggregateXaX_byXageX_capXaX_unfold_max", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("age").Cap("a").Unfold().Max()}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_max", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("age").Cap("a").Unfold().Max()}}, + {"g_V_aggregateXaX_byXfooX_capXaX_maxXlocalX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("foo").Cap("a").Max(Scope.Local)}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_maxXlocalX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("foo").Cap("a").Max(Scope.Local)}}, + {"g_V_aggregateXaX_byXfooX_capXaX_unfold_max", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("foo").Cap("a").Unfold().Max()}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_max", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("foo").Cap("a").Unfold().Max()}}, + {"g_V_foo_fold_maxXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Fold().Max(Scope.Local)}}, + {"g_V_name_fold_maxXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Max(Scope.Local)}}, + {"g_V_repeatXbothX_timesX5X_age_max", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both()).Times(5).Values("age").Max()}}, + {"g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_maxX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Group().By("name").By(__.BothE().Values("weight").Max())}}, + {"g_VX1X_valuesXageX_maxXlocalX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Max(Scope.Local)}}, + {"g_V_localXunionXvaluesXageX_outE_valuesXweightXX_foldX_maxXlocalX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Union(__.Values("age"), __.OutE().Values("weight")).Fold()).Max(Scope.Local)}}, + {"g_V_age_mean", new List, ITraversal>> {(g,p) =>g.V().Values("age").Mean()}}, + {"g_V_foo_mean", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Mean()}}, + {"g_V_age_fold_meanXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Mean(Scope.Local)}}, + {"g_V_foo_fold_meanXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Fold().Mean(Scope.Local)}}, + {"g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_meanX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Group().By("name").By(__.BothE().Values("weight").Mean())}}, + {"g_V_aggregateXaX_byXageX_meanXlocalX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("age").Cap("a").Mean(Scope.Local)}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_meanXlocalX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("age").Cap("a").Mean(Scope.Local)}}, + {"g_V_aggregateXaX_byXageX_capXaX_unfold_mean", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("age").Cap("a").Unfold().Mean()}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_mean", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("age").Cap("a").Unfold().Mean()}}, + {"g_V_aggregateXaX_byXfooX_meanXlocalX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("foo").Cap("a").Mean(Scope.Local)}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_meanXlocalX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("foo").Cap("a").Mean(Scope.Local)}}, + {"g_V_aggregateXaX_byXfooX_capXaX_unfold_mean", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("foo").Cap("a").Unfold().Mean()}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_mean", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("foo").Cap("a").Unfold().Mean()}}, + {"g_injectXnull_10_20_nullX_mean", new List, ITraversal>> {(g,p) =>g.Inject(null, 10, 20, null).Mean()}}, + {"g_injectXlistXnull_10_20_nullXX_meanXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, 10, 20, null }).Mean(Scope.Local)}}, + {"g_VX1X_valuesXageX_meanXlocalX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Mean(Scope.Local)}}, + {"g_V_localXunionXvaluesXageX_outE_valuesXweightXX_foldX_meanXlocalX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Union(__.Values("age"), __.OutE().Values("weight")).Fold()).Mean(Scope.Local)}}, + {"g_injectXnullX_mergeXinjectX1XX", new List, ITraversal>> {(g,p) =>g.Inject(null).Merge(__.Inject(1))}}, + {"g_V_valuesXnameX_mergeXV_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Merge(__.V().Fold())}}, + {"g_V_fold_mergeXconstantXnullXX", new List, ITraversal>> {(g,p) =>g.V().Fold().Merge(__.Constant(null))}}, + {"g_V_fold_mergeXVX", new List, ITraversal>> {(g,p) =>g.V().Fold().Merge(__.V())}}, + {"g_V_elementMap_mergeXconstantXaXX", new List, ITraversal>> {(g,p) =>g.V().ElementMap().Merge(__.Constant("a"))}}, + {"g_V_fold_mergeXV_asXaX_projectXaX_byXnameXX", new List, ITraversal>> {(g,p) =>g.V().Fold().Merge(__.V().As("a").Project("a").By("name"))}}, + {"g_V_fold_mergeXk_vX", new List, ITraversal>> {(g,p) =>g.V().Fold().Merge(new Dictionary {{ "k", "v" }})}}, + {"g_V_valuesXnameX_fold_mergeX2X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Merge(2)}}, + {"g_V_valuesXnameX_fold_mergeXnullX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Merge(null)}}, + {"g_V_valuesXnonexistantX_fold_mergeXV_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("nonexistant").Fold().Merge(__.V().Values("name").Fold())}}, + {"g_V_valuesXnameX_fold_mergeXV_valuesXnonexistantX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Merge(__.V().Values("nonexistant").Fold())}}, + {"g_V_valuesXageX_fold_mergeXV_valuesXageX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Merge(__.V().Values("age").Fold())}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_mergeXMARKOX", new List, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values("name").ToUpper()).Merge(new List { "MARKO" })}}, + {"g_injectXmarkoX_mergeXV_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "marko" }).Merge(__.V().Values("name").Fold())}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_mergeXseattle_vancouverX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("location").Select(Column.Values).Unfold().Merge(new List { "seattle", "vancouver" })}}, + {"g_V_out_out_path_byXnameX_mergeXempty_listX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Merge(new List { })}}, + {"g_V_valuesXageX_fold_mergeXconstantX27X_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Merge(__.Constant(27).Fold())}}, + {"g_V_out_out_path_byXnameX_mergeXdave_kelvinX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Merge(new List { "dave", "kelvin" })}}, + {"g_injectXa_null_bX_mergeXa_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Merge(new List { "a", "c" })}}, + {"g_injectXa_null_bX_mergeXa_null_cX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Merge(new List { "a", null, "c" })}}, + {"g_injectX3_threeX_mergeXfive_three_7X", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Merge(new List { "five", "three", 7 })}}, + {"g_V_asXnameX_projectXnameX_byXnameX_mergeXother_blueprintX", new List, ITraversal>> {(g,p) =>g.V().As("name").Project("name").By("name").Merge(new Dictionary {{ "other", "blueprint" }})}}, + {"g_V_hasXname_markoX_elementMap_mergeXV_hasXname_lopX_elementMapX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").ElementMap().Merge(__.V().Has("name", "lop").ElementMap())}}, + {"g_V_mergeEXlabel_selfX_optionXonMatch_emptyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddE((string) "self"), (g,p) =>g.V().MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, (IDictionary) new Dictionary {}), (g,p) =>g.E(), (g,p) =>g.E().Properties(), (g,p) =>g.V()}}, + {"g_V_mergeEXlabel_selfX_optionXonMatch_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddE((string) "self"), (g,p) =>g.V().MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, (IDictionary) null), (g,p) =>g.E(), (g,p) =>g.E().Properties(), (g,p) =>g.V()}}, + {"g_V_mergeEXemptyX_optionXonCreate_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().As("v").MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (IDictionary) null).Option(Merge.OutV, (ITraversal) __.Select("v")).Option(Merge.InV, (ITraversal) __.Select("v")), (g,p) =>g.E(), (g,p) =>g.V()}}, + {"g_V_mergeE_inlineXemptyX_optionXonCreate_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().As("v").MergeE((IDictionary) new Dictionary {{ T.Label, "self" }, { Direction.Out, Merge.OutV }, { Direction.In, Merge.InV }}).Option(Merge.OnCreate, (IDictionary) null).Option(Merge.OutV, (ITraversal) __.Select("v")).Option(Merge.InV, (ITraversal) __.Select("v")), (g,p) =>g.E(), (g,p) =>g.V()}}, + {"g_mergeEXemptyX_exists", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddE((string) "self"), (g,p) =>g.MergeE((IDictionary) new Dictionary {}), (g,p) =>g.E(), (g,p) =>g.V()}}, + {"g_mergeEXemptyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeE((IDictionary) new Dictionary {})}}, + {"g_V_mergeEXemptyX_two_exist", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.V().As("v").MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OutV, (ITraversal) __.Select("v")).Option(Merge.InV, (ITraversal) __.Select("v")), (g,p) =>g.E(), (g,p) =>g.V()}}, + {"g_V_mergeE_inlineXemptyX_two_exist", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.V().As("v").MergeE((IDictionary) new Dictionary {{ T.Label, "self" }, { Direction.Out, Merge.OutV }, { Direction.In, Merge.InV }}).Option(Merge.OutV, (ITraversal) __.Select("v")).Option(Merge.InV, (ITraversal) __.Select("v")), (g,p) =>g.E(), (g,p) =>g.V()}}, + {"g_mergeEXnullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeE((IDictionary) null)}}, + {"g_mergeEXnullvarX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_V_limitX1X_mergeEXnullvarX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().Limit(1).MergeE(new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_V_mergeEXnullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().MergeE((IDictionary) null)}}, + {"g_mergeEXlabel_knows_out_marko_in_vadasX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "marko").Out("knows").Has("person", "name", "vadas")}}, + {"g_withSideEffectXa_label_knows_out_marko_in_vadasX_mergeEXselectXaXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE((ITraversal) __.Select("a")), (g,p) =>g.V().Has("person", "name", "marko").Out("knows").Has("person", "name", "vadas")}}, + {"g_mergeEXlabel_knows_out_marko1_in_vadas1X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "marko").Out("knows").Has("person", "name", "vadas")}}, + {"g_mergeEXlabel_knows_out_marko_in_vadas_weight_05X_exists", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "marko").OutE("knows").Has("weight", 0.5).InV().Has("person", "name", "vadas"), (g,p) =>g.V().Has("person", "name", "marko").Out("knows").Has("person", "name", "vadas")}}, + {"g_mergeEXlabel_knows_out_marko_in_vadas_weight_05X", new List, ITraversal>> {(g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX", new List, ITraversal>> {(g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"]))}}, + {"g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"])), (g,p) =>g.V(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N")}}, + {"g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("created", "Y"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"])), (g,p) =>g.V(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N")}}, + {"g_V_hasXperson_name_marko_X_mergeEXlabel_knowsX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("created", "Y").AddE((string) "knows").From("a").To("b"), (g,p) =>g.V().Has("person", "name", "marko").MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"])), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N")}}, + {"g_withSideEffectXlabel_knows_out_marko_in_vadasX_injectX1X_selectXmX_mergeE", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.Inject(1).Select("m").MergeE(), (g,p) =>g.V().Has("person", "name", "marko").Out("knows").Has("person", "name", "vadas")}}, + {"g_mergeEXlabel_knows_in_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("created", "Y").AddE((string) "knows").From("b").To("a").Property("created", "Y"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"])), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N").InV().Has("name", "vadas")}}, + {"g_mergeEXlabel_knows_out_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("created", "Y").AddE((string) "knows").From("b").To("a").Property("created", "Y"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"])), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N").OutV().Has("name", "vadas")}}, + {"g_mergeEXlabel_knows_out_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("created", "Y").AddE((string) "knows").From("b").To("a").Property("created", "Y"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"]))}}, + {"g_mergeEXout_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated_error", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("created", "Y").AddE((string) "knows").From("b").To("a").Property("created", "Y"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"])), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N").OutV().Has("name", "vadas")}}, + {"g_mergeEXout_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("created", "Y").AddE((string) "knows").From("b").To("a").Property("created", "Y"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"]))}}, + {"g_withSideEffect_mergeEXout_vadasX_optionXonCreate_created_YX_optionXonMatch_created_NX_exists_updated_dynamic_override_sketchily_allowed", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("created", "Y").AddE((string) "knows").From("b").To("a").Property("created", "Y"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("sideEffect1")).Option(Merge.OnMatch, new GValue>("xx3", (IDictionary) p["xx3"])), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N").OutV().Has("name", "vadas")}}, + {"g_V_hasXperson_name_marko_X_mergeEXlabel_self_out_vadas1_in_vadas1X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.V().Has("person", "name", "marko").MergeE(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("self").BothV().Has("name", "vadas")}}, + {"g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX_exists", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("c")).Option(Merge.OnMatch, (ITraversal) __.Select("m")), (g,p) =>g.V(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N")}}, + {"g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("c")).Option(Merge.OnMatch, (ITraversal) __.Select("m")), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N")}}, + {"g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko1_in_vadas1X_optionXonCreate_selectXcXX_optionXonMatch_selectXmXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("c")).Option(Merge.OnMatch, (ITraversal) __.Select("m")), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N")}}, + {"g_mergeEXlabel_knows_out_marko_in_vadasX_aliased_direction", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "marko").Out("knows").Has("person", "name", "vadas")}}, + {"g_withSideEffectXm1_label_knows_out_marko_in_vadas_m2_label_self_out_vadas_in_vadasX_unionXselectXm1X_selectXm2XX_mergeE", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.Union(__.Select("m1"), __.Select("m2")).MergeE(), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.V().Has("person", "name", "marko").Out("knows").Has("person", "name", "vadas"), (g,p) =>g.V().Has("person", "name", "vadas").Out("self").Has("person", "name", "vadas")}}, + {"g_withSideEffectXc_created_YX_withSideEffectXm_matchedX_mergeEXlabel_knows_out_marko_in_vadasX_optionXonCreate_selectXcXX_optionXonMatch_sideEffectXpropertiesXweightX_dropX_selectXmXX_exists", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").Property("weight", 1.0d).From("a").To("b"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("c")).Option(Merge.OnMatch, (ITraversal) __.SideEffect(__.Properties("weight").Drop()).Select("m")), (g,p) =>g.V(), (g,p) =>g.E().HasLabel("knows").Has("created", "Y"), (g,p) =>g.E().HasLabel("knows").Has("created", "N"), (g,p) =>g.E().HasLabel("knows").Has("weight")}}, + {"g_mergeE_with_outVinV_options_map", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OutV, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.InV, new GValue>("xx3", (IDictionary) p["xx3"])), (g,p) =>g.V(), (g,p) =>g.V().Has("name", "marko").Out("knows").Has("name", "vadas")}}, + {"g_mergeE_inline_with_outVinV_options_map", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE((IDictionary) new Dictionary {{ Direction.Out, Merge.OutV }, { Direction.In, Merge.InV }, { T.Label, "knows" }}).Option(Merge.OutV, new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.InV, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V(), (g,p) =>g.V().Has("name", "marko").Out("knows").Has("name", "vadas")}}, + {"g_mergeE_with_outVinV_options_select", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.V(p["vid1"]).As("x").V(p["vid2"]).As("y").MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OutV, (ITraversal) __.Select("x")).Option(Merge.InV, (ITraversal) __.Select("y")), (g,p) =>g.V(), (g,p) =>g.V().Has("name", "marko").Out("knows").Has("name", "vadas")}}, + {"g_mergeE_inline_with_outVinV_options_select", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.V(p["vid1"]).As("x").V(p["vid2"]).As("y").MergeE((IDictionary) new Dictionary {{ Direction.Out, Merge.OutV }, { Direction.In, Merge.InV }, { T.Label, "knows" }}).Option(Merge.OutV, (ITraversal) __.Select("x")).Option(Merge.InV, (ITraversal) __.Select("y")), (g,p) =>g.V(), (g,p) =>g.V().Has("name", "marko").Out("knows").Has("name", "vadas")}}, + {"g_mergeE_with_eid_specified_and_inheritance_1", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E("201"), (g,p) =>g.V().Has("name", "marko").Out("knows").Has("name", "vadas")}}, + {"g_mergeE_with_eid_specified_and_inheritance_2", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E("201"), (g,p) =>g.V().Has("name", "marko").Out("knows").Has("name", "vadas")}}, + {"g_mergeE_outV_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"]))}}, + {"g_withSideEffect_withSideEffect_mergeE_outV_dynamic_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("sideEffect1"))}}, + {"g_mergeE_inV_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"]))}}, + {"g_withSideEffect_mergeE_inV_dynamic_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("sideEffect1"))}}, + {"g_mergeE_label_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"]))}}, + {"g_mergeE_label_dynamic_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("sideEffect1"))}}, + {"g_mergeE_id_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"]))}}, + {"g_withSideEffect_mergeE_id_dynamic_override_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("sideEffect1"))}}, + {"g_mergeV_mergeE_combination_new_vertices", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).As("outV").MergeV(new GValue>("xx2", (IDictionary) p["xx2"])).As("inV").MergeE(new GValue>("xx3", (IDictionary) p["xx3"])).Option(Merge.OutV, (ITraversal) __.Select("outV")).Option(Merge.InV, (ITraversal) __.Select("inV")), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.V().Has("name", "marko").Out("knows").Has("name", "vadas")}}, + {"g_mergeV_mergeE_combination_existing_vertices", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").AddV((string) "person").Property("name", "vadas"), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).As("outV").MergeV(new GValue>("xx2", (IDictionary) p["xx2"])).As("inV").MergeE(new GValue>("xx3", (IDictionary) p["xx3"])).Option(Merge.OutV, (ITraversal) __.Select("outV")).Option(Merge.InV, (ITraversal) __.Select("inV")), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.V().Has("name", "marko").Out("knows").Has("name", "vadas")}}, + {"g_V_asXvX_mergeEXxx1X_optionXMerge_onMatch_xx2X_optionXMerge_outV_selectXvXX_optionXMerge_inV_selectXvXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().As("v").MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, new GValue>("xx2", (IDictionary) p["xx2"])).Option(Merge.OutV, (ITraversal) __.Select("v")).Option(Merge.InV, (ITraversal) __.Select("v"))}}, + {"g_V_mergeEXlabel_knows_out_marko_in_vadasX_optionXonMatch_sideEffectXpropertyXweight_0XX_constantXemptyXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").Property("weight", 1).From("a").To("b"), (g,p) =>g.V().MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, (ITraversal) __.SideEffect(__.Property("weight", 0)).Constant(new Dictionary {})), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasLabel("knows").Has("weight", 0)}}, + {"g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonMatch_sideEffectXpropertyXweight_0XX_constantXemptyXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").Property("weight", 1).From("a").To("b"), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, (ITraversal) __.SideEffect(__.Property("weight", 0)).Constant(new Dictionary {})), (g,p) =>g.V(), (g,p) =>g.E().HasLabel("knows").Has("weight", 1), (g,p) =>g.E().HasLabel("knows").Has("weight", 0), (g,p) =>g.V().Has("weight")}}, + {"g_unionXselectXmapX_selectXmapX_constantXcreated_NXX_fold_asXmX_mergeEXselectXmX_limitXlocal_1X_unfoldX_optionXonCreate_selectXmX_rangeXlocal_1_2X_unfoldX_optionXonMatch_selectXmX_tailXlocalX_unfoldX_to_match", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.Union(__.Select("map"), __.Select("map"), __.Constant(new Dictionary {{ "created", "N" }})).Fold().As("m").MergeE((ITraversal) __.Select("m").Limit(Scope.Local, 1).Unfold()).Option(Merge.OnCreate, (ITraversal) __.Select("m").Range(Scope.Local, 1, 2).Unfold()).Option(Merge.OnMatch, (ITraversal) __.Select("m").Tail(Scope.Local).Unfold()), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().Has("created", "N"), (g,p) =>g.V().Has("person", "name", "marko").OutE("knows").Has("created", "N").InV().Has("person", "name", "vadas")}}, + {"g_unionXselectXmapX_selectXmapX_constantXcreated_NXX_fold_asXmX_mergeEXselectXmX_limitXlocal_1X_unfoldX_optionXonCreate_selectXmX_rangeXlocal_1_2X_unfoldX_optionXonMatch_selectXmX_tailXlocalX_unfoldX_to_create", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.Union(__.Select("map"), __.Select("map"), __.Constant(new Dictionary {{ "created", "N" }})).Fold().As("m").MergeE((ITraversal) __.Select("m").Limit(Scope.Local, 1).Unfold()).Option(Merge.OnCreate, (ITraversal) __.Select("m").Range(Scope.Local, 1, 2).Unfold()).Option(Merge.OnMatch, (ITraversal) __.Select("m").Tail(Scope.Local).Unfold()), (g,p) =>g.V(), (g,p) =>g.E(), (g,p) =>g.E().HasNot("created"), (g,p) =>g.V().Has("person", "name", "marko").OutE("knows").HasNot("created").InV().Has("person", "name", "vadas"), (g,p) =>g.V().Has("person", "name", "vadas").OutE("self").HasNot("weight").InV().Has("person", "name", "vadas")}}, + {"g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonMatch_weight_nullX_allowed", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("weight", 1.0d), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V(), (g,p) =>g.E().HasLabel("knows"), (g,p) =>g.E().HasLabel("knows").Has("weight", (object) null)}}, + {"g_mergeEXlabel_knows_out_marko_in_vadasX_optionXonMatch_weight_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").As("a").AddV((string) "person").Property("name", "vadas").As("b").AddE((string) "knows").From("a").To("b").Property("weight", 1.0d), (g,p) =>g.MergeE(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V(), (g,p) =>g.E().HasLabel("knows"), (g,p) =>g.E().HasLabel("knows").Has("weight")}}, + {"g_mergeVXemptyX_optionXonMatch_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV((IDictionary) new Dictionary {}).Option(Merge.OnMatch, (IDictionary) null), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 29)}}, + {"g_V_mergeVXemptyX_optionXonMatch_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().MergeV((IDictionary) new Dictionary {}).Option(Merge.OnMatch, (IDictionary) null), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 29)}}, + {"g_mergeVXnullX_optionXonCreate_label_null_name_markoX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_V_mergeVXnullX_optionXonCreate_label_null_name_markoX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().MergeV(new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeVXlabel_person_name_stephenX_optionXonCreate_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (IDictionary) null), (g,p) =>g.V(), (g,p) =>g.V().Has("person", "name", "marko"), (g,p) =>g.V().Has("person", "name", "stephen")}}, + {"g_V_mergeVXlabel_person_name_stephenX_optionXonCreate_nullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (IDictionary) null), (g,p) =>g.V(), (g,p) =>g.V().Has("person", "name", "marko"), (g,p) =>g.V().Has("person", "name", "stephen")}}, + {"g_mergeVXnullX_optionXonCreate_emptyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV((IDictionary) null).Option(Merge.OnCreate, (IDictionary) new Dictionary {}), (g,p) =>g.V()}}, + {"g_V_mergeVXnullX_optionXonCreate_emptyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().MergeV((IDictionary) null).Option(Merge.OnCreate, (IDictionary) new Dictionary {}), (g,p) =>g.V()}}, + {"g_mergeVXemptyX_no_existing", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {}), (g,p) =>g.V()}}, + {"g_injectX0X_mergeVXemptyX_no_existing", new List, ITraversal>> {(g,p) =>g.Inject(0).MergeV((IDictionary) new Dictionary {}), (g,p) =>g.V()}}, + {"g_mergeVXemptyX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV((IDictionary) new Dictionary {}), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 29)}}, + {"g_V_mergeVXemptyX_two_exist", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.V().MergeV((IDictionary) new Dictionary {}), (g,p) =>g.V(), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 29), (g,p) =>g.V().Has("person", "name", "vadas").Has("age", 27)}}, + {"g_mergeVXnullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV((IDictionary) null), (g,p) =>g.V()}}, + {"g_mergeVXnullvarX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V()}}, + {"g_V_mergeVXnullX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.V().MergeV((IDictionary) null), (g,p) =>g.V()}}, + {"g_mergeVXlabel_person_name_stephenX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "stephen")}}, + {"g_mergeVXlabel_person_name_markoX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "marko")}}, + {"g_mergeVXlabel_person_name_stephenX_optionXonCreate_label_person_name_stephen_age_19X_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V().Has("person", "name", "stephen").Has("age", 19)}}, + {"g_mergeVXlabel_person_name_markoX_optionXonMatch_age_19X_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 19)}}, + {"g_withSideEffectXc_label_person_name_stephenX_withSideEffectXm_label_person_name_stephen_age_19X_mergeVXselectXcXX_optionXonCreate_selectXmXX_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV((ITraversal) __.Select("c")).Option(Merge.OnCreate, (ITraversal) __.Select("m")), (g,p) =>g.V().Has("person", "name", "stephen").Has("age", 19)}}, + {"g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_mergeVXselectXcXX_optionXonMatch_selectXmXX_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV((ITraversal) __.Select("c")).Option(Merge.OnMatch, (ITraversal) __.Select("m")), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 19)}}, + {"g_mergeVXlabel_person_name_markoX_propertyXname_vadas_acl_publicX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Property("name", "vadas", "acl", "public"), (g,p) =>g.V().Properties("name").HasValue("vadas").Has("acl", "public")}}, + {"g_injectX0X_mergeVXlabel_person_name_stephenX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(0).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "stephen")}}, + {"g_injectX0X_mergeVXlabel_person_name_markoX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(0).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])), (g,p) =>g.V().Has("person", "name", "marko")}}, + {"g_injectX0X_mergeVXlabel_person_name_stephenX_optionXonCreate_label_person_name_stephen_age_19X_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(0).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V().Has("person", "name", "stephen").Has("age", 19)}}, + {"g_injectX0X_mergeVXlabel_person_name_markoX_optionXonMatch_age_19X_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(0).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 19)}}, + {"g_withSideEffectXc_label_person_name_stephenX_withSideEffectXm_label_person_name_stephen_age_19X_injectX0X_mergeVXselectXcXX_optionXonCreate_selectXmXX_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(0).MergeV((ITraversal) __.Select("c")).Option(Merge.OnCreate, (ITraversal) __.Select("m")), (g,p) =>g.V().Has("person", "name", "stephen").Has("age", 19)}}, + {"g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_injectX0X_mergeVXselectXcXX_optionXonMatch_selectXmXX_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(0).MergeV((ITraversal) __.Select("c")).Option(Merge.OnMatch, (ITraversal) __.Select("m")), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 19)}}, + {"g_injectX0X_mergeVXlabel_person_name_markoX_propertyXname_vadas_acl_publicX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(0).MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Property("name", "vadas", "acl", "public"), (g,p) =>g.V().Properties("name").HasValue("vadas").Has("acl", "public")}}, + {"g_injectXlabel_person_name_marko_label_person_name_stephenX_mergeVXidentityX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(new Dictionary {{ T.Label, "person" }, { "name", "marko" }}, new Dictionary {{ T.Label, "person" }, { "name", "stephen" }}).MergeV((ITraversal) __.Identity()), (g,p) =>g.V().Has("person", "name", "stephen"), (g,p) =>g.V().Has("person", "name", "marko"), (g,p) =>g.V()}}, + {"g_injectXlabel_person_name_marko_label_person_name_stephenX_mergeV", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(new Dictionary {{ T.Label, "person" }, { "name", "marko" }}, new Dictionary {{ T.Label, "person" }, { "name", "stephen" }}).MergeV(), (g,p) =>g.V().Has("person", "name", "stephen"), (g,p) =>g.V().Has("person", "name", "marko"), (g,p) =>g.V()}}, + {"g_mergeVXlabel_person_name_stephenX_propertyXlist_name_steveX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property(Cardinality.List, "name", "stephen"), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Property(Cardinality.List, "name", "steve"), (g,p) =>g.V(), (g,p) =>g.V().Properties("name").HasValue("steve"), (g,p) =>g.V().Properties("name").HasValue("stephen"), (g,p) =>g.V().Properties("name")}}, + {"g_mergeXlabel_person_name_vadasX_optionXonMatch_age_35X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "vadas").Property("age", 29).AddV((string) "person").Property("name", "vadas").Property("age", 27), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnMatch, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V().Has("age", 35), (g,p) =>g.V()}}, + {"g_V_mapXmergeXlabel_person_name_joshXX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "vadas").Property("age", 29).AddV((string) "person").Property("name", "stephen").Property("age", 27), (g,p) =>g.V().Map(__.MergeV(new GValue>("xx1", (IDictionary) p["xx1"]))), (g,p) =>g.V().Has("person", "name", "josh"), (g,p) =>g.V()}}, + {"g_withSideEffectXc_label_person_name_markoX_withSideEffectXm_age_19X_mergeVXselectXcXX_optionXonMatch_sideEffectXpropertiesXageX_dropX_selectXmXX_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.MergeV((ITraversal) __.Select("c")).Option(Merge.OnMatch, (ITraversal) __.SideEffect(__.Properties("age").Drop()).Select("m")), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 19), (g,p) =>g.V().Has("person", "name", "marko").Has("age")}}, + {"g_withSideEffectXm_age_19X_V_hasXperson_name_markoX_mergeVXselectXcXX_optionXonMatch_sideEffectXpropertiesXageX_dropX_selectXmXX_option", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.V().Has("person", "name", "marko").MergeV((IDictionary) new Dictionary {}).Option(Merge.OnMatch, (ITraversal) __.SideEffect(__.Properties("age").Drop()).Select("m")), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 19), (g,p) =>g.V().Has("person", "name", "marko").Properties("age")}}, + {"g_mergeV_onCreate_inheritance_existing", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "mike").Property(T.Id, "1"), (g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V(), (g,p) =>g.V("1").Has("person", "name", "mike")}}, + {"g_mergeV_onCreate_inheritance_new_1", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V(), (g,p) =>g.V("1").Has("person", "name", "mike")}}, + {"g_mergeV_onCreate_inheritance_new_2", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"])), (g,p) =>g.V(), (g,p) =>g.V("1").Has("person", "name", "mike")}}, + {"g_mergeV_label_override_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"]))}}, + {"g_withSideEffect_mergeV_label_dynamic_override_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, (ITraversal) __.Select("sideEffect1"))}}, + {"g_mergeV_id_override_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"])).Option(Merge.OnCreate, new GValue>("xx2", (IDictionary) p["xx2"]))}}, + {"g_mergeV_hidden_id_key_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeV_hidden_label_key_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeV_hidden_label_value_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV(new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeV_hidden_id_key_onCreate_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {}).Option(Merge.OnCreate, new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeV_hidden_label_key_onCreate_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {}).Option(Merge.OnCreate, new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeV_hidden_label_value_onCreate_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {}).Option(Merge.OnCreate, new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeV_hidden_id_key_onMatch_matched_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "vertex"), (g,p) =>g.MergeV((IDictionary) new Dictionary {}).Option(Merge.OnMatch, new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeV_hidden_label_key_matched_onMatch_matched_prohibited", new List, ITraversal>> {(g,p) =>g.AddV((string) "vertex"), (g,p) =>g.MergeV((IDictionary) new Dictionary {}).Option(Merge.OnMatch, new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_mergeVXname_markoX_optionXonMatch_age_listX33XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "marko" }}).Option(Merge.OnMatch, (IDictionary) new Dictionary {{ "age", CardinalityValue.List(33) }}), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 33), (g,p) =>g.V().Has("person", "name", "marko").Has("age"), (g,p) =>g.V().Has("person", "name", "marko").Properties("age")}}, + {"g_mergeVXname_markoX_optionXonMatch_age_setX33XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "marko" }}).Option(Merge.OnMatch, (IDictionary) new Dictionary {{ "age", CardinalityValue.Set(33) }}), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 33), (g,p) =>g.V().Has("person", "name", "marko").Has("age"), (g,p) =>g.V().Has("person", "name", "marko").Properties("age")}}, + {"g_mergeVXname_markoX_optionXonMatch_age_setX31XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "marko" }}).Option(Merge.OnMatch, (IDictionary) new Dictionary {{ "age", CardinalityValue.Set(31) }}), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 31), (g,p) =>g.V().Has("person", "name", "marko").Has("age"), (g,p) =>g.V().Has("person", "name", "marko").Properties("age")}}, + {"g_mergeVXname_markoX_optionXonMatch_age_singleX33XX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "marko" }}).Option(Merge.OnMatch, (IDictionary) new Dictionary {{ "age", CardinalityValue.Single(33) }}), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 33), (g,p) =>g.V().Has("person", "name", "marko").Has("age"), (g,p) =>g.V().Has("person", "name", "marko").Properties("age")}}, + {"g_mergeVXname_markoX_optionXonMatch_age_33_singleX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "marko" }}).Option(Merge.OnMatch, new Dictionary {{ "age", 33 }}, Cardinality.Single), (g,p) =>g.V().Has("person", "name", "marko").Has("age", 33), (g,p) =>g.V().Has("person", "name", "marko").Has("age"), (g,p) =>g.V().Has("person", "name", "marko").Properties("age")}}, + {"g_mergeVXname_markoX_optionXonMatch_name_allen_age_setX31X_singleX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "marko" }}).Option(Merge.OnMatch, new Dictionary {{ "name", "allen" }, { "age", CardinalityValue.Set(31) }}, Cardinality.Single), (g,p) =>g.V().Has("person", "name", "marko"), (g,p) =>g.V().Has("person", "name", "allen").Has("age", 31), (g,p) =>g.V().Has("person", "name", "allen").Has("age"), (g,p) =>g.V().Has("person", "name", "allen").Properties("age")}}, + {"g_mergeVXname_markoX_optionXonMatch_name_allen_age_singleX31X_singleX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property(Cardinality.List, "age", 29).Property(Cardinality.List, "age", 31).Property(Cardinality.List, "age", 32), (g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "marko" }}).Option(Merge.OnMatch, new Dictionary {{ "name", "allen" }, { "age", CardinalityValue.Single(31) }}, Cardinality.Single), (g,p) =>g.V().Has("person", "name", "marko"), (g,p) =>g.V().Has("person", "name", "allen").Has("age", 33), (g,p) =>g.V().Has("person", "name", "allen").Has("age", 31), (g,p) =>g.V().Has("person", "name", "allen").Has("age"), (g,p) =>g.V().Has("person", "name", "allen").Properties("age")}}, + {"g_mergeVXname_aliceX_optionXonCreate_age_singleX81XX", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "alice" }, { T.Label, "person" }}).Option(Merge.OnCreate, (IDictionary) new Dictionary {{ "age", CardinalityValue.Single(81) }}), (g,p) =>g.V().Has("person", "name", "alice").Has("age", 81), (g,p) =>g.V().Has("person", "name", "alice").Has("age"), (g,p) =>g.V().Has("person", "name", "alice").Properties("age")}}, + {"g_mergeVXname_aliceX_optionXonCreate_age_setX81XX", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "alice" }, { T.Label, "person" }}).Option(Merge.OnCreate, (IDictionary) new Dictionary {{ "age", CardinalityValue.Set(81) }}), (g,p) =>g.V().Has("person", "name", "alice").Has("age", 81), (g,p) =>g.V().Has("person", "name", "alice").Has("age"), (g,p) =>g.V().Has("person", "name", "alice").Properties("age")}}, + {"g_mergeVXname_aliceX_optionXonCreate_age_81_setX", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "alice" }, { T.Label, "person" }}).Option(Merge.OnCreate, new Dictionary {{ "age", 81 }}, Cardinality.Set), (g,p) =>g.V().Has("person", "name", "alice").Has("age", 81), (g,p) =>g.V().Has("person", "name", "alice").Has("age"), (g,p) =>g.V().Has("person", "name", "alice").Properties("age")}}, + {"g_mergeVXname_aliceX_optionXonCreate_age_81_label_person_setX", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {{ "name", "alice" }}).Option(Merge.OnCreate, new Dictionary {{ "age", 81 }, { T.Label, "person" }}, Cardinality.Set), (g,p) =>g.V().Has("person", "name", "alice").Has("age", 81), (g,p) =>g.V().Has("person", "name", "alice").Has("age"), (g,p) =>g.V().Has("person", "name", "alice").Properties("age")}}, + {"g_mergeV_hidden_label_key_onMatch_matched_prohibited", new List, ITraversal>> {(g,p) =>g.MergeV((IDictionary) new Dictionary {}).Option(Merge.OnMatch, new GValue>("xx1", (IDictionary) p["xx1"]))}}, + {"g_injectXlist1_list2_list3X_fold_asXmX_mergeVXselectXmX_limitXlocal_1X_unfoldX_optionXonCreate_selectXmX_rangeXlocal_1_2X_unfoldX_optionXonMatch_selectXmX_tailXlocalX_unfoldX_to_match", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(new Dictionary {{ T.Label, "person" }, { "name", "marko" }}, new Dictionary {{ T.Label, "person" }, { "name", "marko" }}, new Dictionary {{ "created", "N" }}).Fold().As("m").MergeV((ITraversal) __.Select("m").Limit(Scope.Local, 1).Unfold()).Option(Merge.OnCreate, (ITraversal) __.Select("m").Range(Scope.Local, 1, 2).Unfold()).Option(Merge.OnMatch, (ITraversal) __.Select("m").Tail(Scope.Local).Unfold()), (g,p) =>g.V().Has("person", "name", "marko").Has("created", "N"), (g,p) =>g.V()}}, + {"g_injectXlist1_list2_list3X_fold_asXmX_mergeVXselectXmX_limitXlocal_1X_unfoldX_optionXonCreate_selectXmX_rangeXlocal_1_2X_unfoldX_optionXonMatch_selectXmX_tailXlocalX_unfoldX_to_create", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29), (g,p) =>g.Inject(new Dictionary {{ T.Label, "person" }, { "name", "stephen" }}, new Dictionary {{ T.Label, "person" }, { "name", "stephen" }}, new Dictionary {{ "created", "N" }}).Fold().As("m").MergeV((ITraversal) __.Select("m").Limit(Scope.Local, 1).Unfold()).Option(Merge.OnCreate, (ITraversal) __.Select("m").Range(Scope.Local, 1, 2).Unfold()).Option(Merge.OnMatch, (ITraversal) __.Select("m").Tail(Scope.Local).Unfold()), (g,p) =>g.V().Has("person", "name", "stephen").HasNot("created"), (g,p) =>g.V()}}, + {"g_V_age_min", new List, ITraversal>> {(g,p) =>g.V().Values("age").Min()}}, + {"g_V_foo_min", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Min()}}, + {"g_V_name_min", new List, ITraversal>> {(g,p) =>g.V().Values("name").Min()}}, + {"g_V_age_fold_minXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Min(Scope.Local)}}, + {"g_V_aggregateXaX_byXageX_capXaX_minXlocalX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("age").Cap("a").Min(Scope.Local)}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_minXlocalX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("age").Cap("a").Min(Scope.Local)}}, + {"g_V_aggregateXaX_byXageX_capXaX_unfold_min", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("age").Cap("a").Unfold().Min()}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_min", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("age").Cap("a").Unfold().Min()}}, + {"g_V_aggregateXaX_byXfooX_capXaX_minXlocalX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("foo").Cap("a").Min(Scope.Local)}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_minXlocalX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("foo").Cap("a").Min(Scope.Local)}}, + {"g_V_aggregateXaX_byXfooX_capXaX_unfold_min", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("foo").Cap("a").Unfold().Min()}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_min", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("foo").Cap("a").Unfold().Min()}}, + {"g_V_foo_fold_minXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Fold().Min(Scope.Local)}}, + {"g_V_name_fold_minXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Min(Scope.Local)}}, + {"g_V_repeatXbothX_timesX5X_age_min", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both()).Times(5).Values("age").Min()}}, + {"g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_minX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Group().By("name").By(__.BothE().Values("weight").Min())}}, + {"g_V_foo_injectX9999999999X_min", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Inject(9999999999l).Min()}}, + {"g_VX1X_valuesXageX_minXlocalX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Min(Scope.Local)}}, + {"g_V_localXunionXvaluesXageX_outE_valuesXweightXX_foldX_minXlocalX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Union(__.Values("age"), __.OutE().Values("weight")).Fold()).Min(Scope.Local)}}, + {"g_V_name_order", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order()}}, + {"g_V_order_byXname_ascX_name", new List, ITraversal>> {(g,p) =>g.V().Order().By("name", Order.Asc).Values("name")}}, + {"g_V_order_byXnameX_name", new List, ITraversal>> {(g,p) =>g.V().Order().By("name").Values("name")}}, + {"g_V_outE_order_byXweight_descX_weight", new List, ITraversal>> {(g,p) =>g.V().OutE().Order().By("weight", Order.Desc).Values("weight")}}, + {"g_V_asXaX_outXcreatedX_asXbX_order_byXshuffleX_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("created").As("b").Order().By(Order.Shuffle).Select("a", "b")}}, + {"g_V_both_hasLabelXpersonX_order_byXage_descX_limitX5X_name", new List, ITraversal>> {(g,p) =>g.V().Both().HasLabel("person").Order().By("age", Order.Desc).Limit(5).Values("name")}}, + {"g_V_properties_order_byXkey_descX_key", new List, ITraversal>> {(g,p) =>g.V().Properties().Order().By(T.Key, Order.Desc).Key()}}, + {"g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_orderXlocalX_byXvaluesX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Group().By("name").By(__.OutE().Values("weight").Sum()).Order(Scope.Local).By(Column.Values)}}, + {"g_V_mapXbothE_weight_foldX_order_byXsumXlocalX_descX_byXcountXlocalX_descX", new List, ITraversal>> {(g,p) =>g.V().Map(__.BothE().Values("weight").Order().By(Order.Asc).Fold()).Order().By(__.Sum(Scope.Local), Order.Desc).By(__.Count(Scope.Local), Order.Desc)}}, + {"g_V_group_byXlabelX_byXname_order_byXdescX_foldX", new List, ITraversal>> {(g,p) =>g.V().Group().By(T.Label).By(__.Values("name").Order().By(Order.Desc).Fold())}}, + {"g_V_hasLabelXpersonX_group_byXnameX_byXoutE_weight_sumX_unfold_order_byXvalues_descX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Group().By("name").By(__.OutE().Values("weight").Sum()).Unfold().Order().By(Column.Values, Order.Desc)}}, + {"g_V_asXvX_mapXbothE_weight_foldX_sumXlocalX_asXsX_selectXv_sX_order_byXselectXsX_descX_byXselectXvX_nameX", new List, ITraversal>> {(g,p) =>g.V().As("v").Map(__.BothE().Values("weight").Fold()).Sum(Scope.Local).As("s").Select("v", "s").Order().By(__.Select("s"), Order.Desc).By(__.Select("v").Values("name"))}}, + {"g_V_hasLabelXpersonX_fold_orderXlocalX_byXageX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Fold().Order(Scope.Local).By("age")}}, + {"g_V_both_hasLabelXpersonX_order_byXage_descX_name", new List, ITraversal>> {(g,p) =>g.V().Both().HasLabel("person").Order().By("age", Order.Desc).Values("name")}}, + {"g_V_order_byXoutE_count_descX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Order().By(__.OutE().Count(), Order.Desc).By("name")}}, + {"g_V_hasLabelXpersonX_order_byXageX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Order().By("age")}}, + {"g_V_order_byXageX", new List, ITraversal>> {(g,p) =>g.V().Order().By("age")}}, + {"g_V_fold_orderXlocalX_byXageX", new List, ITraversal>> {(g,p) =>g.V().Fold().Order(Scope.Local).By("age")}}, + {"g_V_fold_orderXlocalX_byXage_descX", new List, ITraversal>> {(g,p) =>g.V().Fold().Order(Scope.Local).By("age", Order.Desc)}}, + {"g_V_orXhasLabelXpersonX_hasXsoftware_name_lopXX_order_byXageX", new List, ITraversal>> {(g,p) =>g.V().Or(__.HasLabel("person"), __.Has("software", "name", "lop")).Order().By("age")}}, + {"g_withStrategiesXProductiveByStrategyX_V_orXhasLabelXpersonX_hasXsoftware_name_lopXX_order_byXageX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Or(__.HasLabel("person"), __.Has("software", "name", "lop")).Order().By("age")}}, + {"g_V_hasXsong_name_OHBOYX_outXfollowedByX_outXfollowedByX_order_byXperformancesX_byXsongType_descX", new List, ITraversal>> {(g,p) =>g.V().Has("song", "name", "OH BOY").Out("followedBy").Out("followedBy").Order().By("performances").By("songType", Order.Desc).By("name")}}, + {"g_V_hasLabelXsongX_order_byXperformances_descX_byXnameX_rangeX110_120X_name", new List, ITraversal>> {(g,p) =>g.V().HasLabel("song").Order().By("performances", Order.Desc).By("name").Range(110, 120).Values("name")}}, + {"g_VX1X_elementMap_orderXlocalX_byXkeys_descXunfold", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).ElementMap().Order(Scope.Local).By(Column.Keys, Order.Desc).Unfold()}}, + {"g_VX1X_elementMap_orderXlocalX_byXkeys_ascXunfold", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).ElementMap().Order(Scope.Local).By(Column.Keys, Order.Asc).Unfold()}}, + {"g_VX1X_valuesXageX_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Order(Scope.Local)}}, + {"g_V_pageRank_hasXpageRankX", new List, ITraversal>> {(g,p) =>g.V().PageRank().Has("gremlin.pageRankVertexProgram.pageRank")}}, + {"g_V_outXcreatedX_pageRank_withXedges_bothEX_withXpropertyName_projectRankX_withXtimes_0X_valueMapXname_projectRankX", new List, ITraversal>> {(g,p) =>g.V().Out("created").PageRank().With("~tinkerpop.pageRank.edges", __.BothE()).With("~tinkerpop.pageRank.propertyName", "projectRank").With("~tinkerpop.pageRank.times", 0).ValueMap("name", "projectRank")}}, + {"g_V_pageRank_order_byXpageRank_descX_byXnameX_name", new List, ITraversal>> {(g,p) =>g.V().PageRank().Order().By("gremlin.pageRankVertexProgram.pageRank", Order.Desc).By("name").Values("name")}}, + {"g_V_pageRank_order_byXpageRank_descX_name_limitX2X", new List, ITraversal>> {(g,p) =>g.V().PageRank().Order().By("gremlin.pageRankVertexProgram.pageRank", Order.Desc).Values("name").Limit(2)}}, + {"g_V_pageRank_withXedges_outEXknowsXX_withXpropertyName_friendRankX_project_byXnameX_byXvaluesXfriendRankX_mathX", new List, ITraversal>> {(g,p) =>g.V().PageRank().With("~tinkerpop.pageRank.edges", __.OutE("knows")).With("~tinkerpop.pageRank.propertyName", "friendRank").Project("name", "friendRank").By("name").By(__.Values("friendRank").Math("ceil(_ * 100)"))}}, + {"g_V_hasLabelXpersonX_pageRank_withXpropertyName_kpageRankX_project_byXnameX_byXvaluesXpageRankX_mathX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").PageRank().With("~tinkerpop.pageRank.propertyName", "pageRank").Project("name", "pageRank").By("name").By(__.Values("pageRank").Math("ceil(_ * 100)"))}}, + {"g_V_pageRank_withXpropertyName_pageRankX_asXaX_outXknowsX_pageRank_asXbX_selectXa_bX_by_byXmathX", new List, ITraversal>> {(g,p) =>g.V().PageRank().With("~tinkerpop.pageRank.propertyName", "pageRank").As("a").Out("knows").Values("pageRank").As("b").Select("a", "b").By().By(__.Math("ceil(_ * 100)"))}}, + {"g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_withXedges_inEXcreatedX_withXtimes_1X_withXpropertyName_priorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Has("name", "ripple").PageRank(1.0).With("~tinkerpop.pageRank.edges", __.InE("created")).With("~tinkerpop.pageRank.times", 1).With("~tinkerpop.pageRank.propertyName", "priors").In("created").Union(__.Both(), __.Identity()).ValueMap("name", "priors")}}, + {"g_V_outXcreatedX_groupXmX_byXlabelX_pageRankX1X_withXpropertyName_pageRankX_withXedges_inEX_withXtimes_1X_inXcreatedX_groupXmX_byXpageRankX_capXmX", new List, ITraversal>> {(g,p) =>g.V().Out("created").Group("m").By(T.Label).PageRank(1.0).With("~tinkerpop.pageRank.propertyName", "pageRank").With("~tinkerpop.pageRank.edges", __.InE()).With("~tinkerpop.pageRank.times", 1).In("created").Group("m").By("pageRank").Cap("m")}}, + {"g_VX1X_name_path", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("name").Path()}}, + {"g_VX1X_out_path_byXageX_byXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Path().By("age").By("name")}}, + {"g_V_repeatXoutX_timesX2X_path_byXitX_byXnameX_byXlangX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out()).Times(2).Path().By().By("name").By("lang")}}, + {"g_V_out_out_path_byXnameX_byXageX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").By("age")}}, + {"g_V_asXaX_hasXname_markoX_asXbX_hasXage_29X_asXcX_path", new List, ITraversal>> {(g,p) =>g.V().As("a").Has("name", "marko").As("b").Has("age", 29).As("c").Path()}}, + {"g_VX1X_outEXcreatedX_inV_inE_outV_path", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("created").InV().InE().OutV().Path()}}, + {"g_V_asXaX_out_asXbX_out_asXcX_path_fromXbX_toXcX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Out().As("c").Path().From("b").To("c").By("name")}}, + {"g_VX1X_out_path_byXageX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Path().By("age")}}, + {"g_withStrategiesXProductiveByStrategyX_VX1X_out_path_byXageX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V(p["vid1"]).Out().Path().By("age")}}, + {"g_injectX1_null_nullX_path", new List, ITraversal>> {(g,p) =>g.Inject(1, null, null).Path()}}, + {"g_injectX1_null_nullX_path_dedup", new List, ITraversal>> {(g,p) =>g.Inject(1, null, null).Path().Dedup()}}, + {"g_V_peerPressure_hasXclusterX", new List, ITraversal>> {(g,p) =>g.V().PeerPressure().Has("gremlin.peerPressureVertexProgram.cluster")}}, + {"g_V_peerPressure_withXpropertyName_clusterX_withXedges_outEXknowsXX_pageRankX1X_byXrankX_withXedges_outEXknowsX_withXtimes_2X_group_byXclusterX_byXrank_sumX_limitX100X", new List, ITraversal>> {(g,p) =>g.V().PeerPressure().With("~tinkerpop.peerPressure.propertyName", "cluster").With("~tinkerpop.peerPressure.edges", __.OutE("knows")).PageRank(1.0).With("~tinkerpop.pageRank.propertyName", "rank").With("~tinkerpop.pageRank.edges", __.OutE("knows")).With("~tinkerpop.pageRank.times", 1).Group().By("cluster").By(__.Values("rank").Sum()).Limit(100)}}, + {"g_V_hasXname_rippleX_inXcreatedX_peerPressure_withXedges_outEX_withyXpropertyName_clusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "ripple").In("created").PeerPressure().With("~tinkerpop.peerPressure.edges", __.OutE()).With("~tinkerpop.peerPressure.propertyName", "cluster").Repeat(__.Union(__.Identity(), __.Both())).Times(2).Dedup().ValueMap("name", "cluster")}}, + {"g_injectXnullX_productXinjectX1XX", new List, ITraversal>> {(g,p) =>g.Inject(null).Product(__.Inject(1))}}, + {"g_V_valuesXnameX_productXV_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Product(__.V().Fold())}}, + {"g_V_fold_productXconstantXnullXX", new List, ITraversal>> {(g,p) =>g.V().Fold().Product(__.Constant(null))}}, + {"g_V_fold_productXVX", new List, ITraversal>> {(g,p) =>g.V().Fold().Product(__.V())}}, + {"g_V_valuesXnameX_fold_productX2X", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Product(2)}}, + {"g_V_valuesXnameX_fold_productXnullX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Product(null)}}, + {"g_V_valuesXnonexistantX_fold_productXV_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("nonexistant").Fold().Product(__.V().Values("name").Fold())}}, + {"g_V_valuesXnameX_fold_productXV_valuesXnonexistantX_foldX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Product(__.V().Values("nonexistant").Fold())}}, + {"g_V_valuesXageX_order_byXdescX_limitX3X_fold_productXV_valuesXageX_order_byXascX_limitX2X_foldX_unfold", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Desc).Limit(3).Fold().Product(__.V().Values("age").Order().By(Order.Asc).Limit(2).Fold()).Unfold()}}, + {"g_V_out_path_byXvaluesXnameX_toUpperX_productXMARKOX_unfold", new List, ITraversal>> {(g,p) =>g.V().Out().Path().By(__.Values("name").ToUpper()).Product(new List { "MARKO" }).Unfold()}}, + {"g_injectXmarkoX_productXV_valuesXnameX_order_foldX_unfold", new List, ITraversal>> {(g,p) =>g.Inject(new List { "marko" }).Product(__.V().Values("name").Order().Fold()).Unfold()}}, + {"g_V_valueMapXlocationX_selectXvaluesX_unfold_productXdulles_seattle_vancouverX_unfold", new List, ITraversal>> {(g,p) =>g.V().ValueMap("location").Select(Column.Values).Unfold().Product(new List { "dulles", "seattle", "vancouver" }).Unfold()}}, + {"g_V_valuesXageX_order_byXascX_fold_productXconstantX27X_foldX_unfold", new List, ITraversal>> {(g,p) =>g.V().Values("age").Order().By(Order.Asc).Fold().Product(__.Constant(27).Fold()).Unfold()}}, + {"g_V_out_out_path_byXnameX_productXdave_kelvinX_unfold", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Product(new List { "dave", "kelvin" }).Unfold()}}, + {"g_injectXa_null_bX_productXa_cX_unfold", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Product(new List { "a", "c" }).Unfold()}}, + {"g_injectXa_null_bX_productXa_null_cX_unfold", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", null, "b" }).Product(new List { "a", null, "c" }).Unfold()}}, + {"g_injectX3_threeX_productXfive_three_7X_unfold", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Product(new List { "five", "three", 7 }).Unfold()}}, + {"g_V_hasLabelXpersonX_projectXa_bX_byXoutE_countX_byXageX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Project("a", "b").By(__.OutE().Count()).By("age")}}, + {"g_V_outXcreatedX_projectXa_bX_byXnameX_byXinXcreatedX_countX_order_byXselectXbX__descX_selectXaX", new List, ITraversal>> {(g,p) =>g.V().Out("created").Project("a", "b").By("name").By(__.In("created").Count()).Order().By(__.Select("b"), Order.Desc).Select("a")}}, + {"g_V_valueMap_projectXxX_byXselectXnameXX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Project("x").By(__.Select("name"))}}, + {"g_V_projectXa_bX_byXinE_countX_byXageX", new List, ITraversal>> {(g,p) =>g.V().Project("a", "b").By(__.InE().Count()).By("age")}}, + {"g_withStrategiesXProductiveByStrategyX_V_projectXa_bX_byXinE_countX_byXageX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Project("a", "b").By(__.InE().Count()).By("age")}}, + {"g_V_hasXageX_propertiesXnameX", new List, ITraversal>> {(g,p) =>g.V().Has("age").Properties("name").Value()}}, + {"g_V_hasXageX_propertiesXname_ageX_value", new List, ITraversal>> {(g,p) =>g.V().Has("age").Properties("name", "age").Value()}}, + {"g_V_hasXageX_propertiesXage_nameX_value", new List, ITraversal>> {(g,p) =>g.V().Has("age").Properties("age", "name").Value()}}, + {"g_V_propertiesXname_age_nullX_value", new List, ITraversal>> {(g,p) =>g.V().Properties("name", "age", null).Value()}}, + {"g_V_valuesXname_age_nullX", new List, ITraversal>> {(g,p) =>g.V().Values("name", "age", null)}}, + {"g_E_propertiesXweightX", new List, ITraversal>> {(g,p) =>g.E().Properties("weight")}}, + {"g_E_properties", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").As("a").AddV((string) "person").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("weight", 0.5d).Property("since", 2020), (g,p) =>g.E().Properties()}}, + {"g_E_propertiesXsinceX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").As("a").AddV((string) "person").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("weight", 0.5d).Property("since", 2020), (g,p) =>g.E().Properties("since")}}, + {"g_E_properties_multi_edges", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").As("a").AddV((string) "person").Property("name", "bob").As("b").AddE((string) "knows").From("a").To("b").Property("weight", 0.5d).Property("since", 2020).AddE((string) "likes").From("a").To("b").Property("weight", 1.0d).Property("tag", "friend"), (g,p) =>g.E().Properties()}}, + {"g_injectX__feature___test__nullX_rTrim", new List, ITraversal>> {(g,p) =>g.Inject("feature ", "one test ", null, "", " ", " abc", "abc ", " abc ", "  ").RTrim()}}, + {"g_injectX__feature___test__nullX_rTrimXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { " feature ", " one test ", null, "", " ", " abc", "abc ", " abc ", "  " }).RTrim(Scope.Local)}}, + {"g_injectX__feature__X_rTrim", new List, ITraversal>> {(g,p) =>g.Inject(" feature ").RTrim()}}, + {"g_injectXListXa_bXX_rTrim", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }).RTrim()}}, + {"g_injectXListX1_2XX_rTrimXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }).RTrim(Scope.Local)}}, + {"g_V_valuesXnameX_rTrim", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", " marko ").Property("age", 29).As("marko").AddV((string) "person").Property("name", " vadas ").Property("age", 27).As("vadas").AddV((string) "software").Property("name", " lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh ").Property("age", 32).As("josh").AddV((string) "software").Property("name", " ripple ").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").RTrim()}}, + {"g_V_valuesXnameX_order_fold_rTrimXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", " marko ").Property("age", 29).As("marko").AddV((string) "person").Property("name", " vadas ").Property("age", 27).As("vadas").AddV((string) "software").Property("name", " lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh ").Property("age", 32).As("josh").AddV((string) "software").Property("name", " ripple ").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").Order().Fold().RTrim(Scope.Local)}}, + {"g_injectXthat_this_test_nullX_replaceXh_jX", new List, ITraversal>> {(g,p) =>g.Inject("that", "this", "test", null).Replace("h", "j")}}, + {"g_injectXthat_this_test_nullX_fold_replaceXlocal_h_jX", new List, ITraversal>> {(g,p) =>g.Inject("that", "this", "test", null).Fold().Replace(Scope.Local, "h", "j")}}, + {"g_injectXListXa_bXcX_replaceXa_bX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }).Replace("a", "b")}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_replaceXnull_iX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Replace(null, "g")}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_replaceXa_iX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Replace("p", "g")}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_order_fold_replaceXloacl_a_iX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Order().Fold().Replace(Scope.Local, "p", "g")}}, + {"g_injectXfeature_test_nullX_reverse", new List, ITraversal>> {(g,p) =>g.Inject("feature", "test one", null).Reverse()}}, + {"g_V_valuesXnameX_reverse", new List, ITraversal>> {(g,p) =>g.V().Values("name").Reverse()}}, + {"g_V_valuesXageX_reverse", new List, ITraversal>> {(g,p) =>g.V().Values("age").Reverse()}}, + {"g_V_out_path_byXnameX_reverse", new List, ITraversal>> {(g,p) =>g.V().Out().Path().By("name").Reverse()}}, + {"g_V_out_out_path_byXnameX_reverse", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Path().By("name").Reverse()}}, + {"g_V_valuesXageX_fold_orderXlocalX_byXdescX_reverse", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Order(Scope.Local).By(Order.Desc).Reverse()}}, + {"g_V_valuesXnameX_fold_orderXlocalX_by_reverse", new List, ITraversal>> {(g,p) =>g.V().Values("name").Fold().Order(Scope.Local).By().Reverse()}}, + {"g_injectXnullX_reverse", new List, ITraversal>> {(g,p) =>g.Inject(null).Reverse()}}, + {"g_injectXbX_reverse", new List, ITraversal>> {(g,p) =>g.Inject("b").Reverse()}}, + {"g_injectX3_threeX_reverse", new List, ITraversal>> {(g,p) =>g.Inject(new List { 3, "three" }).Reverse()}}, + {"g_VX1X_asXaX_outXknowsX_asXbX_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("knows").As("b").Select("a", "b")}}, + {"g_VX1X_asXaX_outXknowsX_asXbX_selectXa_bX_byXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("knows").As("b").Select("a", "b").By("name")}}, + {"g_VX1X_asXaX_outXknowsX_asXbX_selectXaX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("knows").As("b").Select("a")}}, + {"g_VX1X_asXaX_outXknowsX_asXbX_selectXaX_byXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Out("knows").As("b").Select("a").By("name")}}, + {"g_V_asXaX_out_asXbX_selectXa_bX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("b").Select("a", "b").By("name")}}, + {"g_V_asXaX_out_aggregateXxX_asXbX_selectXa_bX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().Aggregate("x").As("b").Select("a", "b").By("name")}}, + {"g_V_asXaX_name_order_asXbX_selectXa_bX_byXnameX_by_XitX", new List, ITraversal>> {(g,p) =>g.V().As("a").Values("name").Order().As("b").Select("a", "b").By("name").By()}}, + {"g_V_hasXname_gremlinX_inEXusesX_order_byXskill_ascX_asXaX_outV_asXbX_selectXa_bX_byXskillX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "gremlin").InE("uses").Order().By("skill", Order.Asc).As("a").OutV().As("b").Select("a", "b").By("skill").By("name")}}, + {"g_V_whereX_valueXnameX_isXmarkoXX_asXaX_selectXaX", new List, ITraversal>> {(g,p) =>g.V().Where(__.Values("name").Is("marko")).As("a").Select("a")}}, + {"g_V_label_groupCount_asXxX_selectXxX", new List, ITraversal>> {(g,p) =>g.V().Label().GroupCount().As("x").Select("x")}}, + {"g_V_hasLabelXpersonX_asXpX_mapXbothE_label_groupCountX_asXrX_selectXp_rX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").As("p").Map(__.BothE().Label().GroupCount()).As("r").Select("p", "r")}}, + {"g_V_chooseXoutE_count_isX0X__asXaX__asXbXX_chooseXselectXaX__selectXaX__selectXbXX", new List, ITraversal>> {(g,p) =>g.V().Choose(__.OutE().Count().Is(p["xx1"]), __.As("a"), __.As("b")).Choose(__.Select("a"), __.Select("a"), __.Select("b"))}}, + {"g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Group("a").By(__.Constant("a")).By(__.Values("name")).Barrier().Select("a").Select("a")}}, + {"g_VX1X_asXhereX_out_selectXhereX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("here").Out().Select("here")}}, + {"g_VX4X_out_asXhereX_hasXlang_javaX_selectXhereX", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).As("here").Out().Select("here")}}, + {"g_VX4X_out_asXhereX_hasXlang_javaX_selectXhereX_name", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).Out().As("here").Has("lang", "java").Select("here").Values("name")}}, + {"g_VX1X_outE_asXhereX_inV_hasXname_vadasX_selectXhereX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().As("here").InV().Has("name", "vadas").Select("here")}}, + {"g_VX1X_outEXknowsX_hasXweight_1X_asXhereX_inV_hasXname_joshX_selectXhereX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("knows").Has("weight", 1.0).As("here").InV().Has("name", "josh").Select("here")}}, + {"g_VX1X_outEXknowsX_asXhereX_hasXweight_1X_asXfakeX_inV_hasXname_joshX_selectXhereX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("knows").As("here").Has("weight", 1.0).As("fake").InV().Has("name", "josh").Select("here")}}, + {"g_V_asXhereXout_name_selectXhereX", new List, ITraversal>> {(g,p) =>g.V().As("here").Out().Values("name").Select("here")}}, + {"g_V_outXcreatedX_unionXasXprojectX_inXcreatedX_hasXname_markoX_selectXprojectX__asXprojectX_inXcreatedX_inXknowsX_hasXname_markoX_selectXprojectXX_groupCount_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Out("created").Union(__.As("project").In("created").Has("name", "marko").Select("project"), __.As("project").In("created").In("knows").Has("name", "marko").Select("project")).GroupCount().By("name")}}, + {"g_V_untilXout_outX_repeatXin_asXaXX_selectXaX_byXtailXlocalX_nameX", new List, ITraversal>> {(g,p) =>g.V().Until(__.Out().Out()).Repeat(__.In().As("a")).Select("a").By(__.Tail(Scope.Local).Values("name"))}}, + {"g_V_outE_weight_groupCount_selectXkeysX_unfold", new List, ITraversal>> {(g,p) =>g.V().OutE().Values("weight").GroupCount().Select(Column.Keys).Unfold()}}, + {"g_V_hasLabelXsoftwareX_asXnameX_asXlanguageX_asXcreatorsX_selectXname_language_creatorsX_byXnameX_byXlangX_byXinXcreatedX_name_fold_orderXlocalXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").As("name").As("language").As("creators").Select("name", "language", "creators").By("name").By("lang").By(__.In("created").Values("name").Fold().Order(Scope.Local))}}, + {"g_V_outE_weight_groupCount_unfold_selectXkeysX_unfold", new List, ITraversal>> {(g,p) =>g.V().OutE().Values("weight").GroupCount().Unfold().Select(Column.Keys).Unfold()}}, + {"g_V_outE_weight_groupCount_unfold_selectXvaluesX_unfold", new List, ITraversal>> {(g,p) =>g.V().OutE().Values("weight").GroupCount().Unfold().Select(Column.Values).Unfold()}}, + {"g_V_untilXout_outX_repeatXin_asXaX_in_asXbXX_selectXa_bX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Until(__.Out().Out()).Repeat(__.In().As("a").In().As("b")).Select("a", "b").By("name")}}, + {"g_V_outE_weight_groupCount_selectXvaluesX_unfold", new List, ITraversal>> {(g,p) =>g.V().OutE().Values("weight").GroupCount().Select(Column.Values).Unfold()}}, + {"g_V_asXaX_whereXoutXknowsXX_selectXaX", new List, ITraversal>> {(g,p) =>g.V().As("a").Where(__.Out("knows")).Select("a")}}, + {"g_VX1X_asXaX_repeatXout_asXaXX_timesX2X_selectXfirst_aX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Repeat(__.Out().As("a")).Times(2).Select(Pop.First, "a")}}, + {"g_V_asXaX_outXknowsX_asXbX_localXselectXa_bX_byXnameXX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("knows").As("b").Local(__.Select("a", "b").By("name"))}}, + {"g_VX1X_asXaX_repeatXout_asXaXX_timesX2X_selectXlast_aX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).As("a").Repeat(__.Out().As("a")).Times(2).Select(Pop.Last, "a")}}, + {"g_VX1X_outEXknowsX_asXhereX_hasXweight_1X_inV_hasXname_joshX_selectXhereX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("knows").As("here").Has("weight", 1.0).InV().Has("name", "josh").Select("here")}}, + {"g_V_asXaX_hasXname_markoX_asXbX_asXcX_selectXa_b_cX_by_byXnameX_byXageX", new List, ITraversal>> {(g,p) =>g.V().As("a").Has("name", "marko").As("b").As("c").Select("a", "b", "c").By().By("name").By("age")}}, + {"g_V_outE_weight_groupCount_selectXvaluesX_unfold_groupCount_selectXvaluesX_unfold", new List, ITraversal>> {(g,p) =>g.V().OutE().Values("weight").GroupCount().Select(Column.Values).Unfold().GroupCount().Select(Column.Values).Unfold()}}, + {"g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX", new List, ITraversal>> {(g,p) =>g.V().As("a").Group("m").By().By(__.BothE().Count()).Barrier().Select("m").Select(__.Select("a"))}}, + {"g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX_byXmathX_plus_XX", new List, ITraversal>> {(g,p) =>g.V().As("a").Group("m").By().By(__.BothE().Count()).Barrier().Select("m").Select(__.Select("a")).By(__.Math("_+_"))}}, + {"g_V_asXaX_outXknowsX_asXaX_selectXall_constantXaXX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out("knows").As("a").Select(Pop.All, __.Constant("a"))}}, + {"g_V_selectXaX", new List, ITraversal>> {(g,p) =>g.V().Select("a")}}, + {"g_V_selectXaX_count", new List, ITraversal>> {(g,p) =>g.V().Select("a").Count()}}, + {"g_V_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().Select("a", "b")}}, + {"g_V_valueMap_selectXaX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select("a")}}, + {"g_V_valueMap_selectXa_bX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select("a", "b")}}, + {"g_V_selectXfirst_aX", new List, ITraversal>> {(g,p) =>g.V().Select(Pop.First, "a")}}, + {"g_V_selectXfirst_a_bX", new List, ITraversal>> {(g,p) =>g.V().Select(Pop.First, "a", "b")}}, + {"g_V_valueMap_selectXfirst_aX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select(Pop.First, "a")}}, + {"g_V_valueMap_selectXfirst_a_bX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select(Pop.First, "a", "b")}}, + {"g_V_selectXlast_aX", new List, ITraversal>> {(g,p) =>g.V().Select(Pop.Last, "a")}}, + {"g_V_selectXlast_a_bX", new List, ITraversal>> {(g,p) =>g.V().Select(Pop.Last, "a", "b")}}, + {"g_V_valueMap_selectXlast_aX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select(Pop.Last, "a")}}, + {"g_V_valueMap_selectXlast_a_bX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select(Pop.Last, "a", "b")}}, + {"g_V_selectXall_aX", new List, ITraversal>> {(g,p) =>g.V().Select(Pop.All, "a")}}, + {"g_V_selectXall_a_bX", new List, ITraversal>> {(g,p) =>g.V().Select(Pop.All, "a", "b")}}, + {"g_V_valueMap_selectXall_aX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select(Pop.All, "a")}}, + {"g_V_valueMap_selectXall_a_bX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Select(Pop.All, "a", "b")}}, + {"g_V_asXa_bX_out_asXcX_path_selectXkeysX", new List, ITraversal>> {(g,p) =>g.V().As("a", "b").Out().As("c").Path().Select(Column.Keys), (g,p) =>g.V().As("a", "b").Out().As("c").Path().Select(Column.Keys)}}, + {"g_V_hasXperson_name_markoX_barrier_asXaX_outXknows_selectXaX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Barrier().As("a").Out("knows").Select("a")}}, + {"g_V_hasXperson_name_markoX_elementMapXnameX_asXaX_unionXidentity_identityX_selectXaX_selectXnameX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").ElementMap("name").As("a").Union(__.Identity(), __.Identity()).Select("a").Select("name")}}, + {"g_V_hasXperson_name_markoX_count_asXaX_unionXidentity_identityX_selectXaX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Count().As("a").Union(__.Identity(), __.Identity()).Select("a")}}, + {"g_V_hasXperson_name_markoX_path_asXaX_unionXidentity_identityX_selectXaX_unfold", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Path().As("a").Union(__.Identity(), __.Identity()).Select("a").Unfold()}}, + {"g_EX11X_propertiesXweightX_asXaX_selectXaX_byXkeyX", new List, ITraversal>> {(g,p) =>g.E(p["eid11"]).Properties("weight").As("a").Select("a").By(T.Key)}}, + {"g_EX11X_propertiesXweightX_asXaX_selectXaX_byXvalueX", new List, ITraversal>> {(g,p) =>g.E(p["eid11"]).Properties("weight").As("a").Select("a").By(T.Value)}}, + {"g_V_asXaX_selectXaX_byXageX", new List, ITraversal>> {(g,p) =>g.V().As("a").Select("a").By("age")}}, + {"g_V_asXa_nX_selectXa_nX_byXageX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().As("a", "n").Select("a", "n").By("age").By("name")}}, + {"g_withStrategiesXProductiveByStrategyX_V_asXaX_selectXaX_byXageX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().As("a").Select("a").By("age")}}, + {"g_withSideEffectXk_nullX_injectXxX_selectXkX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("k", null).Inject("x").Select("k")}}, + {"g_V_out_in_selectXall_a_a_aX_byXunfold_name_foldX", new List, ITraversal>> {(g,p) =>g.AddV((string) "A").Property("name", "a1").As("a1").AddV((string) "B").Property("name", "b1").As("b1").AddE((string) "ab").From("a1").To("b1"), (g,p) =>g.V().As("a").Out().As("a").In().As("a").Select(Pop.All, "a", "a", "a").By(__.Unfold().Values("name").Fold())}}, + {"g_withoutStrategiesXLazyBarrierStrategyX_V_asXlabelX_localXaggregate_xX_selectXxX_selectXlabelX", new List, ITraversal>> {(g,p) =>g.WithoutStrategies(typeof(LazyBarrierStrategy)).V().As("label").Local(__.Aggregate("x")).Select("x").Select("label")}}, + {"g_V_name_asXaX_selectXfirst_aX", new List, ITraversal>> {(g,p) =>g.V().Values("name").As("a").Select(Pop.First, "a")}}, + {"g_V_name_asXaX_selectXlast_aX", new List, ITraversal>> {(g,p) =>g.V().Values("name").As("a").Select(Pop.Last, "a")}}, + {"g_V_name_asXaX_selectXmixed_aX", new List, ITraversal>> {(g,p) =>g.V().Values("name").As("a").Select(Pop.Mixed, "a")}}, + {"g_V_name_asXaX_selectXall_aX", new List, ITraversal>> {(g,p) =>g.V().Values("name").As("a").Select(Pop.All, "a")}}, + {"g_V_hasLabelXpersonX_name_asXaX_concatXXX_asXaX_length_asXaX_selectXaX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").As("a").Concat("X").As("a").Length().As("a").Select("a")}}, + {"g_V_hasLabelXpersonX_name_asXaX_concatXXX_asXaX_length_asXaX_selectXfirst_aX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").As("a").Concat("X").As("a").Length().As("a").Select(Pop.First, "a")}}, + {"g_V_hasLabelXpersonX_name_asXaX_concatXXX_asXaX_length_asXaX_selectXlast_aX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").As("a").Concat("X").As("a").Length().As("a").Select(Pop.Last, "a")}}, + {"g_V_hasLabelXpersonX_name_asXaX_concatXXX_asXaX_concatXYZX_asXaX_selectXmixed_aX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").As("a").Concat("X").As("a").Concat("YZ").As("a").Select(Pop.Mixed, "a")}}, + {"g_V_hasLabelXpersonX_name_asXaX_concatXXX_asXaX_concatXYZX_asXaX_selectXall_aX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").As("a").Concat("X").As("a").Concat("YZ").As("a").Select(Pop.All, "a")}}, + {"g_V_asXaX_out_asXaX_out_asXaX_selectXmixed_aX_byXunfold_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("a").Out().As("a").Select(Pop.Mixed, "a").By(__.Unfold().Values("name").Fold())}}, + {"g_V_asXaX_out_asXaX_out_asXaX_selectXall_aX_byXunfold_valuesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.V().As("a").Out().As("a").Out().As("a").Select(Pop.All, "a").By(__.Unfold().Values("name").Fold())}}, + {"g_V_shortestPath", new List, ITraversal>> {(g,p) =>g.V().ShortestPath()}}, + {"g_V_both_dedup_shortestPath", new List, ITraversal>> {(g,p) =>g.V().Both().Dedup().ShortestPath()}}, + {"g_V_shortestPath_edgesIncluded", new List, ITraversal>> {(g,p) =>g.V().ShortestPath().With("~tinkerpop.shortestPath.includeEdges")}}, + {"g_V_shortestPath_directionXINX", new List, ITraversal>> {(g,p) =>g.V().ShortestPath().With("~tinkerpop.shortestPath.edges", Direction.In)}}, + {"g_V_shortestPath_edgesXoutEX", new List, ITraversal>> {(g,p) =>g.V().ShortestPath().With("~tinkerpop.shortestPath.edges", __.OutE())}}, + {"g_V_shortestPath_edgesIncluded_edgesXoutEX", new List, ITraversal>> {(g,p) =>g.V().ShortestPath().With("~tinkerpop.shortestPath.includeEdges").With("~tinkerpop.shortestPath.edges", __.OutE())}}, + {"g_V_hasXname_markoX_shortestPath", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").ShortestPath()}}, + {"g_V_shortestPath_targetXhasXname_markoXX", new List, ITraversal>> {(g,p) =>g.V().ShortestPath().With("~tinkerpop.shortestPath.target", __.Has("name", "marko"))}}, + {"g_V_shortestPath_targetXvaluesXnameX_isXmarkoXX", new List, ITraversal>> {(g,p) =>g.V().ShortestPath().With("~tinkerpop.shortestPath.target", __.Values("name").Is("marko"))}}, + {"g_V_hasXname_markoX_shortestPath_targetXhasLabelXsoftwareXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").ShortestPath().With("~tinkerpop.shortestPath.target", __.HasLabel("software"))}}, + {"g_V_hasXname_markoX_shortestPath_targetXhasXname_joshXX_distanceXweightX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").ShortestPath().With("~tinkerpop.shortestPath.target", __.Has("name", "josh")).With("~tinkerpop.shortestPath.distance", "weight")}}, + {"g_V_hasXname_danielX_shortestPath_targetXhasXname_stephenXX_edgesXbothEXusesXX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "daniel").ShortestPath().With("~tinkerpop.shortestPath.target", __.Has("name", "stephen")).With("~tinkerpop.shortestPath.edges", __.BothE("uses"))}}, + {"g_V_hasXsong_name_MIGHT_AS_WELLX_shortestPath_targetXhasXsong_name_MAYBE_YOU_KNOW_HOW_I_FEELXX_edgesXoutEXfollowedByXX_distanceXweightX", new List, ITraversal>> {(g,p) =>g.V().Has("song", "name", "MIGHT AS WELL").ShortestPath().With("~tinkerpop.shortestPath.target", __.Has("song", "name", "MAYBE YOU KNOW HOW I FEEL")).With("~tinkerpop.shortestPath.edges", __.OutE("followedBy")).With("~tinkerpop.shortestPath.distance", "weight")}}, + {"g_V_hasXname_markoX_shortestPath_maxDistanceX1X", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").ShortestPath().With("~tinkerpop.shortestPath.maxDistance", 1)}}, + {"g_V_hasXname_vadasX_shortestPath_distanceXweightX_maxDistanceX1_3X", new List, ITraversal>> {(g,p) =>g.V().Has("name", "vadas").ShortestPath().With("~tinkerpop.shortestPath.distance", "weight").With("~tinkerpop.shortestPath.maxDistance", 1.3)}}, + {"g_injectXthat_this_testX_spiltXhX", new List, ITraversal>> {(g,p) =>g.Inject("that", "this", "test", null).Split("h")}}, + {"g_injectXhello_worldX_spiltXnullX", new List, ITraversal>> {(g,p) =>g.Inject("hello world").Split(null)}}, + {"g_injectXthat_this_test_nullX_splitXemptyX", new List, ITraversal>> {(g,p) =>g.Inject("that", "this", "test", null).Split("")}}, + {"g_injectXListXa_bXcX_splitXa_bX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }).Split("a")}}, + {"g_V_hasLabelXpersonX_valueXnameX_splitXnullX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").Split(null)}}, + {"g_V_hasLabelXpersonX_valueXnameX_order_fold_splitXlocal_aX_unfold", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").Order().Fold().Split(Scope.Local, "a").Unfold()}}, + {"g_V_hasLabelXpersonX_valueXnameX_order_fold_splitXlocal_emptyX_unfold", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").Order().Fold().Split(Scope.Local, "").Unfold()}}, + {"g_injectXthat_this_testX_substringX1_8X", new List, ITraversal>> {(g,p) =>g.Inject("test", "hello world", null).Substring(1, 8)}}, + {"g_injectXListXa_bXcX_substringX1_2X", new List, ITraversal>> {(g,p) =>g.Inject(new List { "aa", "bb" }).Substring(1, 2)}}, + {"g_V_hasLabelXpersonX_valueXnameX_substringX2X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Substring(2)}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_substringX1_4X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Substring(1, 4)}}, + {"g_V_hasLabelXpersonX_valueXnameX_order_fold_substringXlocal_2X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Order().Fold().Substring(Scope.Local, 2)}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_order_fold_substringXlocal_1_4X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Order().Fold().Substring(Scope.Local, 1, 4)}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_substringX1_0X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Substring(1, 0)}}, + {"g_V_hasLabelXpersonX_valueXnameX_substringXneg3X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Values("name").Substring(-3)}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_substringX1_neg1X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Substring(1, -1)}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_substringXneg4_2X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Substring(-4, 2)}}, + {"g_V_hasLabelXsoftwareX_valueXnameX_substringXneg3_neg1X", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Values("name").Substring(-3, -1)}}, + {"g_V_injectX127b_1bX_sumXX", new List, ITraversal>> {(g,p) =>g.Inject((sbyte) 127, (sbyte) 1).Sum()}}, + {"g_V_injectX_128b__1bX_sumXX", new List, ITraversal>> {(g,p) =>g.Inject((short) -128, (short) -1).Sum()}}, + {"g_V_injectX32767s_1sX_sumXX", new List, ITraversal>> {(g,p) =>g.Inject((short) 32767, (short) 1).Sum()}}, + {"g_V_injectX_32768s__1sX_sumXX", new List, ITraversal>> {(g,p) =>g.Inject((short) -32768, (short) -1).Sum()}}, + {"g_V_injectX2147483647i_1iX_sumXX", new List, ITraversal>> {(g,p) =>g.Inject(2147483647, 1).Sum()}}, + {"g_V_injectX_2147483648i__1iX_sumXX", new List, ITraversal>> {(g,p) =>g.Inject(-2147483648, -1).Sum()}}, + {"g_V_age_sum", new List, ITraversal>> {(g,p) =>g.V().Values("age").Sum()}}, + {"g_V_foo_sum", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Sum()}}, + {"g_V_age_fold_sumXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Fold().Sum(Scope.Local)}}, + {"g_V_foo_fold_sumXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("foo").Fold().Sum(Scope.Local)}}, + {"g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_sumX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Group().By("name").By(__.BothE().Values("weight").Sum())}}, + {"g_V_aggregateXaX_byXageX_sumXlocalX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("age").Cap("a").Sum(Scope.Local)}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_sumXlocalX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("age").Cap("a").Sum(Scope.Local)}}, + {"g_V_aggregateXaX_byXageX_capXaX_unfold_sum", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("age").Cap("a").Unfold().Sum()}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXageX_capXaX_unfold_sum", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("age").Cap("a").Unfold().Sum()}}, + {"g_V_aggregateXaX_byXfooX_sumXlocalX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("foo").Cap("a").Sum(Scope.Local)}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_sumXlocalX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("foo").Cap("a").Sum(Scope.Local)}}, + {"g_V_aggregateXaX_byXfooX_capXaX_unfold_sum", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").By("foo").Cap("a").Unfold().Sum()}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXaX_byXfooX_capXaX_unfold_sum", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("a").By("foo").Cap("a").Unfold().Sum()}}, + {"g_injectXnull_10_5_nullX_sum", new List, ITraversal>> {(g,p) =>g.Inject(null, 10, 5, null).Sum()}}, + {"g_injectXlistXnull_10_5_nullXX_sumXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { null, 10, 5, null }).Sum(Scope.Local)}}, + {"g_VX1X_valuesXageX_sumXlocalX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Values("age").Sum(Scope.Local)}}, + {"g_V_localXunionXvaluesXageX_outE_valuesXweightXX_foldX_sumXlocalX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Union(__.Values("age"), __.OutE().Values("weight")).Fold()).Sum(Scope.Local)}}, + {"g_V_age_injectX1000nX_sum", new List, ITraversal>> {(g,p) =>g.V().Values("age").Inject(BigInteger.Parse("1000")).Sum()}}, + {"g_injectX1b_2b_3bX_sum", new List, ITraversal>> {(g,p) =>g.Inject((sbyte) 1, (sbyte) 2, (sbyte) 3).Sum()}}, + {"g_injectX1b_2b_3sX_sum", new List, ITraversal>> {(g,p) =>g.Inject((sbyte) 1, (sbyte) 2, (short) 3).Sum()}}, + {"g_injectX1b_26b_3iX_sum", new List, ITraversal>> {(g,p) =>g.Inject((sbyte) 1, (sbyte) 2, 3).Sum()}}, + {"g_injectX1f_26f_3fX_sum", new List, ITraversal>> {(g,p) =>g.Inject(1f, 2f, 3f).Sum()}}, + {"g_V_age_injectX1000nX_fold_sumXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("age").Inject(BigInteger.Parse("1000")).Fold().Sum(Scope.Local)}}, + {"g_injectX1b_2b_3bX_fold_sumXlocalX", new List, ITraversal>> {(g,p) =>g.Inject((sbyte) 1, (sbyte) 2, (sbyte) 3).Fold().Sum(Scope.Local)}}, + {"g_injectX1b_2b_3sX_fold_sumXlocalX", new List, ITraversal>> {(g,p) =>g.Inject((sbyte) 1, (sbyte) 2, (short) 3).Fold().Sum(Scope.Local)}}, + {"g_injectX1b_26b_3iX_fold_sumXlocalX", new List, ITraversal>> {(g,p) =>g.Inject((sbyte) 1, (sbyte) 2, 3).Fold().Sum(Scope.Local)}}, + {"g_injectX1f_26f_3fX_fold_sumXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(1f, 2f, 3f).Fold().Sum(Scope.Local)}}, + {"g_injectXfeature_test_nullX_toLower", new List, ITraversal>> {(g,p) =>g.Inject("FEATURE", "tESt", null).ToLower()}}, + {"g_injectXfeature_test_nullX_toLowerXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "FEATURE", "tESt", null }).ToLower(Scope.Local)}}, + {"g_injectXListXa_bXX_toLower", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }).ToLower()}}, + {"g_V_valuesXnameX_toLower", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "MARKO").Property("age", 29).As("marko").AddV((string) "person").Property("name", "VADAS").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "LOP").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "JOSH").Property("age", 32).As("josh").AddV((string) "software").Property("name", "RIPPLE").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "PETER").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").ToLower()}}, + {"g_V_valuesXnameX_toLowerXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "MARKO").Property("age", 29).As("marko").AddV((string) "person").Property("name", "VADAS").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "LOP").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "JOSH").Property("age", 32).As("josh").AddV((string) "software").Property("name", "RIPPLE").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "PETER").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").ToLower(Scope.Local)}}, + {"g_V_valuesXnameX_order_fold_toLowerXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "MARKO").Property("age", 29).As("marko").AddV((string) "person").Property("name", "VADAS").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "LOP").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "JOSH").Property("age", 32).As("josh").AddV((string) "software").Property("name", "RIPPLE").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "PETER").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").Order().Fold().ToLower(Scope.Local)}}, + {"g_injectXfeature_test_nullX_toUpper", new List, ITraversal>> {(g,p) =>g.Inject("feature", "tESt", null).ToUpper()}}, + {"g_injectXfeature_test_nullX_toUpperXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { "feature", "tESt", null }).ToUpper(Scope.Local)}}, + {"g_injectXListXa_bXX_toUpper", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }).ToUpper()}}, + {"g_V_valuesXnameX_toUpper", new List, ITraversal>> {(g,p) =>g.V().Values("name").ToUpper()}}, + {"g_V_valuesXnameX_toUpperXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("name").ToUpper(Scope.Local)}}, + {"g_V_valuesXnameX_order_fold_toUpperXlocalX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Order().Fold().ToUpper(Scope.Local)}}, + {"g_injectX__feature___test__nullX_trim", new List, ITraversal>> {(g,p) =>g.Inject(" feature ", " one test ", null, "", " ", " abc", "abc ", " abc ", "  ").Trim()}}, + {"g_injectX__feature___test__nullX_trimXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { " feature ", " one test ", null, "", " ", " abc", "abc ", " abc ", "  " }).Trim(Scope.Local)}}, + {"g_injectXListXa_bXX_trim", new List, ITraversal>> {(g,p) =>g.Inject(new List { "a", "b" }).Trim()}}, + {"g_injectXListX1_2XX_trimXlocalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 2 }).Trim(Scope.Local)}}, + {"g_V_valuesXnameX_trim", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", " marko ").Property("age", 29).As("marko").AddV((string) "person").Property("name", " vadas ").Property("age", 27).As("vadas").AddV((string) "software").Property("name", " lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh ").Property("age", 32).As("josh").AddV((string) "software").Property("name", " ripple ").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").Trim()}}, + {"g_V_valuesXnameX_order_fold_trimXlocalX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", " marko ").Property("age", 29).As("marko").AddV((string) "person").Property("name", " vadas ").Property("age", 27).As("vadas").AddV((string) "software").Property("name", " lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh ").Property("age", 32).As("josh").AddV((string) "software").Property("name", " ripple ").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Values("name").Order().Fold().Trim(Scope.Local)}}, + {"g_V_localXoutE_foldX_unfold", new List, ITraversal>> {(g,p) =>g.V().Local(__.OutE().Fold()).Unfold()}}, + {"g_V_valueMap_unfold_mapXselectXkeysXX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().Unfold().Map(__.Select(Column.Keys))}}, + {"g_VX1X_repeatXboth_simplePathX_untilXhasIdX6XX_path_byXnameX_unfold", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Repeat(__.Both().SimplePath()).Until(__.HasId(p["vid6"])).Path().By("name").Unfold()}}, + {"g_V_valueMap", new List, ITraversal>> {(g,p) =>g.V().ValueMap()}}, + {"g_V_valueMapXtrueX", new List, ITraversal>> {(g,p) =>g.V().ValueMap(true)}}, + {"g_V_valueMap_withXtokensX", new List, ITraversal>> {(g,p) =>g.V().ValueMap().With(WithOptions.Tokens)}}, + {"g_V_valueMapXname_ageX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("name", "age")}}, + {"g_V_valueMapXtrue_name_ageX", new List, ITraversal>> {(g,p) =>g.V().ValueMap(true, "name", "age")}}, + {"g_V_valueMapXname_ageX_withXtokensX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("name", "age").With(WithOptions.Tokens)}}, + {"g_V_valueMapXname_ageX_withXtokens_labelsX_byXunfoldX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("name", "age").With(WithOptions.Tokens, WithOptions.Labels).By(__.Unfold())}}, + {"g_V_valueMapXname_ageX_withXtokens_idsX_byXunfoldX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("name", "age").With(WithOptions.Tokens, WithOptions.Ids).By(__.Unfold())}}, + {"g_VX1X_outXcreatedX_valueMap", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("created").ValueMap()}}, + {"g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMapXtrueX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Filter(__.OutE("created")).ValueMap(true)}}, + {"g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMap_withXtokensX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Filter(__.OutE("created")).ValueMap().With(WithOptions.Tokens)}}, + {"g_VX1X_valueMapXname_locationX_byXunfoldX_by", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).ValueMap("name", "location").By(__.Unfold()).By()}}, + {"g_V_valueMapXname_age_nullX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("name", "age", null)}}, + {"g_V_valueMapXname_ageX_byXisXxXXbyXunfoldX", new List, ITraversal>> {(g,p) =>g.V().ValueMap("name", "age").By(__.Is("x")).By(__.Unfold())}}, + {"g_VXnullX", new List, ITraversal>> {(g,p) =>g.V(null)}}, + {"g_VXlistXnullXX", new List, ITraversal>> {(g,p) =>g.V(p["xx1"])}}, + {"g_VX1_nullX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"], null)}}, + {"g_VXlistX1_2_3XX_name", new List, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values("name")}}, + {"g_VXlistXv1_v2_v3XX_name", new List, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values("name")}}, + {"g_V", new List, ITraversal>> {(g,p) =>g.V()}}, + {"g_VXv1X_out", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out()}}, + {"g_VX1X_out", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out()}}, + {"g_VX2X_in", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).In()}}, + {"g_VX4X_both", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).Both()}}, + {"g_VX1X_outE", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE()}}, + {"g_VX2X_outE", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).InE()}}, + {"g_VX4X_bothEXcreatedX", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).BothE("created")}}, + {"g_VX4X_bothEXcreatedvarX", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).BothE(new GValue("xx1", (string) p["xx1"]))}}, + {"g_VX4X_bothE", new List, ITraversal>> {(g,p) =>g.V(p["vid4"]).BothE()}}, + {"g_V_out_outE_inV_inE_inV_both_name", new List, ITraversal>> {(g,p) =>g.V().Out().OutE().InV().InE().InV().Both().Values("name")}}, + {"g_VX2X_inE", new List, ITraversal>> {(g,p) =>g.V(p["vid2"]).BothE()}}, + {"g_VX1X_outXknowsX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("knows")}}, + {"g_VX1AsStringX_outXknowsX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("knows")}}, + {"g_VX1X_outXknows_createdX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out("knows", "created")}}, + {"g_VX1X_outXknowsvar_createdvarX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out(new GValue("xx2", (string) p["xx2"]), new GValue("xx3", (string) p["xx3"]))}}, + {"g_V_out_out", new List, ITraversal>> {(g,p) =>g.V().Out().Out()}}, + {"g_VX1X_out_out_out", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Out().Out()}}, + {"g_VX1X_out_name", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Values("name")}}, + {"g_VX1X_to_XOUT_knowsX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).To(Direction.Out, "knows")}}, + {"g_VX1_2_3_4X_name", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().Has("software", "name", "lop").Drop(), (g,p) =>g.V(p["vid1"], p["vid2"], p["vid3"], p["vid4"])}}, + {"g_V_hasLabelXpersonX_V_hasLabelXsoftwareX_name", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").V().HasLabel("software").Values("name")}}, + {"g_V_hasLabelXloopsX_bothEXselfX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("loops").BothE("self")}}, + {"g_V_hasLabelXloopsX_bothXselfX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("loops").Both("self")}}, + {"g_injectX1X_VXnullX", new List, ITraversal>> {(g,p) =>g.Inject(1).V(null)}}, + {"g_injectX1X_VX1_nullX", new List, ITraversal>> {(g,p) =>g.Inject(1).V(p["vid1"], null)}}, + {"g_VX1X_V_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).V().Values("name")}}, + {"g_V_outXknowsX_V_name", new List, ITraversal>> {(g,p) =>g.V().Out("knows").V().Values("name")}}, + {"g_V_hasXname_GarciaX_inXsungByX_asXsongX_V_hasXname_Willie_DixonX_inXwrittenByX_whereXeqXsongXX_name", new List, ITraversal>> {(g,p) =>g.V().Has("artist", "name", "Garcia").In("sungBy").As("song").V().Has("artist", "name", "Willie_Dixon").In("writtenBy").Where(P.Eq("song")).Values("name")}}, + {"g_V_hasLabelXpersonX_asXpX_VXsoftwareX_addInEXuses_pX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 29).As("marko").AddV((string) "person").Property("name", "vadas").Property("age", 27).As("vadas").AddV((string) "software").Property("name", "lop").Property("lang", "java").As("lop").AddV((string) "person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) "software").Property("name", "ripple").Property("lang", "java").As("ripple").AddV((string) "person").Property("name", "peter").Property("age", 35).As("peter").AddE((string) "knows").From("marko").To("vadas").Property("weight", 0.5d).AddE((string) "knows").From("marko").To("josh").Property("weight", 1.0d).AddE((string) "created").From("marko").To("lop").Property("weight", 0.4d).AddE((string) "created").From("josh").To("ripple").Property("weight", 1.0d).AddE((string) "created").From("josh").To("lop").Property("weight", 0.4d).AddE((string) "created").From("peter").To("lop").Property("weight", 0.2d), (g,p) =>g.V().HasLabel("person").As("p").V(p["xx1"]).AddE((string) "uses").From("p"), (g,p) =>g.E().HasLabel("uses"), (g,p) =>g.V(p["vid1"]).OutE("uses"), (g,p) =>g.V(p["vid2"]).OutE("uses"), (g,p) =>g.V(p["vid3"]).InE("uses"), (g,p) =>g.V(p["vid4"]).OutE("uses"), (g,p) =>g.V(p["vid5"]).InE("uses"), (g,p) =>g.V(p["vid6"]).OutE("uses")}}, + {"InjectXnullX_eqXnullX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Eq(null))}}, + {"InjectXnullX_neqXnullX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Neq(null))}}, + {"InjectXnullX_ltXnullX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Lt(null))}}, + {"InjectXnullX_lteXnullX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Lte(null))}}, + {"InjectXnullX_gtXnullX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Gt(null))}}, + {"InjectXnullX_gteXnullX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Gte(null))}}, + {"InjectXNaNX_eqXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Eq(Double.NaN))}}, + {"InjectXNaNX_neqXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Neq(Double.NaN))}}, + {"InjectXNaNX_ltXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Lt(Double.NaN))}}, + {"InjectXNaNX_lteXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Lte(Double.NaN))}}, + {"InjectXNaNX_gtXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Gt(Double.NaN))}}, + {"InjectXNaNX_gteXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Gte(Double.NaN))}}, + {"InjectX1dX_eqXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Eq(Double.NaN))}}, + {"InjectX1dX_neqXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Neq(Double.NaN))}}, + {"InjectX1dX_ltXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Lt(Double.NaN))}}, + {"InjectX1dX_lteXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Lte(Double.NaN))}}, + {"InjectX1dX_gtXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Gt(Double.NaN))}}, + {"InjectX1dX_gteXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Gte(Double.NaN))}}, + {"InjectXNaNX_eqX1dX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Eq(1.0d))}}, + {"InjectXNaNX_neqX1dX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Neq(1.0d))}}, + {"InjectXNaNX_ltX1dX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Lt(1.0d))}}, + {"InjectXNaNX_lteX1dX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Lte(1.0d))}}, + {"InjectXNaNX_gtX1dX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Gt(1.0d))}}, + {"InjectXNaNX_gteX1dX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Gte(1.0d))}}, + {"InjectX1dX_eqXnullX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Eq(null))}}, + {"InjectX1dX_neqXnullX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Neq(null))}}, + {"InjectX1dX_ltXnullX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Lt(null))}}, + {"InjectX1dX_lteXnullX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Lte(null))}}, + {"InjectX1dX_gtXnullX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Gt(null))}}, + {"InjectX1dX_gteXnullX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Gte(null))}}, + {"InjectXnullX_eqX1dX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Eq(1.0d))}}, + {"InjectXnullX_neqX1dX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Neq(1.0d))}}, + {"InjectXnullX_ltX1dX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Lt(1.0d))}}, + {"InjectXnullX_lteX1dX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Lte(1.0d))}}, + {"InjectXnullX_gtX1dX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Gt(1.0d))}}, + {"InjectXnullX_gteX1dX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Gte(1.0d))}}, + {"InjectXnullX_eqXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Eq(Double.NaN))}}, + {"InjectXnullX_neqXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Neq(Double.NaN))}}, + {"InjectXnullX_ltXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Lt(Double.NaN))}}, + {"InjectXnullX_lteXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Lte(Double.NaN))}}, + {"InjectXnullX_gtXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Gt(Double.NaN))}}, + {"InjectXnullX_gteXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(null).Is(P.Gte(Double.NaN))}}, + {"InjectXNaNX_eqXnullX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Eq(null))}}, + {"InjectXNaNX_neqXnullX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Neq(null))}}, + {"InjectXNaNX_ltXnullX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Lt(null))}}, + {"InjectXNaNX_lteXnullX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Lte(null))}}, + {"InjectXNaNX_gtXnullX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Gt(null))}}, + {"InjectXNaNX_gteXnullX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NaN).Is(P.Gte(null))}}, + {"InjectXfooX_eqX1dX", new List, ITraversal>> {(g,p) =>g.Inject("foo").Is(P.Eq(1.0d))}}, + {"InjectXfooX_neqX1dX", new List, ITraversal>> {(g,p) =>g.Inject("foo").Is(P.Neq(1.0d))}}, + {"InjectXfooX_ltX1dX", new List, ITraversal>> {(g,p) =>g.Inject("foo").Is(P.Lt(1.0d))}}, + {"InjectXfooX_lteX1dX", new List, ITraversal>> {(g,p) =>g.Inject("foo").Is(P.Lte(1.0d))}}, + {"InjectXfooX_gtX1dX", new List, ITraversal>> {(g,p) =>g.Inject("foo").Is(P.Gt(1.0d))}}, + {"InjectXfooX_gteX1dX", new List, ITraversal>> {(g,p) =>g.Inject("foo").Is(P.Gte(1.0d))}}, + {"InjectX1dX_eqXfooX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Eq("foo"))}}, + {"InjectX1dX_neqXfooX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Neq("foo"))}}, + {"InjectX1dX_ltXfooX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Lt("foo"))}}, + {"InjectX1dX_lteXfooX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Lte("foo"))}}, + {"InjectX1dX_gtXfooX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Gt("foo"))}}, + {"InjectX1dX_gteXfooX", new List, ITraversal>> {(g,p) =>g.Inject(1.0d).Is(P.Gte("foo"))}}, + {"InjectX1dX_andXtrue_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Eq(1)), __.Is(P.Gt(0)))}}, + {"InjectX1dX_isXtrue_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Eq(1).And(P.Gt(0)))}}, + {"InjectX1dX_andXtrue_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Eq(1)), __.Is(P.Lt(0)))}}, + {"InjectX1dX_isXtrue_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Eq(1).And(P.Lt(0)))}}, + {"InjectX1dX_andXtrue_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Eq(1)), __.Is(P.Lt(Double.NaN)))}}, + {"InjectX1dX_isXtrue_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Eq(1).And(P.Lt(Double.NaN)))}}, + {"InjectX1dX_andXfalse_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Neq(1)), __.Is(P.Gt(0)))}}, + {"InjectX1dX_isXfalse_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Neq(1).And(P.Gt(0)))}}, + {"InjectX1dX_andXfalse_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Neq(1)), __.Is(P.Lt(0)))}}, + {"InjectX1dX_isXfalse_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Neq(1).And(P.Lt(0)))}}, + {"InjectX1dX_andXfalse_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Neq(1)), __.Is(P.Lt(Double.NaN)))}}, + {"InjectX1dX_isXfalse_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Neq(1).And(P.Lt(Double.NaN)))}}, + {"InjectX1dX_andXerror_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Lt(Double.NaN)), __.Is(P.Gt(0)))}}, + {"InjectX1dX_isXerror_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Lt(Double.NaN).And(P.Gt(0)))}}, + {"InjectX1dX_andXerror_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Lt(Double.NaN)), __.Is(P.Gt(2)))}}, + {"InjectX1dX_isXerror_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Lt(Double.NaN).And(P.Gt(2)))}}, + {"InjectX1dX_andXerror_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).And(__.Is(P.Lt(Double.NaN)), __.Is(P.Gt(Double.NaN)))}}, + {"InjectX1dX_isXerror_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Lt(Double.NaN).And(P.Gt(Double.NaN)))}}, + {"InjectX1dX_orXtrue_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Eq(1)), __.Is(P.Gt(0)))}}, + {"InjectX1dX_isXtrue_or_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Eq(1).Or(P.Gt(0)))}}, + {"InjectX1dX_orXtrue_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Eq(1)), __.Is(P.Lt(0)))}}, + {"InjectX1dX_isXtrue_or_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Eq(1).Or(P.Lt(0)))}}, + {"InjectX1dX_orXtrue_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Eq(1)), __.Is(P.Lt(Double.NaN)))}}, + {"InjectX1dX_isXtrue_or_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Eq(1).Or(P.Lt(Double.NaN)))}}, + {"InjectX1dX_orXfalse_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Neq(1)), __.Is(P.Gt(0)))}}, + {"InjectX1dX_isXfalse_or_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Neq(1).Or(P.Gt(0)))}}, + {"InjectX1dX_orXfalse_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Neq(1)), __.Is(P.Lt(0)))}}, + {"InjectX1dX_isXfalse_or_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Neq(1).Or(P.Lt(0)))}}, + {"InjectX1dX_orXfalse_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Neq(1)), __.Is(P.Lt(Double.NaN)))}}, + {"InjectX1dX_isXfalse_or_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Neq(1).Or(P.Lt(Double.NaN)))}}, + {"InjectX1dX_orXerror_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Lt(Double.NaN)), __.Is(P.Gt(0)))}}, + {"InjectX1dX_isXerror_or_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Lt(Double.NaN).Or(P.Gt(0)))}}, + {"InjectX1dX_orXerror_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Lt(Double.NaN)), __.Is(P.Gt(2)))}}, + {"InjectX1dX_isXerror_or_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Lt(Double.NaN).Or(P.Gt(2)))}}, + {"InjectX1dX_orXerror_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Or(__.Is(P.Lt(Double.NaN)), __.Is(P.Gt(Double.NaN)))}}, + {"InjectX1dX_isXerror_or_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Is(P.Lt(Double.NaN).Or(P.Gt(Double.NaN)))}}, + {"InjectX1dX_notXtrueX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Not(__.Is(P.Gt(0)))}}, + {"InjectX1dX_notXfalseX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Not(__.Is(P.Lt(0)))}}, + {"InjectX1dX_notXNaNX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Not(__.Is(P.Gt(Double.NaN)))}}, + {"InjectX1dX_notXisXeqXNaNXXX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Not(__.Is(P.Eq(Double.NaN)))}}, + {"InjectX1dX_notXnotXisXeqXNaNXXXX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Not(__.Not(__.Is(P.Eq(Double.NaN))))}}, + {"InjectX1dX_whereXnotXisXltXNaNXXXX", new List, ITraversal>> {(g,p) =>g.Inject(1d).Where(__.Inject(1).Not(__.Is(P.Lt(Double.NaN))))}}, + {"InjectX1dX_xorXtrue_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Eq(1)), __.Not(__.Is(P.Eq(1)))), __.And(__.Is(P.Eq(1)), __.Not(__.Is(P.Eq(1))))))}}, + {"InjectX1dX_xorXtrue_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Eq(1)), __.Not(__.Is(P.Gt(1)))), __.And(__.Is(P.Gt(1)), __.Not(__.Is(P.Eq(1))))))}}, + {"InjectX1dX_xorXtrue_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Eq(1)), __.Not(__.Is(P.Lt(Double.NaN)))), __.And(__.Is(P.Lt(Double.NaN)), __.Not(__.Is(P.Eq(1))))))}}, + {"InjectX1dX_xorXfalse_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Gt(1)), __.Not(__.Is(P.Eq(1)))), __.And(__.Is(P.Eq(1)), __.Not(__.Is(P.Gt(1))))))}}, + {"InjectX1dX_xorXfalse_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Gt(1)), __.Not(__.Is(P.Gt(1)))), __.And(__.Is(P.Gt(1)), __.Not(__.Is(P.Gt(1))))))}}, + {"InjectX1dX_xorXfalse_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Gt(1)), __.Not(__.Is(P.Lt(Double.NaN)))), __.And(__.Is(P.Lt(Double.NaN)), __.Not(__.Is(P.Gt(1))))))}}, + {"InjectX1dX_xorXerror_trueX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Lt(Double.NaN)), __.Not(__.Is(P.Eq(1)))), __.And(__.Is(P.Eq(1)), __.Not(__.Is(P.Lt(Double.NaN))))))}}, + {"InjectX1dX_xorXerror_falseX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Lt(Double.NaN)), __.Not(__.Is(P.Gt(1)))), __.And(__.Is(P.Gt(1)), __.Not(__.Is(P.Lt(Double.NaN))))))}}, + {"InjectX1dX_xorXerror_errorX", new List, ITraversal>> {(g,p) =>g.Inject(1).Filter(__.Or(__.And(__.Is(P.Lt(Double.NaN)), __.Not(__.Is(P.Lt(Double.NaN)))), __.And(__.Is(P.Lt(Double.NaN)), __.Not(__.Is(P.Lt(Double.NaN))))))}}, + {"InjectXInfX_eqXInfX", new List, ITraversal>> {(g,p) =>g.Inject(Double.PositiveInfinity).Is(P.Eq(Double.PositiveInfinity))}}, + {"InjectXInfX_neqXInfX", new List, ITraversal>> {(g,p) =>g.Inject(Double.PositiveInfinity).Is(P.Neq(Double.PositiveInfinity))}}, + {"InjectXNegInfX_eqXNegInfX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NegativeInfinity).Is(P.Eq(Double.NegativeInfinity))}}, + {"InjectXNegInfX_neqXNegInfX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NegativeInfinity).Is(P.Neq(Double.NegativeInfinity))}}, + {"InjectXInfX_gtXNegInfX", new List, ITraversal>> {(g,p) =>g.Inject(Double.PositiveInfinity).Is(P.Gt(Double.NegativeInfinity))}}, + {"InjectXInfX_ltXNegInfX", new List, ITraversal>> {(g,p) =>g.Inject(Double.PositiveInfinity).Is(P.Lt(Double.NegativeInfinity))}}, + {"InjectXNegInfX_ltXInfX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NegativeInfinity).Is(P.Lt(Double.PositiveInfinity))}}, + {"InjectXNegInfX_gtXInfX", new List, ITraversal>> {(g,p) =>g.Inject(Double.NegativeInfinity).Is(P.Gt(Double.PositiveInfinity))}}, + {"Primitives_Number_eqXbyteX", new List, ITraversal>> {(g,p) =>g.Inject(new List { (sbyte) 1, (short) 1, 1, 1l, 1f, 1d, 1000, (decimal) 1, BigInteger.Parse("1") }).Unfold().Where(__.Is(p["xx1"]))}}, + {"Primitives_Number_eqXshortX", new List, ITraversal>> {(g,p) =>g.Inject(new List { (sbyte) 1, (short) 1, 1, 1l, 1f, 1d, 1000, (decimal) 1, BigInteger.Parse("1") }).Unfold().Where(__.Is(p["xx1"]))}}, + {"Primitives_Number_eqXintX", new List, ITraversal>> {(g,p) =>g.Inject(new List { (sbyte) 1, (short) 1, 1, 1l, 1f, 1d, 1000, (decimal) 1, BigInteger.Parse("1") }).Unfold().Where(__.Is(p["xx1"]))}}, + {"Primitives_Number_eqXlongX", new List, ITraversal>> {(g,p) =>g.Inject(new List { (sbyte) 1, (short) 1, 1, 1l, 1f, 1d, 1000, (decimal) 1, BigInteger.Parse("1") }).Unfold().Where(__.Is(p["xx1"]))}}, + {"Primitives_Number_eqXbigintX", new List, ITraversal>> {(g,p) =>g.Inject(new List { (sbyte) 1, (short) 1, 1, 1l, 1f, 1d, 1000, (decimal) 1, BigInteger.Parse("1") }).Unfold().Where(__.Is(p["xx1"]))}}, + {"Primitives_Number_eqXfloatX", new List, ITraversal>> {(g,p) =>g.Inject(new List { (sbyte) 1, (short) 1, 1, 1l, 1f, 1d, 1000, (decimal) 1, BigInteger.Parse("1") }).Unfold().Where(__.Is(p["xx1"]))}}, + {"Primitives_Number_eqXdoubleX", new List, ITraversal>> {(g,p) =>g.Inject(new List { (sbyte) 1, (short) 1, 1, 1l, 1f, 1d, 1000, (decimal) 1, BigInteger.Parse("1") }).Unfold().Where(__.Is(p["xx1"]))}}, + {"Primitives_Number_eqXbigdecimalX", new List, ITraversal>> {(g,p) =>g.Inject(new List { (sbyte) 1, (short) 1, 1, 1l, 1f, 1d, 1000, (decimal) 1, BigInteger.Parse("1") }).Unfold().Where(__.Is(p["xx1"]))}}, + {"g_V_values_order", new List, ITraversal>> {(g,p) =>g.V().Values().Order()}}, + {"g_V_properties_order", new List, ITraversal>> {(g,p) =>g.V().Properties().Order()}}, + {"g_V_properties_order_id", new List, ITraversal>> {(g,p) =>g.V().Properties().Order().Id()}}, + {"g_E_properties_order_value", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").As("a").AddE((string) "self").From("a").To("a").Property("weight", 0.5d).Property("a", 10).AddE((string) "self").From("a").To("a").Property("weight", 1.0d).Property("a", 11).AddE((string) "self").From("a").To("a").Property("weight", 0.4d).Property("a", 12).AddE((string) "self").From("a").To("a").Property("weight", 1.0d).Property("a", 13).AddE((string) "self").From("a").To("a").Property("weight", 0.4d).Property("a", 14).AddE((string) "self").From("a").To("a").Property("weight", 0.2d).Property("a", 15), (g,p) =>g.E().Properties().Order().Value()}}, + {"g_E_properties_order_byXdescX_value", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").As("a").AddE((string) "self").From("a").To("a").Property("weight", 0.5d).Property("a", 10).AddE((string) "self").From("a").To("a").Property("weight", 1.0d).Property("a", 11).AddE((string) "self").From("a").To("a").Property("weight", 0.4d).Property("a", 12).AddE((string) "self").From("a").To("a").Property("weight", 1.0d).Property("a", 13).AddE((string) "self").From("a").To("a").Property("weight", 0.4d).Property("a", 14).AddE((string) "self").From("a").To("a").Property("weight", 0.2d).Property("a", 15), (g,p) =>g.E().Properties().Order().By(Order.Desc).Value()}}, + {"g_E_properties_order", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").As("a").AddE((string) "self").From("a").To("a").Property("weight", 0.5d).Property("a", 10).AddE((string) "self").From("a").To("a").Property("weight", 1.0d).Property("a", 11).AddE((string) "self").From("a").To("a").Property("weight", 0.4d).Property("a", 12).AddE((string) "self").From("a").To("a").Property("weight", 1.0d).Property("a", 13).AddE((string) "self").From("a").To("a").Property("weight", 0.4d).Property("a", 14).AddE((string) "self").From("a").To("a").Property("weight", 0.2d).Property("a", 15), (g,p) =>g.E().Properties().Order()}}, + {"g_E_properties_order_byXdescX", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property("name", "alice").As("a").AddE((string) "self").From("a").To("a").Property("weight", 0.5d).Property("a", 10).AddE((string) "self").From("a").To("a").Property("weight", 1.0d).Property("a", 11).AddE((string) "self").From("a").To("a").Property("weight", 0.4d).Property("a", 12).AddE((string) "self").From("a").To("a").Property("weight", 1.0d).Property("a", 13).AddE((string) "self").From("a").To("a").Property("weight", 0.4d).Property("a", 14).AddE((string) "self").From("a").To("a").Property("weight", 0.2d).Property("a", 15), (g,p) =>g.E().Properties().Order().By(Order.Desc)}}, + {"g_inject_order", new List, ITraversal>> {(g,p) =>g.Inject("zzz", "foo", Guid.Parse("6100808b-62f9-42b7-957e-ed66c30f40d1"), new List { "a", "b", "c", "d" }, 1, DateTimeOffset.Parse("2023-08-01T00:00Z"), new List { "a", "b", "c" }, new Dictionary {{ "a", "a" }, { "b", "b" }}, null, 2.0d, DateTimeOffset.Parse("2023-01-01T00:00Z"), new HashSet { "x", "y", "z" }, new Dictionary {{ "a", "a" }, { "b", false }, { "c", "c" }}, "bar", Guid.Parse("5100808b-62f9-42b7-957e-ed66c30f40d1"), true, false, Double.PositiveInfinity, Double.NaN, Double.NegativeInfinity).Order()}}, + {"g_inject_order_byXdescX", new List, ITraversal>> {(g,p) =>g.Inject("zzz", "foo", Guid.Parse("6100808b-62f9-42b7-957e-ed66c30f40d1"), new List { "a", "b", "c", "d" }, 1, DateTimeOffset.Parse("2023-08-01T00:00Z"), new List { "a", "b", "c" }, new Dictionary {{ "a", "a" }, { "b", "b" }}, null, 2.0d, DateTimeOffset.Parse("2023-01-01T00:00Z"), new HashSet { "x", "y", "z" }, new Dictionary {{ "a", "a" }, { "b", false }, { "c", "c" }}, "bar", Guid.Parse("5100808b-62f9-42b7-957e-ed66c30f40d1"), true, false, Double.PositiveInfinity, Double.NaN, Double.NegativeInfinity).Order().By(Order.Desc)}}, + {"g_V_out_out_order_byXascX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Order().By(Order.Asc)}}, + {"g_V_out_out_order_byXdescX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Order().By(Order.Desc)}}, + {"g_V_out_out_asXheadX_path_order_byXascX_selectXheadX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().As("head").Path().Order().By(Order.Asc).Select("head")}}, + {"g_V_out_out_asXheadX_path_order_byXdescX_selectXheadX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().As("head").Path().Order().By(Order.Desc).Select("head")}}, + {"g_V_out_outE_order_byXascX", new List, ITraversal>> {(g,p) =>g.V().Out().OutE().Order().By(Order.Asc)}}, + {"g_V_out_outE_order_byXdescX", new List, ITraversal>> {(g,p) =>g.V().Out().OutE().Order().By(Order.Desc)}}, + {"g_V_out_outE_asXheadX_path_order_byXascX_selectXheadX", new List, ITraversal>> {(g,p) =>g.V().Out().OutE().As("head").Path().Order().By(Order.Asc).Select("head")}}, + {"g_V_out_outE_asXheadX_path_order_byXdescX_selectXheadX", new List, ITraversal>> {(g,p) =>g.V().Out().OutE().As("head").Path().Order().By(Order.Desc).Select("head")}}, + {"g_V_out_out_properties_asXheadX_path_order_byXascX_selectXheadX_value", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Properties().As("head").Path().Order().By(Order.Asc).Select("head").Value()}}, + {"g_V_out_out_properties_asXheadX_path_order_byXdescX_selectXheadX_value", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Properties().As("head").Path().Order().By(Order.Desc).Select("head").Value()}}, + {"g_V_out_out_values_asXheadX_path_order_byXascX_selectXheadX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Values().As("head").Path().Order().By(Order.Asc).Select("head")}}, + {"g_V_out_out_values_asXheadX_path_order_byXdescX_selectXheadX", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Values().As("head").Path().Order().By(Order.Desc).Select("head")}}, + {"g_V_valueXnameX_aggregateXxX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Values("name").Aggregate("x").Cap("x")}}, + {"g_V_aggregateXxX_byXnameX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("x").By("name").Cap("x")}}, + {"g_V_out_aggregateXaX_path", new List, ITraversal>> {(g,p) =>g.V().Out().Aggregate("a").Path()}}, + {"g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Aggregate("x").By("age").Cap("x").As("y").Select("y")}}, + {"g_V_aggregateXxX_byXageX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("x").By("age").Cap("x")}}, + {"g_V_localXaggregateXxX_byXageXX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("x").By("age")).Cap("x")}}, + {"g_withStrategiesXProductiveByStrategyX_V_localXaggregateXxX_byXageXX_capXxX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Local(__.Aggregate("x").By("age")).Cap("x")}}, + {"g_V_localX_aggregateXa_byXnameXX_out_capXaX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("a").By("name")).Out().Cap("a")}}, + {"g_VX1X_localXaggregateXaX_byXnameXX_out_localXaggregateXaX_byXnameXX_name_capXaX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Local(__.Aggregate("a").By("name")).Out().Local(__.Aggregate("a").By("name")).Values("name").Cap("a")}}, + {"g_withSideEffectXa_setX_V_both_name_localXaggregateX_aXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Both().Values("name").Local(__.Aggregate("a")).Cap("a")}}, + {"g_withSideEffectXa_set_inlineX_V_both_name_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", new HashSet { "alice" }).V().Both().Values("name").Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_localXaggregateXaX_byXoutEXcreatedX_countXX_out_out_localXaggregateXaX_byXinEXcreatedX_weight_sumXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("a").By(__.OutE("created").Count())).Out().Out().Local(__.Aggregate("a").By(__.InE("created").Values("weight").Sum())).Cap("a")}}, + {"g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("x").By(__.Values("age").Is(P.Gt(29))).Cap("x")}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("x").By(__.Values("age").Is(P.Gt(29))).Cap("x")}}, + {"g_V_aggregateXxX_byXout_order_byXnameXX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("x").By(__.Out().Order().By("name")).Cap("x")}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("x").By(__.Out().Order().By("name")).Cap("x")}}, + {"g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").Has("person", "age", P.Gte(30)).Cap("a").Unfold().Values("name")}}, + {"g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Sum).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_1_sumX_V_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Sum).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 123, Operator.Minus).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_123_minusX_V_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 123, Operator.Minus).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 2, Operator.Mult).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_2_multX_V_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 2, Operator.Mult).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 876960, Operator.Div).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_876960_divX_V_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 876960, Operator.Div).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Min).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_1_minX_V_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Min).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 100, Operator.Min).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_100_minX_V_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 100, Operator.Min).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Max).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_1_maxX_V_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Max).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 100, Operator.Max).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_100_maxX_V_localXaggregateX_aX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", 100, Operator.Max).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", true, Operator.And).V().Constant(false).Aggregate("a").Cap("a")}}, + {"g_withSideEffectXa_true_andX_V_constantXfalseX_localXaggregateX_aXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", true, Operator.And).V().Constant(false).Local(__.Aggregate("a")).Cap("a")}}, + {"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", true, Operator.Or).V().Constant(false).Aggregate("a").Cap("a")}}, + {"g_withSideEffectXa_true_orX_V_constantXfalseX_localXaggregateX_aXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", true, Operator.Or).V().Constant(false).Local(__.Aggregate("a")).Cap("a")}}, + {"g_withSideEffectXa_1_2_3_addAllX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", new List { 1, 2, 3 }, Operator.AddAll).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_1_2_3_addAllX_V_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", new List { 1, 2, 3 }, Operator.AddAll).V().Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_withSideEffectXa_1_2_3_assignX_V_aggregateXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", new List { 1, 2, 3 }, Operator.Assign).V().Aggregate("a").By("age").Cap("a")}}, + {"g_withSideEffectXa_1_2_3_assignX_V_order_byXageX_localXaggregateX_aX_byXageXX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", new List { 1, 2, 3 }, Operator.Assign).V().Order().By("age").Local(__.Aggregate("a").By("age")).Cap("a")}}, + {"g_V_localXaggregateXa_nameXX_out_capXaX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("a").By("name")).Out().Cap("a")}}, + {"g_withSideEffectXa_setX_V_both_name_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Both().Values("name").Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_localXaggregateXaXX_outE_inV_localXaggregateXaXX_capXaX_unfold_dedup", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("a")).OutE().InV().Local(__.Aggregate("a")).Cap("a").Unfold().Dedup()}}, + {"g_V_hasLabelXpersonX_localXaggregateXaXX_outXcreatedX_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Local(__.Aggregate("a")).Out("created").Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_localXaggregateXaXX_repeatXout_localXaggregateXaXXX_timesX2X_capXaX_unfold_groupCount", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("a")).Repeat(__.Out().Local(__.Aggregate("a"))).Times(2).Cap("a").Unfold().Values("name").GroupCount()}}, + {"g_V_hasXname_markoX_localXaggregateXaXX_outXknowsX_localXaggregateXaXX_outXcreatedX_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "marko").Local(__.Aggregate("a")).Out("knows").Local(__.Aggregate("a")).Out("created").Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_hasLabelXsoftwareX_localXaggregateXaXX_inXcreatedX_localXaggregateXaXX_outXknowsX_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("software").Local(__.Aggregate("a")).In("created").Local(__.Aggregate("a")).Out("knows").Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_localXaggregateXaXX_outE_hasXweight_lgtX0_5XX_inV_localXaggregateXaXX_capXaX_unfold_path", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("a")).OutE().Has("weight", P.Gt(0.5)).InV().Local(__.Aggregate("a")).Cap("a").Unfold().Path()}}, + {"g_V_localXaggregateXaXX_bothE_sampleX1X_otherV_localXaggregateXaXX_capXaX_unfold_groupCount_byXlabelX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("a")).BothE().Sample(1).OtherV().Local(__.Aggregate("a")).Cap("a").Unfold().GroupCount().By(T.Label)}}, + {"g_V_hasLabelXpersonX_localXaggregateXaXX_outE_inV_simplePath_localXaggregateXaXX_capXaX_unfold_hasLabelXsoftwareX_count", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Local(__.Aggregate("a")).OutE().InV().SimplePath().Local(__.Aggregate("a")).Cap("a").Unfold().HasLabel("software").Count()}}, + {"g_V_localXaggregateXaXX_unionXout_inX_localXaggregateXaXX_capXaX_unfold_dedup_valuesXnameX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Aggregate("a")).Union(__.Out(), __.In()).Local(__.Aggregate("a")).Cap("a").Unfold().Dedup().Values("name")}}, + {"g_V_hasXname_joshX_localXaggregateXaXX_outE_hasXweight_ltX1_0XX_inV_localXaggregateXaXX_outE_inV_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Has("name", "josh").Local(__.Aggregate("a")).OutE().Has("weight", P.Lt(1.0)).InV().Local(__.Aggregate("a")).OutE().InV().Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_hasLabelXpersonX_localXaggregateXaXX_outE_order_byXweightX_limitX1X_inV_localXaggregateXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").Local(__.Aggregate("a")).OutE().Order().By("weight").Limit(1).InV().Local(__.Aggregate("a")).Cap("a")}}, + {"g_V_repeatXaggregateXaXX_timesX2X_capXaX_unfold", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Aggregate("a")).Times(2).Cap("a").Unfold()}}, + {"g_V_aggregateXaX_capXaX_unfold_both", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").Cap("a").Unfold().Both()}}, + {"g_V_aggregateXaX_capXaX_unfold_barrier_both", new List, ITraversal>> {(g,p) =>g.V().Aggregate("a").Cap("a").Unfold().Barrier().Both()}}, + {"g_V_fail", new List, ITraversal>> {(g,p) =>g.V().Fail()}}, + {"g_V_failXmsgX", new List, ITraversal>> {(g,p) =>g.V().Fail("msg")}}, + {"g_V_unionXout_failX", new List, ITraversal>> {(g,p) =>g.V().Union(__.Out(), __.Fail())}}, + {"g_V_group_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Group().By("name")}}, + {"g_V_group_byXageX", new List, ITraversal>> {(g,p) =>g.V().Group().By("age")}}, + {"g_withStrategiesXProductiveByStrategyX_V_group_byXageX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Group().By("age")}}, + {"g_V_group_byXnameX_byXageX", new List, ITraversal>> {(g,p) =>g.V().Group().By("name").By("age")}}, + {"g_V_group_byXnameX_by", new List, ITraversal>> {(g,p) =>g.V().Group().By("name").By()}}, + {"g_V_hasXlangX_group_byXlangX_byXcountX", new List, ITraversal>> {(g,p) =>g.V().Has("lang").Group().By("lang").By(__.Count())}}, + {"g_V_group_byXoutE_countX_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Order().By("name").Group().By(__.OutE().Count()).By("name")}}, + {"g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both("followedBy")).Times(2).Group().By("songType").By(__.Count())}}, + {"g_V_group_byXvaluesXnameX_substringX1XX_byXconstantX1XX", new List, ITraversal>> {(g,p) =>g.V().Group().By(__.Values("name").Substring(0, 1)).By(__.Constant(1))}}, + {"g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X", new List, ITraversal>> {(g,p) =>g.V().Out().Group().By(T.Label).Select("person").Unfold().Out("created").Values("name").Limit(2)}}, + {"g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("song").Group().By("name").By(__.Properties().GroupCount().By(T.Label))}}, + {"g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX", new List, ITraversal>> {(g,p) =>g.V().Out("followedBy").Group().By("songType").By(__.BothE().Group().By(T.Label).By(__.Values("weight").Sum()))}}, + {"g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX", new List, ITraversal>> {(g,p) =>g.V().Group().By(T.Label).By(__.BothE().Group("a").By(T.Label).By(__.Values("weight").Sum()).Values("weight").Sum())}}, + {"g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX", new List, ITraversal>> {(g,p) =>g.WithSideEffect("a", new Dictionary {{ "marko", new List { "666" } }, { "noone", new List { "blah" } }}).V().Group("a").By("name").By(__.OutE().Label().Fold()).Cap("a").Unfold().Group().By(Column.Keys).By(__.Select(Column.Values).Order(Scope.Local).By(Order.Asc))}}, + {"g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").As("p").Out("created").Group().By("name").By(__.Select("p").Values("age").Sum())}}, + {"g_V_group_byXlabelX_byXlabel_countX", new List, ITraversal>> {(g,p) =>g.V().Group().By(__.Label()).By(__.Label().Count())}}, + {"g_V_hasXperson_name_withinXvadas_peterXX_group_by_byXout_order_foldX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", P.Within("vadas", "peter")).Group().By().By(__.Out().Order().Fold())}}, + {"g_V_hasXperson_name_withinXvadas_peterXX_group_by_byXout_foldX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", P.Within("vadas", "peter")).Group().By().By(__.Out().Fold())}}, + {"g_V_hasXperson_name_withinXvadas_peterXX_group_by_byXout_orderX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", P.Within("vadas", "peter")).Group().By().By(__.Out().Order())}}, + {"g_V_hasXperson_name_withinXvadas_peterXX_group_by_byXout_order_countX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", P.Within("vadas", "peter")).Group().By().By(__.Out().Order().Count())}}, + {"g_V_hasXperson_name_withinXvadas_peterXX_group_by_byXout_order_fold_countXlocalXX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", P.Within("vadas", "peter")).Group().By().By(__.Out().Order().Fold().Count(Scope.Local))}}, + {"g_V_group_by_byXout_label_foldX_selectXvaluesX_unfold_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group().By().By(__.Out().Label().Fold()).Select(Column.Values).Unfold().Order(Scope.Local)}}, + {"g_V_group_by_byXout_label_dedup_foldX_selectXvaluesX_unfold_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group().By().By(__.Out().Label().Dedup().Fold()).Select(Column.Values).Unfold().Order(Scope.Local)}}, + {"g_V_group_by_byXout_label_limitX0X_foldX_selectXvaluesX_unfold", new List, ITraversal>> {(g,p) =>g.V().Group().By().By(__.Out().Label().Limit(0).Fold()).Select(Column.Values).Unfold()}}, + {"g_V_group_by_byXout_label_limitX10X_foldX_selectXvaluesX_unfold_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group().By().By(__.Out().Label().Limit(10).Fold()).Select(Column.Values).Unfold().Order(Scope.Local)}}, + {"g_V_group_by_byXout_label_tailX10X_foldX_selectXvaluesX_unfold_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group().By().By(__.Out().Label().Tail(10).Fold()).Select(Column.Values).Unfold().Order(Scope.Local)}}, + {"g_V_groupXaX_byXnameX_by_selectXaX_countXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By("name").By().Select("a").Count(Scope.Local)}}, + {"g_V_localXgroupXaX_byXnameX_by_selectXaX_countXlocalXX", new List, ITraversal>> {(g,p) =>g.V().Local(__.Group("a").By("name").By().Select("a").Count(Scope.Local))}}, + {"g_V_group_byXvaluesXnameXX_byXboth_countX", new List, ITraversal>> {(g,p) =>g.V().Group().By(__.Values("name")).By(__.Both().Count())}}, + {"g_V_outXcreatedX_groupCount_byXnameX", new List, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount().By("name")}}, + {"g_V_groupCount_byXageX", new List, ITraversal>> {(g,p) =>g.V().GroupCount().By("age")}}, + {"g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX", new List, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().GroupCount().By("age")}}, + {"g_V_outXcreatedX_name_groupCount", new List, ITraversal>> {(g,p) =>g.V().Out("created").Values("name").GroupCount()}}, + {"g_V_outXcreatedX_groupCountXaX_byXnameX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount("a").By("name").Cap("a")}}, + {"g_V_outXcreatedX_name_groupCountXaX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Out("created").Values("name").GroupCount("a").Cap("a")}}, + {"g_V_repeatXout_groupCountXaX_byXnameXX_timesX2X_capXaX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out().GroupCount("a").By("name")).Times(2).Cap("a")}}, + {"g_V_both_groupCountXaX_byXlabelX_asXbX_barrier_whereXselectXaX_selectXsoftwareX_isXgtX2XXX_selectXbX_name", new List, ITraversal>> {(g,p) =>g.V().Both().GroupCount("a").By(T.Label).As("b").Barrier().Where(__.Select("a").Select("software").Is(P.Gt(2))).Select("b").Values("name")}}, + {"g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum", new List, ITraversal>> {(g,p) =>g.V().Union(__.Out("knows"), __.Out("created").In("created")).GroupCount().Select(Column.Values).Unfold().Sum()}}, + {"g_V_hasXnoX_groupCount", new List, ITraversal>> {(g,p) =>g.V().Has("no").GroupCount()}}, + {"g_V_hasXnoX_groupCountXaX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Has("no").GroupCount("a").Cap("a")}}, + {"g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX", new List, ITraversal>> {(g,p) =>g.V().Union(__.Repeat(__.Out()).Times(2).GroupCount("m").By("lang"), __.Repeat(__.In()).Times(2).GroupCount("m").By("name")).Cap("m")}}, + {"g_V_outXcreatedX_groupCountXxX_capXxX", new List, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount("x").Cap("x")}}, + {"g_V_groupCount_byXbothE_countX", new List, ITraversal>> {(g,p) =>g.V().GroupCount().By(__.BothE().Count())}}, + {"g_V_both_localXgroupCountXaXX_out_capXaX_selectXkeysX_unfold_both_localXgroupCountXaXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Both().Local(__.GroupCount("a")).Out().Cap("a").Select(Column.Keys).Unfold().Both().Local(__.GroupCount("a")).Cap("a")}}, + {"g_V_hasXperson_name_markoX_bothXknowsX_groupCount_byXvaluesXnameX_foldX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Both("knows").GroupCount().By(__.Values("name").Fold())}}, + {"g_V_outXcreatedX_groupCount_byXnameX_byXageX", new List, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount().By("name").By("age")}}, + {"g_V_outXcreatedX_groupCountXxX_byXnameX_byXageX", new List, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount("x").By("name").By("age")}}, + {"g_V_groupCountXaX_selectXaX_countXlocalX", new List, ITraversal>> {(g,p) =>g.V().GroupCount("a").Select("a").Count(Scope.Local)}}, + {"g_V_localXgroupCountXaX_selectXaX_countXlocalXX", new List, ITraversal>> {(g,p) =>g.V().Local(__.GroupCount("a").Select("a").Count(Scope.Local))}}, + {"g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Values("name").Inject("daniel").As("a").Map(__.Length()).Path()}}, + {"g_injectXnull_1_3_nullX", new List, ITraversal>> {(g,p) =>g.Inject(null, 1, 3, null)}}, + {"g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX", new List, ITraversal>> {(g,p) =>g.Inject(10, 20, null, 20, 10, 10).GroupCount("x").Dedup().As("y").Project("a", "b").By().By(__.Select("x").Select(__.Select("y")))}}, + {"g_injectXname_marko_age_nullX_selectXname_ageX", new List, ITraversal>> {(g,p) =>g.Inject(new Dictionary {{ "name", "marko" }, { "age", null }}).Select("name", "age")}}, + {"g_injectXnull_nullX", new List, ITraversal>> {(g,p) =>g.Inject(null, null)}}, + {"g_injectXnullX", new List, ITraversal>> {(g,p) =>g.Inject(null)}}, + {"g_inject", new List, ITraversal>> {(g,p) =>g.Inject()}}, + {"g_VX1X_valuesXageX_injectXnull_nullX", new List, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values("age").Inject(null, null)}}, + {"g_VX1X_valuesXageX_injectXnullX", new List, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values("age").Inject(null)}}, + {"g_VX1X_valuesXageX_inject", new List, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values("age").Inject()}}, + {"g_injectXnull_1_3_nullX_asXaX_selectXaX", new List, ITraversal>> {(g,p) =>g.Inject(null, 1, 3, null).As("a").Select("a")}}, + {"g_injectX1_3X_injectX100_300X", new List, ITraversal>> {(g,p) =>g.Inject(1, 3).Inject(100, 300)}}, + {"g_injectX1_3_100_300X_list", new List, ITraversal>> {(g,p) =>g.Inject(new List { 1, 3, 100, 300 })}}, + {"g_injectX1_3_100_300X_set", new List, ITraversal>> {(g,p) =>g.Inject(new HashSet { 1, 3, 100, 300 })}}, + {"g_injectX1_1X_set", new List, ITraversal>> {(g,p) =>g.Inject(new HashSet { 1, 1 })}}, + {"g_io_readXkryoX", new List, ITraversal>> {(g,p) =>g.Io("data/tinkerpop-modern.kryo").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_io_read_withXreader_gryoX", new List, ITraversal>> {(g,p) =>g.Io("data/tinkerpop-modern.kryo").With(IO.Reader, IO.Gryo).Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_io_readXgraphsonX", new List, ITraversal>> {(g,p) =>g.Io("data/tinkerpop-modern.json").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_io_read_withXreader_graphsonX", new List, ITraversal>> {(g,p) =>g.Io("data/tinkerpop-modern.json").With(IO.Reader, IO.GraphSON).Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_io_readXgraphmlX", new List, ITraversal>> {(g,p) =>g.Io("data/tinkerpop-modern.xml").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_io_read_withXreader_graphmlX", new List, ITraversal>> {(g,p) =>g.Io("data/tinkerpop-modern.xml").With(IO.Reader, IO.GraphML).Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_withSackX127bX_injectX1bX_sackXsumX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((sbyte) 127).Inject((sbyte) 1).Sack(Operator.Sum).Sack()}}, + {"g_withSackX32767sX_injectX1sX_sackXsumX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((short) 32767).Inject((short) 1).Sack(Operator.Sum).Sack()}}, + {"g_withSackX2147483647iX_injectX1iX_sackXsumX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(2147483647).Inject(1).Sack(Operator.Sum).Sack()}}, + {"g_withSackX1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXsumX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(1.7976931348623157e+308d).Inject(1.7976931348623157e+308d).Sack(Operator.Sum).Sack()}}, + {"g_withSackX_128bX_injectX1bX_sackXminusX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((short) -128).Inject((short) 1).Sack(Operator.Minus).Sack()}}, + {"g_withSackX_32768sX_injectX1sX_sackXminusX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((short) -32768).Inject((short) 1).Sack(Operator.Minus).Sack()}}, + {"g_withSackX_2147483648iX_injectX1iX_sackXminusX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(-2147483648).Inject(1).Sack(Operator.Minus).Sack()}}, + {"g_withSackX_1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXminusX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(-1.7976931348623157e+308d).Inject(1.7976931348623157e+308d).Sack(Operator.Minus).Sack()}}, + {"g_withSackX127bX_injectX2bX_sackXmultX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((sbyte) 127).Inject((sbyte) 2).Sack(Operator.Mult).Sack()}}, + {"g_withSackX32767sX_injectX2sX_sackXmultX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((short) 32767).Inject((short) 2).Sack(Operator.Mult).Sack()}}, + {"g_withSackX2147483647iX_injectX2iX_sackXmultX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(2147483647).Inject(2).Sack(Operator.Mult).Sack()}}, + {"g_withSackX1_7976931348623157E_308dX_injectX2dX_sackXmultX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(1.7976931348623157e+308d).Inject(2d).Sack(Operator.Mult).Sack()}}, + {"g_withSackX127bX_injectX0_5fX_sackXdivX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((sbyte) 127).Inject(0.5f).Sack(Operator.Div).Sack()}}, + {"g_withSackX32767sX_injectX0_5fX_sackXdivX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((short) 32767).Inject(0.5f).Sack(Operator.Div).Sack()}}, + {"g_withSackX2147483647iX_injectX0_5fX_sackXdivX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(2147483647).Inject(0.5f).Sack(Operator.Div).Sack()}}, + {"g_withSackX1_7976931348623157E_308dX_injectX0_5dX_sackXdivX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(1.7976931348623157e+308d).Inject(0.5d).Sack(Operator.Div).Sack()}}, + {"g_withSackX_128bX_injectX_1bX_sackXdivX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((short) -128).Inject((short) -1).Sack(Operator.Div).Sack()}}, + {"g_withSackX_32768sX_injectX_1sX_sackXdivX_sack", new List, ITraversal>> {(g,p) =>g.WithSack((short) -32768).Inject((short) -1).Sack(Operator.Div).Sack()}}, + {"g_withSackX_2147483648iX_injectX_1iX_sackXdivX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(-2147483648).Inject(-1).Sack(Operator.Div).Sack()}}, + {"g_withSackXhelloX_V_outE_sackXassignX_byXlabelX_inV_sack", new List, ITraversal>> {(g,p) =>g.WithSack("hello").V().OutE().Sack(Operator.Assign).By(T.Label).InV().Sack()}}, + {"g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum", new List, ITraversal>> {(g,p) =>g.WithSack(0.0d).V().OutE().Sack(Operator.Sum).By("weight").InV().Sack().Sum()}}, + {"g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack", new List, ITraversal>> {(g,p) =>g.WithSack(0.0d).V().Repeat(__.OutE().Sack(Operator.Sum).By("weight").InV()).Times(2).Sack()}}, + {"g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack", new List, ITraversal>> {(g,p) =>g.WithBulk(false).WithSack(1.0d, Operator.Sum).V(p["vid1"]).Local(__.OutE("knows").Barrier(Barrier.NormSack).InV()).In("knows").Barrier().Sack()}}, + {"g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", new List, ITraversal>> {(g,p) =>g.WithBulk(false).WithSack(1, Operator.Sum).V().Out().Barrier().Sack()}}, + {"g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack", new List, ITraversal>> {(g,p) =>g.WithSack(1.0d, Operator.Sum).V(p["vid1"]).Local(__.Out("knows").Barrier(Barrier.NormSack)).In("knows").Barrier().Sack()}}, + {"g_V_sackXassignX_byXageX_sack", new List, ITraversal>> {(g,p) =>g.V().Sack(Operator.Assign).By("age").Sack()}}, + {"g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack", new List, ITraversal>> {(g,p) =>g.WithSack(BigInteger.Parse("10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"), Operator.Assign).V().Local(__.Out("knows").Barrier(Barrier.NormSack)).In("knows").Barrier().Sack()}}, + {"g_withSackX2X_V_sackXdivX_byXconstantX4_0XX_sack", new List, ITraversal>> {(g,p) =>g.WithSack(2).V().Sack(Operator.Div).By(__.Constant(4.0d)).Sack()}}, + {"g_V_sackXassignX_byXageX_byXnameX_sack", new List, ITraversal>> {(g,p) =>g.V().Sack(Operator.Assign).By("age").By("name").Sack()}}, + {"g_V_sideEffectXidentityX", new List, ITraversal>> {(g,p) =>g.V().SideEffect(__.Identity())}}, + {"g_V_sideEffectXidentity_valuesXnameXX", new List, ITraversal>> {(g,p) =>g.V().SideEffect(__.Identity().Values("name"))}}, + {"g_V_sideEffectXpropertyXsingle_age_22X", new List, ITraversal>> {(g,p) =>g.AddV((string) "person").Property(Cardinality.Single, "age", 21), (g,p) =>g.V().SideEffect(__.Property(Cardinality.Single, "age", 22)), (g,p) =>g.V().Has("age", 21), (g,p) =>g.V().Has("age", 22)}}, + {"g_V_group_byXvaluesXnameX_sideEffectXconstantXzyxXX_substringX1XX_byXconstantX1X_sideEffectXconstantXxyzXXX", new List, ITraversal>> {(g,p) =>g.V().Group().By(__.Values("name").SideEffect(__.Constant("zyx")).Substring(0, 1)).By(__.Constant(1).SideEffect(__.Constant("xyz")))}}, + {"g_withSideEffectXx_setX_V_both_both_sideEffectXlocalXaggregateXxX_byXnameXX_capXxX_unfold", new List, ITraversal>> {(g,p) =>g.WithSideEffect("x", new HashSet { }).V().Both().Both().SideEffect(__.Local(__.Aggregate("x").By("name"))).Cap("x").Unfold()}}, + {"g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX", new List, ITraversal>> {(g,p) =>g.V().Has("age").GroupCount("a").By("name").Out().Cap("a")}}, + {"g_V_groupXaX_byXageX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By("age").Cap("a")}}, + {"g_V_groupXaX_byXnameX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By("name").Cap("a")}}, + {"g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX", new List, ITraversal>> {(g,p) =>g.V().Has("lang").Group("a").By("lang").By("name").Out().Cap("a")}}, + {"g_V_repeatXout_groupXaX_byXnameX_byXcountX_timesX2X_capXaX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Out().Group("a").By("name").By(__.Count())).Times(2).Cap("a")}}, + {"g_V_groupXaX_byXlabelX_byXoutE_weight_sumX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By(T.Label).By(__.OutE().Values("weight").Sum()).Cap("a")}}, + {"g_V_repeatXbothXfollowedByXX_timesX2X_groupXaX_byXsongTypeX_byXcountX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.Both("followedBy")).Times(2).Group("a").By("songType").By(__.Count()).Cap("a")}}, + {"g_V_groupXaX_byXvaluesXnameX_substringX1XX_byXconstantX1XX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By(__.Values("name").Substring(0, 1)).By(__.Constant(1)).Cap("a")}}, + {"g_V_hasLabelXsongX_groupXaX_byXnameX_byXproperties_groupCount_byXlabelXX_out_capXaX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("song").Group("a").By("name").By(__.Properties().GroupCount().By(T.Label)).Out().Cap("a")}}, + {"g_V_hasLabelXpersonX_asXpX_outXcreatedX_groupXaX_byXnameX_byXselectXpX_valuesXageX_sumX_capXaX", new List, ITraversal>> {(g,p) =>g.V().HasLabel("person").As("p").Out("created").Group("a").By("name").By(__.Select("p").Values("age").Sum()).Cap("a")}}, + {"g_V_groupXmX_byXnameX_byXinXknowsX_nameX_capXmX", new List, ITraversal>> {(g,p) =>g.V().Group("m").By("name").By(__.In("knows").Values("name")).Cap("m")}}, + {"g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX", new List, ITraversal>> {(g,p) =>g.V().Group("m").By(__.Label()).By(__.Label().Count()).Cap("m")}}, + {"g_V_chooseXlabel_person__age_groupCountXaX__name_groupCountXbXX_capXa_bX_unfold", new List, ITraversal>> {(g,p) =>g.V().Choose(__.Has(T.Label, "person"), __.Values("age").GroupCount("a"), __.Values("name").GroupCount("b")).Cap("a", "b").Unfold()}}, + {"g_V_hasXperson_name_withinXvadas_peterXX_groupXaX_by_byXout_orderX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", P.Within("vadas", "peter")).Group("a").By().By(__.Out().Order()).Cap("a")}}, + {"g_V_hasXperson_name_withinXvadas_peterXX_groupXaX_by_byXout_order_countX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", P.Within("vadas", "peter")).Group("a").By().By(__.Out().Order().Count()).Cap("a")}}, + {"g_V_hasXperson_name_withinXvadas_peterXX_groupXaX_by_byXout_order_fold_countXlocalXX_capXaX", new List, ITraversal>> {(g,p) =>g.V().Has("person", "name", P.Within("vadas", "peter")).Group("a").By().By(__.Out().Order().Fold().Count(Scope.Local)).Cap("a")}}, + {"g_V_groupXaX_by_byXout_label_foldX_capXaX_selectXvaluesX_unfold_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By().By(__.Out().Label().Fold()).Cap("a").Select(Column.Values).Unfold().Order(Scope.Local)}}, + {"g_V_groupXaX_by_byXout_label_dedup_foldX_capXaX_selectXvaluesX_unfold_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By().By(__.Out().Label().Dedup().Fold()).Cap("a").Select(Column.Values).Unfold().Order(Scope.Local)}}, + {"g_V_groupXaX_by_byXout_label_limitX0X_foldX_capXaX_selectXvaluesX_unfold", new List, ITraversal>> {(g,p) =>g.V().Group("a").By().By(__.Out().Label().Limit(0).Fold()).Cap("a").Select(Column.Values).Unfold()}}, + {"g_V_groupXaX_by_byXout_label_limitX10X_foldX_capXaX_selectXvaluesX_unfold_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By().By(__.Out().Label().Limit(10).Fold()).Cap("a").Select(Column.Values).Unfold().Order(Scope.Local)}}, + {"g_V_groupXaX_by_byXout_label_tailX10X_foldX_capXaX_selectXvaluesX_unfold_orderXlocalX", new List, ITraversal>> {(g,p) =>g.V().Group("a").By().By(__.Out().Label().Tail(10).Fold()).Cap("a").Select(Column.Values).Unfold().Order(Scope.Local)}}, + {"g_VX1X_outEXknowsX_subgraphXsgX_name_capXsgX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE("knows").Subgraph("sg").Values("name").Cap("sg")}}, + {"g_V_repeatXbothEXcreatedX_subgraphXsgX_outVX_timesX5X_name_dedup_capXsgX", new List, ITraversal>> {(g,p) =>g.V().Repeat(__.BothE("created").Subgraph("sg").OutV()).Times(5).Values("name").Dedup().Cap("sg")}}, + {"g_V_outEXnoexistX_subgraphXsgXcapXsgX", new List, ITraversal>> {(g,p) =>g.V().OutE("noexist").Subgraph("sg").Cap("sg")}}, + {"g_E_hasXweight_0_5X_subgraphXaX_selectXaX", new List, ITraversal>> {(g,p) =>g.E().Has("weight", 0.4).Subgraph("a").Select("a")}}, + {"g_VX1X_out_out_tree_byXnameX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Out().Tree().By("name")}}, + {"g_VX1X_out_out_tree", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Out().Tree()}}, + {"g_V_out_tree_byXageX", new List, ITraversal>> {(g,p) =>g.V().Out().Tree().By("age")}}, + {"g_VX1X_out_out_treeXaX_byXnameX_both_both_capXaX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Out().Tree("a").By("name").Both().Both().Cap("a")}}, + {"g_VX1X_out_out_treeXaX_both_both_capXaX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Out().Tree("a").Both().Both().Cap("a")}}, + {"g_VX1X_out_out_tree_byXlabelX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Out().Tree().By(T.Label)}}, + {"g_VX1X_out_out_treeXaX_byXlabelX_both_both_capXaX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Out().Tree("a").By(T.Label).Both().Both().Cap("a")}}, + {"g_VX1X_out_out_out_tree", new List, ITraversal>> {(g,p) =>g.V().Out().Out().Out().Tree()}}, + {"g_VX1X_outE_inV_bothE_otherV_tree", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().InV().BothE().OtherV().Tree()}}, + {"g_VX1X_outE_inV_bothE_otherV_tree_byXnameX_byXlabelX", new List, ITraversal>> {(g,p) =>g.V(p["vid1"]).OutE().InV().BothE().OtherV().Tree().By("name").By(T.Label)}}, + {"g_V_out_treeXaX_selectXaX_countXlocalX", new List, ITraversal>> {(g,p) =>g.V().Out().Tree("a").Select("a").Count(Scope.Local)}}, + {"g_V_out_order_byXnameX_localXtreeXaX_selectXaX_countXlocalXX", new List, ITraversal>> {(g,p) =>g.V().Out().Local(__.Tree("a").Select("a").Count(Scope.Local))}}, + {"g_io_writeXkryoX", new List, ITraversal>> {(g,p) =>g.Io("tinkerpop-modern-v3.kryo").Write()}}, + {"g_io_write_withXwriter_gryoX", new List, ITraversal>> {(g,p) =>g.Io("tinkerpop-modern-v3.kryo").With(IO.Writer, IO.Gryo).Write()}}, + {"g_io_writeXgraphsonX", new List, ITraversal>> {(g,p) =>g.Io("tinkerpop-modern-v3.json").Write()}}, + {"g_io_write_withXwriter_graphsonX", new List, ITraversal>> {(g,p) =>g.Io("tinkerpop-modern-v3.json").With(IO.Writer, IO.GraphSON).Write()}}, + {"g_io_writeXgraphmlX", new List, ITraversal>> {(g,p) =>g.Io("tinkerpop-modern.xml").Write()}}, + {"g_io_write_withXwriter_graphmlX", new List, ITraversal>> {(g,p) =>g.Io("tinkerpop-modern.xml").With(IO.Writer, IO.GraphML).Write()}}, + }; + + public static ITraversal UseTraversal(string scenarioName, GraphTraversalSource g, IDictionary parameters, IDictionary sideEffects) + { + List, ITraversal>> list = _translationsForTestRun[scenarioName]; + Func, ITraversal> f = list[0]; + list.RemoveAt(0); + ITraversal traversal = f.Invoke(g, parameters); + // Side effects need to be prepended as source steps (before traversal steps). + // Build them in a temporary GremlinLang and prepend to the traversal's gremlin string. + if (sideEffects.Count > 0) + { + var sideEffectLang = new GremlinLang(); + foreach (var sideEffect in sideEffects) + { + sideEffectLang.AddSource("withSideEffect", sideEffect.Key, sideEffect.Value); + } + traversal.GremlinLang.Gremlin = sideEffectLang.Gremlin + traversal.GremlinLang.Gremlin; + } + return traversal; + } + + public static ITraversal UseParameterizedTraversal(string scenarioName, GraphTraversalSource g, IDictionary parameters, IDictionary sideEffects) + { + List, ITraversal>> list = _parameterizedTranslationsForTestRun[scenarioName]; + Func, ITraversal> f = list[0]; + list.RemoveAt(0); + ITraversal traversal = f.Invoke(g, parameters); if (sideEffects.Count > 0) { var sideEffectLang = new GremlinLang(); diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/GremlinLangGeneration/GremlinLangGenerationTests.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/GremlinLangGeneration/GremlinLangGenerationTests.cs index e1c01a9ef29..7107f33ef42 100644 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/GremlinLangGeneration/GremlinLangGenerationTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/GremlinLangGeneration/GremlinLangGenerationTests.cs @@ -88,7 +88,7 @@ public void AnonymousTraversal_VXnullX() [Fact] public void AnonymousTraversal_OutXnullX() { - Assert.Throws(() => __.Out(null!)); + Assert.Throws(() => __.Out((string?[])null!)); } } } diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Process/Traversal/GremlinLangTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Process/Traversal/GremlinLangTests.cs index b4eeade1680..66a62455ac7 100644 --- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Process/Traversal/GremlinLangTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Process/Traversal/GremlinLangTests.cs @@ -953,27 +953,36 @@ public void GValue_null_name_throws_ArgumentNullException() } [Fact] - public void GValue_special_char_name_throws_ArgumentException() + public void GValue_special_char_name_accepted() { - Assert.Throws(() => new GValue("\"", 1)); + var gval = new GValue("\"", 1); + Assert.Equal("\"", gval.Name); } [Fact] - public void GValue_numeric_name_throws_ArgumentException() + public void GValue_numeric_name_accepted() { - Assert.Throws(() => new GValue("1", 1)); + var gval = new GValue("1", 1); + Assert.Equal("1", gval.Name); } [Fact] - public void GValue_invalid_identifier_name_throws_ArgumentException() + public void GValue_digit_start_name_accepted() { - Assert.Throws(() => new GValue("1a", 1)); + var gval = new GValue("1a", 1); + Assert.Equal("1a", gval.Name); } [Fact] - public void GValue_underscore_name_throws_ArgumentException() + public void GValue_underscore_name_accepted() { - Assert.Throws(() => new GValue("_1", 1)); + Assert.Equal("_1", new GValue("_1", 1).Name); + } + + [Fact] + public void GValue_nested_throws_ArgumentException() + { + Assert.Throws(() => new GValue("x", new GValue("y", 1))); } [Fact] @@ -993,6 +1002,83 @@ public void GValue_reuse_same_instance() Assert.True(result.Parameters.ContainsKey("ids")); } + [Fact] + public void GValue_mid_underscore_name_accepted() + { + var gval = new GValue("a_b", 42); + var result = _g.Inject((object)gval).GremlinLang; + Assert.Equal("g.inject(a_b)", result.GetGremlin()); + } + + [Fact] + public void GValue_empty_name_accepted() + { + var gval = new GValue("", 1); + Assert.Equal("", gval.Name); + } + + [Fact] + public void GValue_mid_dollar_name_accepted() + { + var gval = new GValue("a$b", 1); + Assert.Equal("a$b", gval.Name); + } + + [Fact] + public void GValue_unicode_letter_name_accepted() + { + var gval = new GValue("caf\u00e9", 7); + var result = _g.Inject((object)gval).GremlinLang; + Assert.Equal("g.inject(caf\u00e9)", result.GetGremlin()); + } + + [Fact] + public void GValue_construction_and_accessors() + { + var gval = new GValue("myName", "hello"); + Assert.Equal("myName", gval.Name); + Assert.Equal("hello", gval.Value); + Assert.Equal("hello", gval.ObjectValue); + } + + [Fact] + public void GValue_IsNull_true_when_null_value() + { + var gval = new GValue("x", null); + Assert.True(gval.IsNull); + } + + [Fact] + public void GValue_IsNull_false_when_non_null_value() + { + var gval = new GValue("x", 5); + Assert.False(gval.IsNull); + } + + [Fact] + public void GValue_ToString_format() + { + var gval = new GValue("myVar", 42); + Assert.Equal("myVar=42", gval.ToString()); + } + + [Fact] + public void GValue_duplicate_name_equal_list_values_allowed() + { + var gval1 = new GValue>("ids", new List { 1, 2, 3 }); + var gval2 = new GValue>("ids", new List { 1, 2, 3 }); + var result = _g.Inject((object)gval1).V(gval2).GremlinLang; + Assert.Equal("g.inject(ids).V(ids)", result.GetGremlin()); + } + + [Fact] + public void GValue_duplicate_name_different_list_values_throws() + { + var gval1 = new GValue>("ids", new List { 1, 2, 3 }); + var gval2 = new GValue>("ids", new List { 4, 5, 6 }); + Assert.Throws(() => _g.Inject((object)gval1).V(gval2)); + } + // --- Cardinality with Map Tests --- [Fact] @@ -1088,5 +1174,49 @@ public void ConvertParametersToString_escaped_string_value() var result = GremlinLang.ConvertParametersToString(parameters); Assert.Contains("\"name\":", result); } + + [Fact] + public void GValue_duplicate_name_equal_dictionary_values_allowed() + { + var gval1 = new GValue>("m", new Dictionary { { "a", 1 }, { "b", 2 } }); + var gval2 = new GValue>("m", new Dictionary { { "a", 1 }, { "b", 2 } }); + var result = _g.Inject((object)gval1).V(gval2).GremlinLang; + Assert.Equal("g.inject(m).V(m)", result.GetGremlin()); + } + + [Fact] + public void GValue_duplicate_name_equal_nested_collection_values_allowed() + { + var gval1 = new GValue>>("n", new List> { new List { 1, 2 }, new List { 3, 4 } }); + var gval2 = new GValue>>("n", new List> { new List { 1, 2 }, new List { 3, 4 } }); + var result = _g.Inject((object)gval1).V(gval2).GremlinLang; + Assert.Equal("g.inject(n).V(n)", result.GetGremlin()); + } + + [Fact] + public void GValue_underscore_start_name_accepted_in_traversal() + { + var gval = new GValue("_1", new[] { 1, 2, 3 }); + var result = _g.V(gval).GremlinLang; + Assert.Equal("g.V(_1)", result.GetGremlin()); + Assert.True(result.Parameters.ContainsKey("_1")); + } + + [Fact] + public void GValue_dollar_sign_name_accepted_in_traversal() + { + var gval = new GValue("a$b", 42); + var result = _g.Inject((object)gval).GremlinLang; + Assert.Equal("g.inject(a$b)", result.GetGremlin()); + Assert.True(result.Parameters.ContainsKey("a$b")); + } + + [Fact] + public void GValue_invalid_identifier_throws_in_traversal() + { + var gval = new GValue("1a", 1); + var ex = Assert.Throws(() => _g.V(gval).GremlinLang.GetGremlin()); + Assert.Contains("Invalid parameter name", ex.Message); + } } } diff --git a/gremlin-go/docker-compose.yml b/gremlin-go/docker-compose.yml index 5df15618269..1f32498cb6a 100644 --- a/gremlin-go/docker-compose.yml +++ b/gremlin-go/docker-compose.yml @@ -73,6 +73,7 @@ services: command: > bash -c "go install github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt@latest && go test -v -json ./... -race -covermode=atomic -coverprofile=\"coverage.out\" -coverpkg=./... | gotestfmt + && PARAMETERIZE=true go test -v ./driver/cucumber/... -run TestCucumberFeatures && echo 'Running examples...' && go run examples/basic_gremlin.go && go run examples/connections.go diff --git a/gremlin-go/driver/cucumber/cucumberSteps_test.go b/gremlin-go/driver/cucumber/cucumberSteps_test.go index 495d56fd408..35d1468874c 100644 --- a/gremlin-go/driver/cucumber/cucumberSteps_test.go +++ b/gremlin-go/driver/cucumber/cucumberSteps_test.go @@ -46,6 +46,7 @@ type tinkerPopGraph struct { } var parsers map[*regexp.Regexp]func(string, string) interface{} +var parameterize = getEnvOrDefaultBool("PARAMETERIZE", false) func init() { parsers = map[*regexp.Regexp]func(string, string) interface{}{ @@ -998,7 +999,12 @@ func (tg *tinkerPopGraph) usingTheParameterDefined(name string, params string) e if tg.graphName == "empty" { tg.reloadEmptyData() } - tg.parameters[name] = parseValue(strings.Replace(params, "\\\"", "\"", -1), tg.graphName) + val := parseValue(strings.Replace(params, "\\\"", "\"", -1), tg.graphName) + if parameterize { + tg.parameters[name] = gremlingo.GValue{Name: name, Value: val} + } else { + tg.parameters[name] = val + } return nil } diff --git a/gremlin-go/driver/gValue.go b/gremlin-go/driver/gValue.go index f69ec2599c8..3fece49b1fa 100644 --- a/gremlin-go/driver/gValue.go +++ b/gremlin-go/driver/gValue.go @@ -21,35 +21,23 @@ package gremlingo import ( "fmt" - "strings" ) -// GValue is a variable or literal value that is used in a Traversal. It is composed of a key-value pair where the key -// is the name given to the variable and the value is the object that the variable resolved to. +// GValue is a variable or literal value that is used in a Traversal. It is composed of a key-value +// pair where Name is the name given to the variable and Value is the object that the variable +// resolves to. Construct one directly with a struct literal, e.g. GValue{Name: "x", Value: 1}. +// A GValue's Value must not itself be a GValue (GValues cannot be nested). type GValue struct { - name string - value interface{} -} - -// NewGValue creates a new GValue to be used in traversals. The GValue name cannot begin with "_". -func NewGValue(name string, value interface{}) GValue { - if strings.HasPrefix(name, "_") { - panic(fmt.Sprintf("invalid GValue name '%v'. Should not start with _.", name)) - } - return GValue{name, value} -} - -// Name returns the name of the GValue. -func (gv GValue) Name() string { - return gv.name + Name string + Value interface{} } // IsNil determines if the value held is of a nil value. func (gv GValue) IsNil() bool { - return gv.value == nil + return gv.Value == nil } -// Value returns the value held by the GValue. -func (gv GValue) Value() interface{} { - return gv.value +// String returns the string representation of the GValue in the format "name=value". +func (gv GValue) String() string { + return fmt.Sprintf("%v=%v", gv.Name, gv.Value) } diff --git a/gremlin-go/driver/gValue_test.go b/gremlin-go/driver/gValue_test.go index 45b365262f2..bd53b0beaba 100644 --- a/gremlin-go/driver/gValue_test.go +++ b/gremlin-go/driver/gValue_test.go @@ -27,16 +27,16 @@ import ( func TestGValue(t *testing.T) { t.Run("test simple gValue", func(t *testing.T) { - gVal := NewGValue("intVal", 2) - assert.Equal(t, "intVal", gVal.Name()) - assert.Equal(t, 2, gVal.Value()) + gVal := GValue{Name: "intVal", Value: 2} + assert.Equal(t, "intVal", gVal.Name) + assert.Equal(t, 2, gVal.Value) assert.False(t, gVal.IsNil()) }) t.Run("test gValue allow parameter reuse with arrays", func(t *testing.T) { g := NewGraphTraversalSource(nil, nil) val := [3]int{1, 2, 3} - param := NewGValue("ids", val) + param := GValue{Name: "ids", Value: val} gl := g.Inject(param).V(param).GremlinLang assert.Equal(t, "g.inject(ids).V(ids)", gl.GetGremlin()) assert.Equal(t, val, gl.parameters["ids"]) @@ -45,7 +45,7 @@ func TestGValue(t *testing.T) { t.Run("test gValue allow parameter reuse with slices", func(t *testing.T) { g := NewGraphTraversalSource(nil, nil) val := []int{1, 2, 3} - param := NewGValue("ids", val) + param := GValue{Name: "ids", Value: val} gl := g.Inject(param).V(param).GremlinLang assert.Equal(t, "g.inject(ids).V(ids)", gl.GetGremlin()) assert.Equal(t, val, gl.parameters["ids"]) @@ -54,7 +54,7 @@ func TestGValue(t *testing.T) { t.Run("test gValue allow parameter reuse with maps", func(t *testing.T) { g := NewGraphTraversalSource(nil, nil) val := map[string]int{"foo": 1, "bar": 2} - param := NewGValue("ids", val) + param := GValue{Name: "ids", Value: val} gl := g.Inject(param).V(param).GremlinLang assert.Equal(t, "g.inject(ids).V(ids)", gl.GetGremlin()) assert.Equal(t, val, gl.parameters["ids"]) @@ -62,26 +62,57 @@ func TestGValue(t *testing.T) { t.Run("test gValue name not duplicated", func(t *testing.T) { g := NewGraphTraversalSource(nil, nil) - param1 := NewGValue("ids", [2]int{1, 2}) - param2 := NewGValue("ids", [2]int{2, 3}) + param1 := GValue{Name: "ids", Value: [2]int{1, 2}} + param2 := GValue{Name: "ids", Value: [2]int{2, 3}} assert.Panics(t, func() { g.Inject(param1).V(param2) }, "parameter with name ids already exists.") }) - t.Run("test invalid name that starts with _", func(t *testing.T) { + t.Run("test IsNil returns true for nil value", func(t *testing.T) { + gv := GValue{Name: "x", Value: nil} + assert.True(t, gv.IsNil()) + }) + + t.Run("test String representation", func(t *testing.T) { + gv := GValue{Name: "x", Value: 1} + assert.Equal(t, "x=1", gv.String()) + }) + + t.Run("test distinct but equal slices allowed under same name", func(t *testing.T) { + g := NewGraphTraversalSource(nil, nil) + param1 := GValue{Name: "ids", Value: []int{1, 2, 3}} + param2 := GValue{Name: "ids", Value: []int{1, 2, 3}} + assert.NotPanics(t, func() { g.Inject(param1).V(param2) }) + }) + + t.Run("test gValue nested in child traversal merges bindings", func(t *testing.T) { + g := NewGraphTraversalSource(nil, nil) + gl := g.V().Where(T__.Is(GValue{Name: "xx1", Value: 1})).GremlinLang + assert.Equal(t, "g.V().where(__.is(xx1))", gl.GetGremlin()) + assert.Equal(t, 1, gl.parameters["xx1"]) + }) + + t.Run("test gValue nested across multiple child traversals merges bindings", func(t *testing.T) { + g := NewGraphTraversalSource(nil, nil) + gl := g.V().Union(T__.V(GValue{Name: "vid1", Value: 1}), T__.V(GValue{Name: "vid4", Value: 4})).GremlinLang + assert.Equal(t, "g.V().union(__.V(vid1),__.V(vid4))", gl.GetGremlin()) + assert.Equal(t, 1, gl.parameters["vid1"]) + assert.Equal(t, 4, gl.parameters["vid4"]) + }) + + t.Run("test gValue underscore name works", func(t *testing.T) { g := NewGraphTraversalSource(nil, nil) - assert.Panics(t, func() { g.Inject(NewGValue("_ids", [2]int{1, 2})) }, - "invalid GValue name _1. Should not start with _.") + gl := g.V(GValue{Name: "_1", Value: []int{1, 2, 3}}).GremlinLang + assert.Equal(t, "g.V(_1)", gl.GetGremlin()) }) - t.Run("test name is valid identifier", func(t *testing.T) { + t.Run("test gValue dollar sign name works", func(t *testing.T) { g := NewGraphTraversalSource(nil, nil) - assert.Panics(t, func() { g.Inject(NewGValue("1a", [2]int{1, 2})) }, - "invalid parameter name '1a'") + gl := g.V(GValue{Name: "a$b", Value: 1}).GremlinLang + assert.Equal(t, "g.V(a$b)", gl.GetGremlin()) }) - t.Run("test name is not a number", func(t *testing.T) { + t.Run("test gValue invalid identifier panics", func(t *testing.T) { g := NewGraphTraversalSource(nil, nil) - assert.Panics(t, func() { g.Inject(NewGValue("1", [2]int{1, 2})) }, - "invalid parameter name '1'") + assert.Panics(t, func() { g.V(GValue{Name: "1a", Value: 1}) }) }) } diff --git a/gremlin-go/driver/gremlinlang.go b/gremlin-go/driver/gremlinlang.go index 2625cb10e6b..abe2675c704 100644 --- a/gremlin-go/driver/gremlinlang.go +++ b/gremlin-go/driver/gremlinlang.go @@ -22,13 +22,13 @@ package gremlingo import ( "encoding/base64" "fmt" - "go/token" "math" "math/big" "reflect" "strconv" "strings" "time" + "unicode" "github.com/google/uuid" ) @@ -132,6 +132,22 @@ func escapeString(s string) string { } +func isValidParameterName(name string) bool { + runes := []rune(name) + if len(runes) == 0 { + return false + } + if !unicode.IsLetter(runes[0]) && runes[0] != '_' && runes[0] != '$' { + return false + } + for _, r := range runes[1:] { + if !unicode.IsLetter(r) && !unicode.IsDigit(r) && r != '_' && r != '$' { + return false + } + } + return true +} + func (gl *GremlinLang) argAsString(arg interface{}) (string, error) { if arg == nil { return "null", nil @@ -245,22 +261,17 @@ func (gl *GremlinLang) argAsString(arg interface{}) (string, error) { } return v.GetGremlin("__"), nil case GValue: - key := v.Name() - if !token.IsIdentifier(key) { - panic(fmt.Sprintf("invalid parameter name '%v'.", key)) + key := v.Name + if !isValidParameterName(key) { + panic(fmt.Sprintf("invalid parameter name [%v]", key)) } - value := v.Value() + value := v.Value if val, ok := gl.parameters[key]; ok { - if reflect.TypeOf(val).Kind() == reflect.Slice || reflect.TypeOf(value).Kind() == reflect.Slice || - reflect.TypeOf(val).Kind() == reflect.Map || reflect.TypeOf(value).Kind() == reflect.Map { - if !reflect.DeepEqual(val, value) { - panic(fmt.Sprintf("parameter with name '%v' already exists.", key)) - } - } else if val != value { + if !reflect.DeepEqual(val, value) { panic(fmt.Sprintf("parameter with name '%v' already exists.", key)) } } else { - gl.parameters[key] = v.Value() + gl.parameters[key] = v.Value } return key, nil case uuid.UUID: diff --git a/gremlin-js/gremlin-javascript/lib/index.ts b/gremlin-js/gremlin-javascript/lib/index.ts index f79c31e948b..b7fa87ea8e3 100644 --- a/gremlin-js/gremlin-javascript/lib/index.ts +++ b/gremlin-js/gremlin-javascript/lib/index.ts @@ -27,6 +27,7 @@ import * as strategiesModule from './process/traversal-strategy.js'; import * as graph from './structure/graph.js'; import * as rc from './driver/remote-connection.js'; import GremlinLang from './process/gremlin-lang.js'; +import { GValue } from './process/gvalue.js'; import * as utils from './utils.js'; import DriverRemoteConnection from './driver/driver-remote-connection.js'; import ResponseError from './driver/response-error.js'; @@ -74,6 +75,7 @@ export const process = { GraphTraversalSource: gt.GraphTraversalSource, statics: gt.statics, GremlinLang, + GValue, traversal: AnonymousTraversalSource.traversal, AnonymousTraversalSource, withOptions: t.withOptions, diff --git a/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts b/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts index 2a07ad8dec4..af9c00e6d7c 100644 --- a/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts +++ b/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts @@ -21,8 +21,12 @@ import { P, TextP, EnumValue } from './traversal.js'; import { OptionsStrategy, TraversalStrategy } from './traversal-strategy.js'; import { Long, Int, Float, Double, Short, Byte, INT32_MIN, INT32_MAX } from '../utils.js'; import { Vertex } from '../structure/graph.js'; +import { GValue } from './gvalue.js'; +import { isDeepStrictEqual } from 'node:util'; import { Buffer } from 'buffer'; +const PARAM_NAME_PATTERN = /^[\p{L}_$][\p{L}\p{Nd}_$]*$/u; + export default class GremlinLang { private gremlin: string = ''; private optionsStrategies: OptionsStrategy[] = []; @@ -110,6 +114,20 @@ export default class GremlinLang { const escaped = JSON.stringify(arg).slice(1, -1).replace(/'/g, "\\'"); return `'${escaped}'`; } + if (arg instanceof GValue) { + const key = arg.name; + if (!PARAM_NAME_PATTERN.test(key)) { + throw new Error(`Invalid parameter name [${key}].`); + } + if (this.parameters.has(key)) { + if (!isDeepStrictEqual(this.parameters.get(key), arg.value)) { + throw new Error(`Parameter with name ${key} already exists.`); + } + } else { + this.parameters.set(key, arg.value); + } + return key; + } if (arg instanceof P || arg instanceof TextP) { return this._predicateAsString(arg); } @@ -132,6 +150,9 @@ export default class GremlinLang { return this._argAsString(arg.id); } if (arg instanceof GremlinLang) { + // Merge the child's parameters so GValue bindings nested inside a child + // traversal are still sent to the server alongside the rendered query. + arg.parameters.forEach((v, k) => this.parameters.set(k, v)); return arg.getGremlin('__'); } if (typeof arg.getGremlinLang === 'function') { @@ -139,7 +160,11 @@ export default class GremlinLang { if (arg.graph != null) { throw new Error('Child traversal must be anonymous - use __ not g'); } - return arg.getGremlinLang().getGremlin('__'); + const childLang = arg.getGremlinLang(); + // Merge the child's parameters so GValue bindings nested inside a child + // traversal are still sent to the server alongside the rendered query. + childLang.parameters.forEach((v: any, k: string) => this.parameters.set(k, v)); + return childLang.getGremlin('__'); } if (arg instanceof Uint8Array) { return `Binary("${Buffer.from(arg.buffer, arg.byteOffset, arg.byteLength).toString('base64')}")`; diff --git a/gremlin-js/gremlin-javascript/lib/process/gvalue.ts b/gremlin-js/gremlin-javascript/lib/process/gvalue.ts new file mode 100644 index 00000000000..b7e9041c3fa --- /dev/null +++ b/gremlin-js/gremlin-javascript/lib/process/gvalue.ts @@ -0,0 +1,42 @@ +/* + * 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. + */ + +export class GValue { + readonly name: string; + readonly value: T; + + constructor(name: string, value: T) { + if (value instanceof GValue) { + throw new Error('GValues cannot be nested'); + } + if (name == null) { + throw new Error('GValue name cannot be null.'); + } + this.name = name; + this.value = value; + } + + isNull(): boolean { + return this.value == null; + } + + toString(): string { + return `${this.name}=${this.value}`; + } +} diff --git a/gremlin-js/gremlin-javascript/package.json b/gremlin-js/gremlin-javascript/package.json index 5ec1746c926..6de05ae6831 100644 --- a/gremlin-js/gremlin-javascript/package.json +++ b/gremlin-js/gremlin-javascript/package.json @@ -91,10 +91,12 @@ "integration-test": "npm run integration-test-graphbinary", "integration-test-graphbinary": "cross-env TS_NODE_PROJECT='tsconfig.test.json' CLIENT_MIMETYPE='application/vnd.graphbinary-v4.0' mocha test/integration -t 5000", "TODO": "# test other mime types like graphbinary stringd", - "features": "npm run features-graphbinary", + "features": "npm run features-graphbinary && npm run features-graphbinary-params", "features-graphbinary": "cross-env NODE_OPTIONS='--loader ts-node/esm' TS_NODE_PROJECT='tsconfig.test.json' CLIENT_MIMETYPE='application/vnd.graphbinary-v4.0' cucumber-js --tags \"not @DataBigDecimal and not @DataBigInt and not @DataUUID and not @DataLong and not @StepWrite\" --import test/cucumber ../../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/", - "features-docker": "npm run features-graphbinary-docker", - "features-graphbinary-docker": "cross-env NODE_OPTIONS='--loader ts-node/esm' TS_NODE_PROJECT='tsconfig.test.json' CLIENT_MIMETYPE='application/vnd.graphbinary-v4.0' cucumber-js --tags \"not @DataBigDecimal and not @DataBigInt and not @DataUUID and not @DataLong and not @StepWrite\" --import test/cucumber ../gremlin-test/", + "features-graphbinary-params": "cross-env NODE_OPTIONS='--loader ts-node/esm' TS_NODE_PROJECT='tsconfig.test.json' CLIENT_MIMETYPE='application/vnd.graphbinary-v4.0' PARAMETERIZE=true cucumber-js --tags \"not @DataBigDecimal and not @DataBigInt and not @DataUUID and not @DataLong and not @StepWrite\" --import test/cucumber ../../gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/", + "features-docker": "npm run features-graphbinary-docker && npm run features-graphbinary-params-docker", + "features-graphbinary-docker": "cross-env NODE_OPTIONS='--loader ts-node/esm' TS_NODE_PROJECT='tsconfig.test.json' CLIENT_MIMETYPE='application/vnd.graphbinary-v4.0' cucumber-js --tags \"not @DataBigDecimal and not @DataBigInt and not @DataUUID and not @DataLong and not @StepWrite\" --import test/cucumber /gremlin-test/", + "features-graphbinary-params-docker": "cross-env NODE_OPTIONS='--loader ts-node/esm' TS_NODE_PROJECT='tsconfig.test.json' CLIENT_MIMETYPE='application/vnd.graphbinary-v4.0' PARAMETERIZE=true cucumber-js --tags \"not @DataBigDecimal and not @DataBigInt and not @DataUUID and not @DataLong and not @StepWrite\" --import test/cucumber /gremlin-test/", "lint": "eslint --ext .js .", "doc": "typedoc --out doc --readme README.md --entryPointStrategy expand --entryPoints 'lib/**/*.ts' --tsconfig tsconfig.json --exclude 'lib/language/grammar/**'" }, diff --git a/gremlin-js/gremlin-javascript/test/cucumber/feature-steps.js b/gremlin-js/gremlin-javascript/test/cucumber/feature-steps.js index bb956a2538d..7982d31c3dd 100644 --- a/gremlin-js/gremlin-javascript/test/cucumber/feature-steps.js +++ b/gremlin-js/gremlin-javascript/test/cucumber/feature-steps.js @@ -33,8 +33,10 @@ import { Path, Vertex, Edge, Property, Graph } from '../../lib/structure/graph.j import { statics } from '../../lib/process/graph-traversal.js'; import { t, P, direction, merge, barrier, cardinality, column, order, TextP, IO, pick, pop, scope, operator, withOptions } from '../../lib/process/traversal.js'; import { toLong } from '../../lib/utils.js'; +import { GValue } from '../../lib/process/gvalue.js'; import anon from '../../lib/process/anonymous-traversal.js'; const __ = statics; +const parameterize = process.env.PARAMETERIZE === 'true'; import { deepMembersById } from './element-comparison.js'; import { Buffer } from 'buffer'; import GremlinLang from "../../lib/process/gremlin-lang.js"; @@ -135,6 +137,11 @@ Given('an unsupported test', () => {}); Given('the traversal of', function (traversalText) { const p = Object.assign({}, this.parameters); + if (parameterize) { + for (const k of Object.keys(p)) { + p[k] = new GValue(k, p[k]); + } + } p.g = this.g; this.traversal = gremlin[this.scenario].shift()(p); const sideEffectLang = new GremlinLang(); diff --git a/gremlin-js/gremlin-javascript/test/unit/exports-test.js b/gremlin-js/gremlin-javascript/test/unit/exports-test.js index f009c7074d6..24cdb3d7f14 100644 --- a/gremlin-js/gremlin-javascript/test/unit/exports-test.js +++ b/gremlin-js/gremlin-javascript/test/unit/exports-test.js @@ -29,6 +29,7 @@ describe('API', function () { assert.ok(glvModule); assert.ok(glvModule.process); assert.strictEqual(typeof glvModule.process.GremlinLang, 'function'); + assert.strictEqual(typeof glvModule.process.GValue, 'function'); assert.strictEqual(typeof glvModule.process.EnumValue, 'function'); assert.strictEqual(typeof glvModule.process.P, 'function'); assert.strictEqual(typeof glvModule.process.Traversal, 'function'); diff --git a/gremlin-js/gremlin-javascript/test/unit/gremlin-lang-test.js b/gremlin-js/gremlin-javascript/test/unit/gremlin-lang-test.js index a8c4e9add02..1d2c9eb9a95 100644 --- a/gremlin-js/gremlin-javascript/test/unit/gremlin-lang-test.js +++ b/gremlin-js/gremlin-javascript/test/unit/gremlin-lang-test.js @@ -29,6 +29,7 @@ import { Graph, Vertex } from '../../lib/structure/graph.js'; import { TraversalStrategies } from '../../lib/process/traversal-strategy.js'; import { Long, toFloat, toDouble, toShort, toByte, toInt, toLong } from '../../lib/utils.js'; import GremlinLang from '../../lib/process/gremlin-lang.js'; +import { GValue } from '../../lib/process/gvalue.js'; const g = new GraphTraversalSource(new Graph(), new TraversalStrategies()); @@ -626,4 +627,110 @@ describe('GremlinLang', function () { assert.ok(result.includes("'name':'marko'")); }); }); -}); \ No newline at end of file + + describe('GValue', function () { + it('should construct with name and value accessors', function () { + const gv = new GValue('myName', 42); + assert.strictEqual(gv.name, 'myName'); + assert.strictEqual(gv.value, 42); + }); + + it('should return true for isNull() with null value', function () { + assert.strictEqual(new GValue('x', null).isNull(), true); + }); + + it('should return true for isNull() with undefined value', function () { + assert.strictEqual(new GValue('x', undefined).isNull(), true); + }); + + it('should return false for isNull() with non-null value', function () { + assert.strictEqual(new GValue('x', 0).isNull(), false); + }); + + it('should accept name starting with underscore', function () { + const gv = new GValue('_x', 1); + assert.strictEqual(gv.name, '_x'); + }); + + it('should accept name with $ character', function () { + const gv = new GValue('$x', 1); + assert.strictEqual(gv.name, '$x'); + }); + + it('should accept name with mid-string underscore', function () { + const gv = new GValue('a_b', 1); + assert.strictEqual(gv.name, 'a_b'); + }); + + it('should accept Unicode letter name', function () { + const gv = new GValue('café', 1); + assert.strictEqual(gv.name, 'café'); + }); + + it('should accept language keyword as name', function () { + const gv = new GValue('for', 1); + assert.strictEqual(gv.name, 'for'); + }); + + it('should reject nested GValue', function () { + assert.throws(() => new GValue('x', new GValue('y', 1)), /GValues cannot be nested/); + }); + + it('should return name=value from toString()', function () { + const gv = new GValue('ids', 'hello'); + assert.strictEqual(gv.toString(), 'ids=hello'); + }); + + it('should render name in gremlin string and store value in parameters', function () { + const traversal = g.V(new GValue('ids', [1, 2, 3])); + const gl = traversal.getGremlinLang(); + assert.strictEqual(gl.getGremlin(), 'g.V(ids)'); + assert.deepStrictEqual(gl.getParameters().get('ids'), [1, 2, 3]); + }); + + it('should throw when duplicate name has different value', function () { + assert.throws(() => { + g.V(new GValue('x', 1)).has('name', new GValue('x', 2)); + }, /Parameter with name x already exists/); + }); + + it('should allow reuse of same name with equal value', function () { + const traversal = g.V(new GValue('ids', [1, 2, 3])).has('name', new GValue('ids', [1, 2, 3])); + const gl = traversal.getGremlinLang(); + assert.strictEqual(gl.getGremlin(), "g.V(ids).has('name',ids)"); + assert.deepStrictEqual(gl.getParameters().get('ids'), [1, 2, 3]); + }); + + it('should merge bindings from a GValue nested in a child traversal', function () { + const traversal = g.V().where(__.is(new GValue('xx1', 1))); + const gl = traversal.getGremlinLang(); + assert.strictEqual(gl.getGremlin(), 'g.V().where(__.is(xx1))'); + assert.deepStrictEqual(gl.getParameters().get('xx1'), 1); + }); + + it('should merge bindings from GValues nested across multiple child traversals', function () { + const traversal = g.union(__.V(new GValue('vid1', 1)), __.V(new GValue('vid4', 4))).values('name'); + const gl = traversal.getGremlinLang(); + assert.strictEqual(gl.getGremlin(), "g.union(__.V(vid1),__.V(vid4)).values('name')"); + assert.deepStrictEqual(gl.getParameters().get('vid1'), 1); + assert.deepStrictEqual(gl.getParameters().get('vid4'), 4); + }); + + it('should reject null name', function () { + assert.throws(() => new GValue(null, 'v'), /GValue name cannot be null/); + }); + + it('should validate name starting with underscore in traversal', function () { + const traversal = g.V(new GValue('_1', [1, 2, 3])); + const gl = traversal.getGremlinLang(); + assert.strictEqual(gl.getGremlin(), 'g.V(_1)'); + assert.deepStrictEqual(gl.getParameters().get('_1'), [1, 2, 3]); + }); + + it('should throw for invalid identifier name when used in traversal', function () { + assert.throws(() => { + g.V(new GValue('1a', 1)); + }, /Invalid parameter name/); + }); + }); +}); diff --git a/gremlin-python/src/main/python/gremlin_python/process/traversal.py b/gremlin-python/src/main/python/gremlin_python/process/traversal.py index de2ce44f2eb..1efa3284579 100644 --- a/gremlin-python/src/main/python/gremlin_python/process/traversal.py +++ b/gremlin-python/src/main/python/gremlin_python/process/traversal.py @@ -19,6 +19,7 @@ import copy import math +import re import threading import uuid import warnings @@ -917,9 +918,8 @@ def _arg_as_string(self, arg): if isinstance(arg, GValue): key = arg.get_name() - - if not key.isidentifier(): - raise Exception(f'invalid parameter name {key}.') + if not re.fullmatch(r'(?:[^\W\d]|\$)(?:\w|\$)*', key): + raise Exception(f'Invalid parameter name [{key}].') if key in self.parameters: if self.parameters[key] != arg.value: @@ -1145,10 +1145,10 @@ def __repr__(self): class GValue: def __init__(self, name, value): + if isinstance(value, GValue): + raise Exception('GValues cannot be nested') if name is None: - raise Exception("The parameter name cannot be None.") - if name.startswith('_'): - raise Exception(f'invalid GValue name {name}. Should not start with _.') + raise Exception('GValue name cannot be null.') self.name = name self.value = value @@ -1161,6 +1161,12 @@ def is_null(self): def get(self): return self.value + def __repr__(self): + return f'{self.name}={self.value}' + + def __str__(self): + return f'{self.name}={self.value}' + class CardinalityValue(GremlinLang): def __init__(self, cardinality, val): diff --git a/gremlin-python/src/main/python/tests/integration/driver/test_driver_remote_connection.py b/gremlin-python/src/main/python/tests/integration/driver/test_driver_remote_connection.py index 604190b0c65..2891851148d 100644 --- a/gremlin-python/src/main/python/tests/integration/driver/test_driver_remote_connection.py +++ b/gremlin-python/src/main/python/tests/integration/driver/test_driver_remote_connection.py @@ -52,7 +52,7 @@ def test_extract_request_options(self, remote_connection): 'bulkResults': True} assert 6 == t.to_list()[0] - @pytest.mark.skip(reason="investigate why 'ids' parameter name fails to parse in gremlin-lang") + @pytest.mark.skip(reason="TINKERPOP-3126: g.V() with a variable/parameter argument fails to parse in gremlin-lang") def test_extract_request_options_with_params(self, remote_connection): g = traversal().with_(remote_connection) t = g.with_("evaluationTimeout", @@ -62,7 +62,7 @@ def test_extract_request_options_with_params(self, remote_connection): 'evaluationTimeout': 1000, 'userAgent': 'test', 'bulkResults': True, - 'params': {'ids': [1, 2, 3]}} + 'bindings': "['ids':[1,2,3]]"} assert 3 == t.to_list()[0] def test_traversals(self, remote_connection): diff --git a/gremlin-python/src/main/python/tests/unit/process/test_gremlin_lang.py b/gremlin-python/src/main/python/tests/unit/process/test_gremlin_lang.py index edf0515317b..aa82e2992b1 100644 --- a/gremlin-python/src/main/python/tests/unit/process/test_gremlin_lang.py +++ b/gremlin-python/src/main/python/tests/unit/process/test_gremlin_lang.py @@ -483,39 +483,24 @@ class SuperStr(str): assert gremlin_lang == tests[t][1] def test_gvalue_name_cannot_be_null(self): - g = traversal().with_(None) try: - g.V(GValue(None, [1, 2, 3])) + GValue(None, [1, 2, 3]) + assert False, 'expected exception for null name' except Exception as ex: - assert str(ex) == 'The parameter name cannot be None.' + assert str(ex) == 'GValue name cannot be null.' - def test_gvalue_name_dont_need_escaping(self): - g = traversal().with_(None) - try: - g.V(GValue('\"', [1, 2, 3])) - except Exception as ex: - assert str(ex) == 'invalid parameter name ".' - - def test_gvalue_is_not_number(self): - g = traversal().with_(None) - try: - g.V(GValue('1', [1, 2, 3])) - except Exception as ex: - assert str(ex) == 'invalid parameter name 1.' + def test_gvalue_name_mid_string_dollar_accepted(self): + assert GValue('a$b', [1, 2, 3]).get_name() == 'a$b' - def test_gvalue_is_valid_identifier(self): + def test_gvalue_name_unicode_letter_accepted(self): g = traversal().with_(None) - try: - g.V(GValue('1a', [1, 2, 3])) - except Exception as ex: - assert str(ex) == 'invalid parameter name 1a.' + p = GValue('café', 42) + gremlin = g.V(p).gremlin_lang + assert 'g.V(café)' == gremlin.get_gremlin() + assert 42 == gremlin.get_parameters().get('café') - def test_gvalue_is_not_reserved(self): - g = traversal().with_(None) - try: - g.V(GValue('_1', [1, 2, 3])) - except Exception as ex: - assert str(ex) == 'invalid GValue name _1. Should not start with _.' + def test_gvalue_underscore_name_accepted(self): + assert GValue('_1', [1, 2, 3]).get_name() == '_1' def test_gvalue_is_not_duplicate(self): g = traversal().with_(None) @@ -532,6 +517,67 @@ def test_gvalue_allow_parameter_reuse(self): assert 'g.inject(ids).V(ids)' == gremlin.get_gremlin() assert val == gremlin.get_parameters().get('ids') + def test_gvalue_nested_in_child_traversal(self): + g = traversal().with_(None) + gremlin = g.V().where(__.is_(GValue('xx1', 1))).gremlin_lang + assert 'g.V().where(__.is(xx1))' == gremlin.get_gremlin() + assert 1 == gremlin.get_parameters().get('xx1') + + def test_gvalue_nested_across_multiple_child_traversals(self): + g = traversal().with_(None) + gremlin = g.V().union(__.V(GValue('vid1', 1)), __.V(GValue('vid4', 4))).gremlin_lang + assert 'g.V().union(__.V(vid1),__.V(vid4))' == gremlin.get_gremlin() + assert 1 == gremlin.get_parameters().get('vid1') + assert 4 == gremlin.get_parameters().get('vid4') + + def test_gvalue_mid_string_underscore_accepted(self): + g = traversal().with_(None) + p = GValue('a_b', 42) + gremlin = g.V(p).gremlin_lang + assert 'g.V(a_b)' == gremlin.get_gremlin() + assert 42 == gremlin.get_parameters().get('a_b') + + def test_gvalue_underscore_start_name_in_traversal(self): + g = traversal().with_(None) + gremlin = g.V(GValue('_1', [1, 2, 3])).gremlin_lang + assert 'g.V(_1)' == gremlin.get_gremlin() + assert [1, 2, 3] == gremlin.get_parameters().get('_1') + + def test_gvalue_dollar_name_in_traversal(self): + g = traversal().with_(None) + gremlin = g.V(GValue('a$b', 1)).gremlin_lang + assert 'g.V(a$b)' == gremlin.get_gremlin() + assert 1 == gremlin.get_parameters().get('a$b') + + def test_gvalue_invalid_name_raises_in_traversal(self): + import pytest + g = traversal().with_(None) + with pytest.raises(Exception, match='Invalid parameter name'): + g.V(GValue('1a', 1)).gremlin_lang.get_gremlin() + + def test_gvalue_construction_and_accessors(self): + p = GValue('x', 1) + assert 'x' == p.get_name() + assert 1 == p.get() + assert p.is_null() is False + + def test_gvalue_is_null(self): + p = GValue('n', None) + assert p.is_null() is True + q = GValue('m', 0) + assert q.is_null() is False + + def test_gvalue_string_representation(self): + p = GValue('x', 1) + assert repr(p) == 'x=1' + assert str(p) == 'x=1' + + def test_gvalue_cannot_be_nested(self): + try: + GValue('x', GValue('y', 1)) + except Exception as ex: + assert str(ex) == 'GValues cannot be nested' + def test_unsupported_type_throws(self): g = traversal().with_(None) import pytest