This is an automated email from the ASF dual-hosted git repository. colegreer pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit fd040c94a66516e473811fe29eaeaf4081cf104c Merge: b37e35cf47 37d0cc1597 Author: Cole-Greer <[email protected]> AuthorDate: Tue Aug 27 17:53:10 2024 -0700 Merge branch '3.7-dev' CHANGELOG.asciidoc | 1 + .../grammar/TraversalSourceSelfMethodVisitor.java | 11 +- .../gremlin/process/traversal/Operator.java | 4 +- .../step/sideEffect/AggregateGlobalStep.java | 19 +- .../step/sideEffect/AggregateLocalStep.java | 15 +- .../verification/ComputerVerificationStrategy.java | 24 +- .../TraversalSourceSelfMethodVisitorTest.java | 2 + .../gremlin/process/traversal/OperatorTest.java | 1 + .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 24 ++ gremlin-go/driver/cucumber/gremlin.go | 24 ++ .../gremlin-javascript/test/cucumber/gremlin.js | 24 ++ gremlin-language/src/main/antlr4/Gremlin.g4 | 1 + gremlin-python/src/main/python/radish/gremlin.py | 24 ++ .../test/features/sideEffect/Aggregate.feature | 442 +++++++++++++++++---- 14 files changed, 526 insertions(+), 90 deletions(-) diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java index 5bb2c85b3a,af9267b4a9..39828e17d9 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Operator.java @@@ -202,7 -202,7 +202,7 @@@ public enum Operator implements BinaryO */ sumLong { public Object apply(final Object a, final Object b) { - return (long) a + (long) b; + return NumberHelper.add((long) a, (long) b); } - } + }; } diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java index b23e6fad8f,41eb40a533..92ee518836 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitorTest.java @@@ -60,16 -57,11 +60,17 @@@ public class TraversalSourceSelfMethodV {"withSack('hello')", g.withSack("hello")}, {"withSack('hello', addAll)", g.withSack("hello", Operator.addAll)}, {"withSideEffect('hello', 12)", g.withSideEffect("hello", 12)}, + {"withSideEffect('hello', 12, sum)", g.withSideEffect("hello", 12, Operator.sum)}, {"withStrategies(ReadOnlyStrategy)", g.withStrategies(ReadOnlyStrategy.instance())}, {"withStrategies(new EdgeLabelVerificationStrategy(logWarning: true, throwException: true))", g.withStrategies(EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create())}, + {"withStrategies(EdgeLabelVerificationStrategy(logWarning: true, throwException: true))", g.withStrategies(EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create())}, + {"withStrategies(ReadOnlyStrategy, EdgeLabelVerificationStrategy(logWarning: true, throwException: true))", g.withStrategies(ReadOnlyStrategy.instance(), EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create())}, {"withStrategies(ReadOnlyStrategy, new EdgeLabelVerificationStrategy(logWarning: true, throwException: true))", g.withStrategies(ReadOnlyStrategy.instance(), EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create())}, {"withStrategies(new EdgeLabelVerificationStrategy(logWarning: true, throwException: true), ReadOnlyStrategy)", g.withStrategies(EdgeLabelVerificationStrategy.build().logWarning(true).throwException(true).create(), ReadOnlyStrategy.instance())}, + {"withoutStrategies(CountStrategy)", g.withoutStrategies(CountStrategy.class)}, + {"withoutStrategies(CountStrategy, EarlyLimitStrategy)", g.withoutStrategies(CountStrategy.class, EarlyLimitStrategy.class)}, + {"withoutStrategies(CountStrategy, EarlyLimitStrategy, PathRetractionStrategy)", g.withoutStrategies(CountStrategy.class, EarlyLimitStrategy.class, PathRetractionStrategy.class)}, + {"withoutStrategies(CountStrategy, EarlyLimitStrategy, PathRetractionStrategy, RepeatUnrollStrategy)", g.withoutStrategies(CountStrategy.class, EarlyLimitStrategy.class, PathRetractionStrategy.class, RepeatUnrollStrategy.class)}, {"with('requestId', '7c55d4d7-809a-4f84-9720-63b48cb2fd14')", g.with("requestId", "7c55d4d7-809a-4f84-9720-63b48cb2fd14")}, {"with('requestId')", g.with("requestId")}, {"withSideEffect('hello', ['one':1])", g.withSideEffect("hello", map)}, diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs index 12449a0d9d,72780761d0..2bc63ed4e7 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs @@@ -1442,39 -1423,62 +1442,63 @@@ namespace Gremlin.Net.IntegrationTest.G {"g_V_out_aggregateXaX_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Aggregate("a").Path()}}, {"g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").Aggregate("x").By("age").Cap<object>("x").As("y").Select<object>("y")}}, {"g_V_aggregateXxX_byXageX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate("x").By("age").Cap<object>("x")}}, - {"g_V_aggregateXlocal_xX_byXageX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate(Scope.Local,"x").By("age").Cap<object>("x")}}, - {"g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new List<object> {})).V().Aggregate(Scope.Local,"x").By("age").Cap<object>("x")}}, - {"g_V_aggregateXlocal_a_nameX_out_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate(Scope.Local,"a").By("name").Out().Cap<object>("a")}}, - {"g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Aggregate(Scope.Local,"a").By("name").Out().Aggregate(Scope.Local,"a").By("name").Values<object>("name").Cap<object>("a")}}, - {"g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",p["xx1"]).V().Both().Values<object>("name").Aggregate(Scope.Local,"a").Cap<object>("a")}}, - {"g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate(Scope.Local,"a").By(__.OutE("created").Count()).Out().Out().Aggregate(Scope.Local,"a").By(__.InE("created").Values<object>("weight").Sum<object>()).Cap<object>("a")}}, + {"g_V_aggregateXlocal_xX_byXageX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate(Scope.Local, "x").By("age").Cap<object>("x")}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate(Scope.Local, "x").By("age").Cap<object>("x")}}, + {"g_V_aggregateXlocal_a_nameX_out_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate(Scope.Local, "a").By("name").Out().Cap<object>("a")}}, + {"g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Aggregate(Scope.Local, "a").By("name").Out().Aggregate(Scope.Local, "a").By("name").Values<object>("name").Cap<object>("a")}}, + {"g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", p["xx1"]).V().Both().Values<object>("name").Aggregate(Scope.Local, "a").Cap<object>("a")}}, + {"g_withSideEffectXa_set_inlineX_V_both_name_aggregateXlocal_aX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", new HashSet<object> { "alice" }).V().Both().Values<object>("name").Aggregate(Scope.Local, "a").Cap<object>("a")}}, + {"g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate(Scope.Local, "a").By(__.OutE("created").Count()).Out().Out().Aggregate(Scope.Local, "a").By(__.InE("created").Values<object>("weight").Sum<object>()).Cap<object>("a")}}, {"g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate("x").By(__.Values<object>("age").Is(P.Gt(29))).Cap<object>("x")}}, - {"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new List<object> {})).V().Aggregate("x").By(__.Values<object>("age").Is(P.Gt(29))).Cap<object>("x")}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("x").By(__.Values<object>("age").Is(P.Gt(29))).Cap<object>("x")}}, {"g_V_aggregateXxX_byXout_order_byXnameXX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate("x").By(__.Out().Order().By("name")).Cap<object>("x")}}, - {"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new List<object> {})).V().Aggregate("x").By(__.Out().Order().By("name")).Cap<object>("x")}}, - {"g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate("a").Has("person","age",P.Gte(30)).Cap<object>("a").Unfold<object>().Values<object>("name")}}, - {"g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",1,Operator.Sum).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",1,Operator.Sum).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",123,Operator.Minus).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",123,Operator.Minus).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",2,Operator.Mult).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",2,Operator.Mult).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",876960,Operator.Div).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",876960,Operator.Div).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",1,Operator.Min).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",1,Operator.Min).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",100,Operator.Min).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",100,Operator.Min).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",1,Operator.Max).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",1,Operator.Max).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",100,Operator.Max).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",100,Operator.Max).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",true,Operator.And).V().Constant<object>(false).Aggregate("a").Cap<object>("a")}}, - {"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",true,Operator.And).V().Constant<object>(false).Aggregate(Scope.Local,"a").Cap<object>("a")}}, - {"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",true,Operator.Or).V().Constant<object>(false).Aggregate("a").Cap<object>("a")}}, - {"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",true,Operator.Or).V().Constant<object>(false).Aggregate(Scope.Local,"a").Cap<object>("a")}}, - {"g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",p["xx1"],Operator.AddAll).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",p["xx1"],Operator.AddAll).V().Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",p["xx1"],Operator.Assign).V().Aggregate("a").By("age").Cap<object>("a")}}, - {"g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a",p["xx1"],Operator.Assign).V().Order().By("age").Aggregate(Scope.Local,"a").By("age").Cap<object>("a")}}, + {"g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Aggregate("x").By(__.Out().Order().By("name")).Cap<object>("x")}}, + {"g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Aggregate("a").Has("person", "age", P.Gte(30)).Cap<object>("a").Unfold<object>().Values<object>("name")}}, ++ {"g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Sum).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Sum).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 123, Operator.Minus).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 123, Operator.Minus).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 2, Operator.Mult).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 2, Operator.Mult).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 876960, Operator.Div).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 876960, Operator.Div).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Min).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Min).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 100, Operator.Min).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 100, Operator.Min).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Max).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 1, Operator.Max).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 100, Operator.Max).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", 100, Operator.Max).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", true, Operator.And).V().Constant<object>(false).Aggregate("a").Cap<object>("a")}}, ++ {"g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", true, Operator.And).V().Constant<object>(false).Aggregate(Scope.Local, "a").Cap<object>("a")}}, ++ {"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", true, Operator.Or).V().Constant<object>(false).Aggregate("a").Cap<object>("a")}}, ++ {"g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", true, Operator.Or).V().Constant<object>(false).Aggregate(Scope.Local, "a").Cap<object>("a")}}, ++ {"g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", p["xx1"], Operator.AddAll).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", p["xx1"], Operator.AddAll).V().Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", p["xx1"], Operator.Assign).V().Aggregate("a").By("age").Cap<object>("a")}}, ++ {"g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("a", p["xx1"], Operator.Assign).V().Order().By("age").Aggregate(Scope.Local, "a").By("age").Cap<object>("a")}}, {"g_V_fail", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Fail()}}, {"g_V_failXmsgX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Fail("msg")}}, - {"g_V_unionXout_failX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Out(),__.Fail())}}, - {"g_V_group_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object,object>().By("name")}}, - {"g_V_group_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object,object>().By("age")}}, - {"g_withStrategiesXProductiveByStrategyX_V_group_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new List<object> {})).V().Group<object,object>().By("age")}}, - {"g_V_group_byXnameX_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object,object>().By("name").By("age")}}, - {"g_V_group_byXnameX_by", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object,object>().By("name").By()}}, - {"g_V_hasXlangX_group_byXlangX_byXcountX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("lang").Group<object,object>().By("lang").By(__.Count())}}, - {"g_V_group_byXoutE_countX_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Order().By("name").Group<object,object>().By(__.OutE().Count()).By("name")}}, - {"g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Both("followedBy")).Times(2).Group<object,object>().By("songType").By(__.Count())}}, - {"g_V_group_byXname_substring_1X_byXconstantX1XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object,object>().By((IFunction) p["l1"]).By(__.Constant<object>(1))}}, - {"g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Group<object,object>().By(T.Label).Select<object>("person").Unfold<object>().Out("created").Values<object>("name").Limit<object>(2)}}, - {"g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("song").Group<object,object>().By("name").By(__.Properties<object>().GroupCount<object>().By(T.Label))}}, - {"g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("followedBy").Group<object,object>().By("songType").By(__.BothE().Group<object,object>().By(T.Label).By(__.Values<object>("weight").Sum<object>()))}}, - {"g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object,object>().By(T.Label).By(__.BothE().Group("a").By(T.Label).By(__.Values<object>("weight").Sum<object>()).Values<object>("weight").Sum<object>())}}, - {"g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").As("p").Out("created").Group<object,object>().By("name").By(__.Select<object>("p").Values<object>("age").Sum<object>())}}, - {"g_V_group_byXlabelX_byXlabel_countX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object,object>().By(__.Label()).By(__.Label().Count())}}, + {"g_V_unionXout_failX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Out(), __.Fail())}}, + {"g_V_group_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, object>().By("name")}}, + {"g_V_group_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, object>().By("age")}}, + {"g_withStrategiesXProductiveByStrategyX_V_group_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().Group<object, object>().By("age")}}, + {"g_V_group_byXnameX_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, object>().By("name").By("age")}}, + {"g_V_group_byXnameX_by", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, object>().By("name").By()}}, + {"g_V_hasXlangX_group_byXlangX_byXcountX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("lang").Group<object, object>().By("lang").By(__.Count())}}, + {"g_V_group_byXoutE_countX_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Order().By("name").Group<object, object>().By(__.OutE().Count()).By("name")}}, + {"g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Both("followedBy")).Times(2).Group<object, object>().By("songType").By(__.Count())}}, + {"g_V_group_byXname_substring_1X_byXconstantX1XX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>()}, // skipping as it contains a lambda + {"g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out().Group<object, object>().By(T.Label).Select<object>("person").Unfold<object>().Out("created").Values<object>("name").Limit<object>(2)}}, + {"g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("song").Group<object, object>().By("name").By(__.Properties<object>().GroupCount<object>().By(T.Label))}}, + {"g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("followedBy").Group<object, object>().By("songType").By(__.BothE().Group<object, object>().By(T.Label).By(__.Values<object>("weight").Sum<object>()))}}, + {"g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, object>().By(T.Label).By(__.BothE().Group("a").By(T.Label).By(__.Values<object>("weight").Sum<object>()).Values<object>("weight").Sum<object>())}}, + {"g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasLabel("person").As("p").Out("created").Group<object, object>().By("name").By(__.Select<object>("p").Values<object>("age").Sum<object>())}}, + {"g_V_group_byXlabelX_byXlabel_countX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, object>().By(__.Label()).By(__.Label().Count())}}, {"g_V_outXcreatedX_groupCount_byXnameX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount<object>().By("name")}}, {"g_V_groupCount_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().GroupCount<object>().By("age")}}, - {"g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy(productiveKeys: new List<object> {})).V().GroupCount<object>().By("age")}}, + {"g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithStrategies(new ProductiveByStrategy()).V().GroupCount<object>().By("age")}}, {"g_V_outXcreatedX_name_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("created").Values<object>("name").GroupCount<object>()}}, {"g_V_outXcreatedX_groupCountXaX_byXnameX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount("a").By("name").Cap<object>("a")}}, {"g_V_outXcreatedX_name_groupCountXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("created").Values<object>("name").GroupCount("a").Cap<object>("a")}}, diff --cc gremlin-go/driver/cucumber/gremlin.go index 1097cb2a5d,e68bddb1c8..4e12df2805 --- a/gremlin-go/driver/cucumber/gremlin.go +++ b/gremlin-go/driver/cucumber/gremlin.go @@@ -1418,13 -1399,36 +1418,37 @@@ var translationMap = map[string][]func( "g_V_aggregateXlocal_a_nameX_out_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Aggregate(gremlingo.Scope.Local, "a").By("name").Out().Cap("a")}}, "g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["vid1"]).Aggregate(gremlingo.Scope.Local, "a").By("name").Out().Aggregate(gremlingo.Scope.Local, "a").By("name").Values("name").Cap("a")}}, "g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"]).V().Both().Values("name").Aggregate(gremlingo.Scope.Local, "a").Cap("a")}}, + "g_withSideEffectXa_set_inlineX_V_both_name_aggregateXlocal_aX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", gremlingo.NewSimpleSet("alice")).V().Both().Values("name").Aggregate(gremlingo.Scope.Local, "a").Cap("a")}}, "g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Aggregate(gremlingo.Scope.Local, "a").By(gremlingo.T__.OutE("created").Count()).Out().Out().Aggregate(gremlingo.Scope.Local, "a").By(gremlingo.T__.InE("created").Values("weight").Sum()).Cap("a")}}, "g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Aggregate("x").By(gremlingo.T__.Values("age").Is(gremlingo.P.Gt(29))).Cap("x")}}, - "g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithStrategies(gremlingo.ProductiveByStrategy(gremlingo.ProductiveByStrategyConfig{ProductiveKeys: []string{}})).V().Aggregate("x").By(gremlingo.T__.Values("age").Is(gremlingo.P.Gt(29))).Cap("x")}}, + "g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithStrategies(gremlingo.ProductiveByStrategy()).V().Aggregate("x").By(gremlingo.T__.Values("age").Is(gremlingo.P.Gt(29))).Cap("x")}}, "g_V_aggregateXxX_byXout_order_byXnameXX_capXxX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Aggregate("x").By(gremlingo.T__.Out().Order().By("name")).Cap("x")}}, - "g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithStrategies(gremlingo.ProductiveByStrategy(gremlingo.ProductiveByStrategyConfig{ProductiveKeys: []string{}})).V().Aggregate("x").By(gremlingo.T__.Out().Order().By("name")).Cap("x")}}, + "g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithStrategies(gremlingo.ProductiveByStrategy()).V().Aggregate("x").By(gremlingo.T__.Out().Order().By("name")).Cap("x")}}, "g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Aggregate("a").Has("person", "age", gremlingo.P.Gte(30)).Cap("a").Unfold().Values("name")}}, + "g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, gremlingo.Operator.Sum).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, gremlingo.Operator.Sum).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 123, gremlingo.Operator.Minus).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 123, gremlingo.Operator.Minus).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 2, gremlingo.Operator.Mult).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 2, gremlingo.Operator.Mult).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 876960, gremlingo.Operator.Div).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 876960, gremlingo.Operator.Div).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, gremlingo.Operator.Min).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, gremlingo.Operator.Min).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 100, gremlingo.Operator.Min).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 100, gremlingo.Operator.Min).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, gremlingo.Operator.Max).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 1, gremlingo.Operator.Max).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 100, gremlingo.Operator.Max).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", 100, gremlingo.Operator.Max).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", true, gremlingo.Operator.And).V().Constant(false).Aggregate("a").Cap("a")}}, + "g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", true, gremlingo.Operator.And).V().Constant(false).Aggregate(gremlingo.Scope.Local, "a").Cap("a")}}, + "g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", true, gremlingo.Operator.Or).V().Constant(false).Aggregate("a").Cap("a")}}, + "g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", true, gremlingo.Operator.Or).V().Constant(false).Aggregate(gremlingo.Scope.Local, "a").Cap("a")}}, + "g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"], gremlingo.Operator.AddAll).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"], gremlingo.Operator.AddAll).V().Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, + "g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"], gremlingo.Operator.Assign).V().Aggregate("a").By("age").Cap("a")}}, + "g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSideEffect("a", p["xx1"], gremlingo.Operator.Assign).V().Order().By("age").Aggregate(gremlingo.Scope.Local, "a").By("age").Cap("a")}}, "g_V_fail": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Fail()}}, "g_V_failXmsgX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Fail("msg")}}, "g_V_unionXout_failX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Union(gremlingo.T__.Out(), gremlingo.T__.Fail())}}, diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js index 2303335aae,abbee0f7ef..d4ba8ca726 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js @@@ -1434,24 -1414,47 +1434,48 @@@ const gremlins = g_V_out_aggregateXaX_path: [function({g}) { return g.V().out().aggregate("a").path() }], g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX: [function({g}) { return g.V().hasLabel("person").aggregate("x").by("age").cap("x").as("y").select("y") }], g_V_aggregateXxX_byXageX_capXxX: [function({g}) { return g.V().aggregate("x").by("age").cap("x") }], - g_V_aggregateXlocal_xX_byXageX_capXxX: [function({g}) { return g.V().aggregate(Scope.local,"x").by("age").cap("x") }], - g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX: [function({g}) { return g.withStrategies(new ProductiveByStrategy({productiveKeys:[]})).V().aggregate(Scope.local,"x").by("age").cap("x") }], - g_V_aggregateXlocal_a_nameX_out_capXaX: [function({g}) { return g.V().aggregate(Scope.local,"a").by("name").out().cap("a") }], - g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX: [function({g, vid1}) { return g.V(vid1).aggregate(Scope.local,"a").by("name").out().aggregate(Scope.local,"a").by("name").values("name").cap("a") }], - g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX: [function({g, xx1}) { return g.withSideEffect("a",xx1).V().both().values("name").aggregate(Scope.local,"a").cap("a") }], - g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX: [function({g}) { return g.V().aggregate(Scope.local,"a").by(__.outE("created").count()).out().out().aggregate(Scope.local,"a").by(__.inE("created").values("weight").sum()).cap("a") }], + g_V_aggregateXlocal_xX_byXageX_capXxX: [function({g}) { return g.V().aggregate(Scope.local, "x").by("age").cap("x") }], + g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX: [function({g}) { return g.withStrategies(new ProductiveByStrategy()).V().aggregate(Scope.local, "x").by("age").cap("x") }], + g_V_aggregateXlocal_a_nameX_out_capXaX: [function({g}) { return g.V().aggregate(Scope.local, "a").by("name").out().cap("a") }], + g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX: [function({g, vid1}) { return g.V(vid1).aggregate(Scope.local, "a").by("name").out().aggregate(Scope.local, "a").by("name").values("name").cap("a") }], + g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX: [function({g, xx1}) { return g.withSideEffect("a", xx1).V().both().values("name").aggregate(Scope.local, "a").cap("a") }], + g_withSideEffectXa_set_inlineX_V_both_name_aggregateXlocal_aX_capXaX: [function({g}) { return g.withSideEffect("a", new Set(["alice"])).V().both().values("name").aggregate(Scope.local, "a").cap("a") }], + g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX: [function({g}) { return g.V().aggregate(Scope.local, "a").by(__.outE("created").count()).out().out().aggregate(Scope.local, "a").by(__.inE("created").values("weight").sum()).cap("a") }], g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX: [function({g}) { return g.V().aggregate("x").by(__.values("age").is(P.gt(29))).cap("x") }], - g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX: [function({g}) { return g.withStrategies(new ProductiveByStrategy({productiveKeys:[]})).V().aggregate("x").by(__.values("age").is(P.gt(29))).cap("x") }], + g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX: [function({g}) { return g.withStrategies(new ProductiveByStrategy()).V().aggregate("x").by(__.values("age").is(P.gt(29))).cap("x") }], g_V_aggregateXxX_byXout_order_byXnameXX_capXxX: [function({g}) { return g.V().aggregate("x").by(__.out().order().by("name")).cap("x") }], - g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX: [function({g}) { return g.withStrategies(new ProductiveByStrategy({productiveKeys:[]})).V().aggregate("x").by(__.out().order().by("name")).cap("x") }], - g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX: [function({g}) { return g.V().aggregate("a").has("person","age",P.gte(30)).cap("a").unfold().values("name") }], - g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",1,Operator.sum).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",1,Operator.sum).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",123,Operator.minus).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",123,Operator.minus).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",2,Operator.mult).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",2,Operator.mult).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",876960,Operator.div).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",876960,Operator.div).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",1,Operator.min).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",1,Operator.min).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",100,Operator.min).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",100,Operator.min).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",1,Operator.max).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",1,Operator.max).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",100,Operator.max).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a",100,Operator.max).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX: [function({g}) { return g.withSideEffect("a",true,Operator.and).V().constant(false).aggregate("a").cap("a") }], - g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX: [function({g}) { return g.withSideEffect("a",true,Operator.and).V().constant(false).aggregate(Scope.local,"a").cap("a") }], - g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX: [function({g}) { return g.withSideEffect("a",true,Operator.or).V().constant(false).aggregate("a").cap("a") }], - g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX: [function({g}) { return g.withSideEffect("a",true,Operator.or).V().constant(false).aggregate(Scope.local,"a").cap("a") }], - g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX: [function({g, xx1}) { return g.withSideEffect("a",xx1,Operator.addAll).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g, xx1}) { return g.withSideEffect("a",xx1,Operator.addAll).V().aggregate(Scope.local,"a").by("age").cap("a") }], - g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX: [function({g, xx1}) { return g.withSideEffect("a",xx1,Operator.assign).V().aggregate("a").by("age").cap("a") }], - g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX: [function({g, xx1}) { return g.withSideEffect("a",xx1,Operator.assign).V().order().by("age").aggregate(Scope.local,"a").by("age").cap("a") }], + g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX: [function({g}) { return g.withStrategies(new ProductiveByStrategy()).V().aggregate("x").by(__.out().order().by("name")).cap("x") }], + g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX: [function({g}) { return g.V().aggregate("a").has("person", "age", P.gte(30)).cap("a").unfold().values("name") }], ++ g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 1, Operator.sum).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 1, Operator.sum).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 123, Operator.minus).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 123, Operator.minus).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 2, Operator.mult).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 2, Operator.mult).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 876960, Operator.div).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 876960, Operator.div).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 1, Operator.min).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 1, Operator.min).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 100, Operator.min).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 100, Operator.min).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 1, Operator.max).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 1, Operator.max).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 100, Operator.max).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g}) { return g.withSideEffect("a", 100, Operator.max).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX: [function({g}) { return g.withSideEffect("a", true, Operator.and).V().constant(false).aggregate("a").cap("a") }], ++ g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX: [function({g}) { return g.withSideEffect("a", true, Operator.and).V().constant(false).aggregate(Scope.local, "a").cap("a") }], ++ g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX: [function({g}) { return g.withSideEffect("a", true, Operator.or).V().constant(false).aggregate("a").cap("a") }], ++ g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX: [function({g}) { return g.withSideEffect("a", true, Operator.or).V().constant(false).aggregate(Scope.local, "a").cap("a") }], ++ g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX: [function({g, xx1}) { return g.withSideEffect("a", xx1, Operator.addAll).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX: [function({g, xx1}) { return g.withSideEffect("a", xx1, Operator.addAll).V().aggregate(Scope.local, "a").by("age").cap("a") }], ++ g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX: [function({g, xx1}) { return g.withSideEffect("a", xx1, Operator.assign).V().aggregate("a").by("age").cap("a") }], ++ g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX: [function({g, xx1}) { return g.withSideEffect("a", xx1, Operator.assign).V().order().by("age").aggregate(Scope.local, "a").by("age").cap("a") }], g_V_fail: [function({g}) { return g.V().fail() }], g_V_failXmsgX: [function({g}) { return g.V().fail("msg") }], - g_V_unionXout_failX: [function({g}) { return g.V().union(__.out(),__.fail()) }], + g_V_unionXout_failX: [function({g}) { return g.V().union(__.out(), __.fail()) }], g_V_group_byXnameX: [function({g}) { return g.V().group().by("name") }], g_V_group_byXageX: [function({g}) { return g.V().group().by("age") }], - g_withStrategiesXProductiveByStrategyX_V_group_byXageX: [function({g}) { return g.withStrategies(new ProductiveByStrategy({productiveKeys:[]})).V().group().by("age") }], + g_withStrategiesXProductiveByStrategyX_V_group_byXageX: [function({g}) { return g.withStrategies(new ProductiveByStrategy()).V().group().by("age") }], g_V_group_byXnameX_byXageX: [function({g}) { return g.V().group().by("name").by("age") }], g_V_group_byXnameX_by: [function({g}) { return g.V().group().by("name").by() }], g_V_hasXlangX_group_byXlangX_byXcountX: [function({g}) { return g.V().has("lang").group().by("lang").by(__.count()) }], diff --cc gremlin-python/src/main/python/radish/gremlin.py index b3b4abadc1,562e4ff6bd..c7361542a2 --- a/gremlin-python/src/main/python/radish/gremlin.py +++ b/gremlin-python/src/main/python/radish/gremlin.py @@@ -1410,30 -1390,53 +1410,54 @@@ world.gremlins = 'g_V_out_out_properties_asXheadX_path_order_byXdescX_selectXheadX_value': [(lambda g: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': [(lambda g:g.V().out().out().values().as_('head').path().order().by(Order.asc).select('head'))], 'g_V_out_out_values_asXheadX_path_order_byXdescX_selectXheadX': [(lambda g:g.V().out().out().values().as_('head').path().order().by(Order.desc).select('head'))], - 'g_V_valueXnameX_aggregateXxX_capXxX': [(lambda g:g.V().name.aggregate('x').cap('x'))], - 'g_V_valueXnameX_aggregateXglobal_xX_capXxX': [(lambda g:g.V().name.aggregate(Scope.global_,'x').cap('x'))], + 'g_V_valueXnameX_aggregateXxX_capXxX': [(lambda g:g.V().values('name').aggregate('x').cap('x'))], + 'g_V_valueXnameX_aggregateXglobal_xX_capXxX': [(lambda g:g.V().values('name').aggregate(Scope.global_, 'x').cap('x'))], 'g_V_aggregateXxX_byXnameX_capXxX': [(lambda g:g.V().aggregate('x').by('name').cap('x'))], 'g_V_out_aggregateXaX_path': [(lambda g:g.V().out().aggregate('a').path())], - 'g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX': [(lambda g:g.V().hasLabel('person').aggregate('x').by('age').cap('x').as_('y').select('y'))], + 'g_V_hasLabelXpersonX_aggregateXxX_byXageX_capXxX_asXyX_selectXyX': [(lambda g:g.V().has_label('person').aggregate('x').by('age').cap('x').as_('y').select('y'))], 'g_V_aggregateXxX_byXageX_capXxX': [(lambda g:g.V().aggregate('x').by('age').cap('x'))], - 'g_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda g:g.V().aggregate(Scope.local,'x').by('age').cap('x'))], - 'g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate(Scope.local,'x').by('age').cap('x'))], - 'g_V_aggregateXlocal_a_nameX_out_capXaX': [(lambda g:g.V().aggregate(Scope.local,'a').by('name').out().cap('a'))], - 'g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX': [(lambda g, vid1=None:g.V(vid1).aggregate(Scope.local,'a').by('name').out().aggregate(Scope.local,'a').by('name').name.cap('a'))], - 'g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX': [(lambda g, xx1=None:g.withSideEffect('a',xx1).V().both().name.aggregate(Scope.local,'a').cap('a'))], - 'g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX': [(lambda g:g.V().aggregate(Scope.local,'a').by(__.outE('created').count()).out().out().aggregate(Scope.local,'a').by(__.inE('created').weight.sum_()).cap('a'))], - 'g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda g:g.V().aggregate('x').by(__.age.is_(P.gt(29))).cap('x'))], - 'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('x').by(__.age.is_(P.gt(29))).cap('x'))], + 'g_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda g:g.V().aggregate(Scope.local, 'x').by('age').cap('x'))], + 'g_withStrategiesXProductiveByStrategyX_V_aggregateXlocal_xX_byXageX_capXxX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate(Scope.local, 'x').by('age').cap('x'))], + 'g_V_aggregateXlocal_a_nameX_out_capXaX': [(lambda g:g.V().aggregate(Scope.local, 'a').by('name').out().cap('a'))], + 'g_VX1X_aggregateXlocal_aX_byXnameX_out_aggregateXlocal_aX_byXnameX_name_capXaX': [(lambda g, vid1=None:g.V(vid1).aggregate(Scope.local, 'a').by('name').out().aggregate(Scope.local, 'a').by('name').values('name').cap('a'))], + 'g_withSideEffectXa_setX_V_both_name_aggregateXlocal_aX_capXaX': [(lambda g, xx1=None:g.with_side_effect('a', xx1).V().both().values('name').aggregate(Scope.local, 'a').cap('a'))], + 'g_withSideEffectXa_set_inlineX_V_both_name_aggregateXlocal_aX_capXaX': [(lambda g:g.with_side_effect('a', {'alice'}).V().both().values('name').aggregate(Scope.local, 'a').cap('a'))], + 'g_V_aggregateXlocal_aX_byXoutEXcreatedX_countX_out_out_aggregateXlocal_aX_byXinEXcreatedX_weight_sumX': [(lambda g:g.V().aggregate(Scope.local, 'a').by(__.out_e('created').count()).out().out().aggregate(Scope.local, 'a').by(__.in_e('created').values('weight').sum_()).cap('a'))], + 'g_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda g:g.V().aggregate('x').by(__.values('age').is_(P.gt(29))).cap('x'))], + 'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXvaluesXageX_isXgtX29XXX_capXxX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('x').by(__.values('age').is_(P.gt(29))).cap('x'))], 'g_V_aggregateXxX_byXout_order_byXnameXX_capXxX': [(lambda g:g.V().aggregate('x').by(__.out().order().by('name')).cap('x'))], - 'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().aggregate('x').by(__.out().order().by('name')).cap('x'))], - 'g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX': [(lambda g:g.V().aggregate('a').has('person','age',P.gte(30)).cap('a').unfold().name)], - 'g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',1,Operator.sum_).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',1,Operator.sum_).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',123,Operator.minus).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',123,Operator.minus).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',2,Operator.mult).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',2,Operator.mult).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',876960,Operator.div).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',876960,Operator.div).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',1,Operator.min_).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',1,Operator.min_).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',100,Operator.min_).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',100,Operator.min_).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',1,Operator.max_).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',1,Operator.max_).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',100,Operator.max_).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.withSideEffect('a',100,Operator.max_).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX': [(lambda g:g.withSideEffect('a',True,Operator.and_).V().constant(False).aggregate('a').cap('a'))], - 'g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX': [(lambda g:g.withSideEffect('a',True,Operator.and_).V().constant(False).aggregate(Scope.local,'a').cap('a'))], - 'g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX': [(lambda g:g.withSideEffect('a',True,Operator.or_).V().constant(False).aggregate('a').cap('a'))], - 'g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX': [(lambda g:g.withSideEffect('a',True,Operator.or_).V().constant(False).aggregate(Scope.local,'a').cap('a'))], - 'g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX': [(lambda g, xx1=None:g.withSideEffect('a',xx1,Operator.addAll).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g, xx1=None:g.withSideEffect('a',xx1,Operator.addAll).V().aggregate(Scope.local,'a').by('age').cap('a'))], - 'g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX': [(lambda g, xx1=None:g.withSideEffect('a',xx1,Operator.assign).V().aggregate('a').by('age').cap('a'))], - 'g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX': [(lambda g, xx1=None:g.withSideEffect('a',xx1,Operator.assign).V().order().by('age').aggregate(Scope.local,'a').by('age').cap('a'))], + 'g_withStrategiesXProductiveByStrategyX_V_aggregateXxX_byXout_order_byXnameXX_capXxX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().aggregate('x').by(__.out().order().by('name')).cap('x'))], + 'g_V_aggregateXaX_hasXperson_age_gteX30XXX_capXaX_unfold_valuesXnameX': [(lambda g:g.V().aggregate('a').has('person', 'age', P.gte(30)).cap('a').unfold().values('name'))], ++ 'g_withSideEffectXa_1_sumX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 1, Operator.sum_).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_1_sumX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 1, Operator.sum_).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_123_minusX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 123, Operator.minus).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_123_minusX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 123, Operator.minus).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_2_multX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 2, Operator.mult).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_2_multX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 2, Operator.mult).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_876960_divX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 876960, Operator.div).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_876960_divX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 876960, Operator.div).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_1_minX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 1, Operator.min_).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_1_minX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 1, Operator.min_).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_100_minX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 100, Operator.min_).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_100_minX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 100, Operator.min_).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_1_maxX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 1, Operator.max_).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_1_maxX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 1, Operator.max_).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_100_maxX_V_aggregateXaX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 100, Operator.max_).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_100_maxX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g:g.with_side_effect('a', 100, Operator.max_).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXaX_capXaX': [(lambda g:g.with_side_effect('a', True, Operator.and_).V().constant(False).aggregate('a').cap('a'))], ++ 'g_withSideEffectXa_true_andX_V_constantXfalseX_aggregateXlocal_aX_capXaX': [(lambda g:g.with_side_effect('a', True, Operator.and_).V().constant(False).aggregate(Scope.local, 'a').cap('a'))], ++ 'g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXaX_capXaX': [(lambda g:g.with_side_effect('a', True, Operator.or_).V().constant(False).aggregate('a').cap('a'))], ++ 'g_withSideEffectXa_true_orX_V_constantXfalseX_aggregateXlocal_aX_capXaX': [(lambda g:g.with_side_effect('a', True, Operator.or_).V().constant(False).aggregate(Scope.local, 'a').cap('a'))], ++ 'g_withSideEffectXa_xx1_addAllX_V_aggregateXaX_byXageX_capXaX': [(lambda g, xx1=None:g.with_side_effect('a', xx1, Operator.add_all).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_xx1_addAllX_V_aggregateXlocal_aX_byXageX_capXaX': [(lambda g, xx1=None:g.with_side_effect('a', xx1, Operator.add_all).V().aggregate(Scope.local, 'a').by('age').cap('a'))], ++ 'g_withSideEffectXa_xx1_assignX_V_aggregateXaX_byXageX_capXaX': [(lambda g, xx1=None:g.with_side_effect('a', xx1, Operator.assign).V().aggregate('a').by('age').cap('a'))], ++ 'g_withSideEffectXa_xx1_assignX_V_order_byXageX_aggregateXlocal_aX_byXageX_capXaX': [(lambda g, xx1=None:g.with_side_effect('a', xx1, Operator.assign).V().order().by('age').aggregate(Scope.local, 'a').by('age').cap('a'))], 'g_V_fail': [(lambda g:g.V().fail())], 'g_V_failXmsgX': [(lambda g:g.V().fail('msg'))], - 'g_V_unionXout_failX': [(lambda g:g.V().union(__.out(),__.fail()))], + 'g_V_unionXout_failX': [(lambda g:g.V().union(__.out(), __.fail()))], 'g_V_group_byXnameX': [(lambda g:g.V().group().by('name'))], 'g_V_group_byXageX': [(lambda g:g.V().group().by('age'))], - 'g_withStrategiesXProductiveByStrategyX_V_group_byXageX': [(lambda g:g.withStrategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().group().by('age'))], + 'g_withStrategiesXProductiveByStrategyX_V_group_byXageX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().group().by('age'))], 'g_V_group_byXnameX_byXageX': [(lambda g:g.V().group().by('name').by('age'))], 'g_V_group_byXnameX_by': [(lambda g:g.V().group().by('name').by())], 'g_V_hasXlangX_group_byXlangX_byXcountX': [(lambda g:g.V().has('lang').group().by('lang').by(__.count()))],
