This is an automated email from the ASF dual-hosted git repository. Cole-Greer pushed a commit to branch 3.8-dev in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit ed0802b04ac9c2ea0c61f7f88bf1ec0dc539d581 Merge: 893f7e2b3c 50de6da025 Author: Cole Greer <[email protected]> AuthorDate: Thu Jul 23 18:30:00 2026 -0700 Merge branch '3.7-dev' into 3.8-dev CHANGELOG.asciidoc | 5 +- docker/Dockerfile | 6 +- .../dev/developer/development-environment.asciidoc | 18 ++---- docs/src/dev/developer/release.asciidoc | 4 +- .../language/grammar/GenericLiteralVisitor.java | 2 +- .../traversal/step/filter/WherePredicateStep.java | 10 ++- .../traversal/step/sideEffect/SubgraphStep.java | 10 ++- .../grammar/GeneralLiteralVisitorTest.java | 11 +++- .../Gremlin.Net.Template.csproj | 2 + gremlin-dotnet/src/pom.xml | 73 ++++------------------ .../Gherkin/GherkinTestRunner.cs | 1 + .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 3 + .../Gherkin/IgnoreException.cs | 7 ++- gremlin-go/driver/cucumber/gremlin.go | 3 + .../gremlin-javascript/test/cucumber/gremlin.js | 3 + gremlin-language/src/main/antlr4/Gremlin.g4 | 10 +-- .../src/main/python/tests/feature/gremlin.py | 3 + .../process/traversal/step/filter/WhereTest.java | 45 +++++++++++++ .../test/features/sideEffect/Inject.feature | 36 +++++++++++ .../sideEffect/TinkerGraphSubgraphStepTest.java | 60 ++++++++++++++++++ 20 files changed, 222 insertions(+), 90 deletions(-) diff --cc docker/Dockerfile index d82f6e5906,8a032fcbb4..aa3169434f --- a/docker/Dockerfile +++ b/docker/Dockerfile @@@ -24,13 -24,13 +24,11 @@@ RUN apt-get -y install software-propert RUN add-apt-repository ppa:openjdk-r/ppa RUN sh -c 'curl -s https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -o packages-microsoft-prod.deb' RUN sh -c 'dpkg -i packages-microsoft-prod.deb' - RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF - RUN apt-get install apt-transport-https gnupg ca-certificates - RUN sh -c 'echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | tee /etc/apt/sources.list.d/mono-official-stable.list' + RUN apt-get update -# include both java 8/11 so that we can use the same docker image for future builds on that version of the jdk as we do -# for the older release branches. the java version to use is just controlled by JAVA_HOME hardcoded below -RUN apt-get install -y openjdk-8-jdk openjdk-11-jdk gawk git maven openssh-server subversion zip +RUN apt-get install -y openjdk-11-jdk gawk git maven openssh-server subversion zip - RUN apt-get install -y --force-yes dotnet-sdk-8.0 mono-devel + RUN apt-get install -y --force-yes dotnet-sdk-8.0 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get install -y python3 python3.8 python3-dev python3.8-dev python3-pip build-essential checkinstall zlib1g-dev libreadline-gplv2-dev \ diff --cc gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java index 8b1c9b3815,24f4fffb6c..fe43ad24f7 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java @@@ -616,9 -567,9 +616,9 @@@ public class GenericLiteralVisitor exte * {@inheritDoc} */ @Override - public Object visitGenericLiteralRange(final GremlinParser.GenericLiteralRangeContext ctx) { + public Object visitGenericRangeLiteral(final GremlinParser.GenericRangeLiteralContext ctx) { final int childIndexOfParameterStart = 0; - final int childIndexOfParameterEnd = 3; + final int childIndexOfParameterEnd = 2; final ParseTree startContext = ctx.getChild(childIndexOfParameterStart); final ParseTree endContext = ctx.getChild(childIndexOfParameterEnd); diff --cc gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GeneralLiteralVisitorTest.java index b10b31cc9e,fe013cb3be..f590f6212d --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GeneralLiteralVisitorTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/GeneralLiteralVisitorTest.java @@@ -432,7 -424,16 +432,16 @@@ public class GeneralLiteralVisitorTest {"1.0E+12d", "1.0E12", "java.lang.Double"}, {"-0.1E-12D", "-0.1E-12", "java.lang.Double"}, {"1E12d", "1E12", "java.lang.Double"}, - {"1D", "1", "java.lang.Double"} + {"1D", "1", "java.lang.Double"}, + + // float literals without a leading digit (e.g. .5) - {".5", ".5", "java.math.BigDecimal"}, ++ {".5", ".5", "java.lang.Double"}, + {".5m", ".5", "java.math.BigDecimal"}, + {".5f", ".5", "java.lang.Float"}, + {".5d", ".5", "java.lang.Double"}, + {"-.5f", "-.5", "java.lang.Float"}, - {".5E2", ".5E2", "java.math.BigDecimal"}, ++ {".5E2", ".5E2", "java.lang.Double"}, + {".5E-2d", ".5E-2", "java.lang.Double"} }); } diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs index 8dd93da089,1d5199e377..8044c357b7 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs @@@ -48,11 -48,9 +48,12 @@@ namespace Gremlin.Net.IntegrationTest.G new Dictionary<string, IgnoreReason> { // Add here the name of scenarios to ignore and the reason, e.g.: + {"g_VX1X_outEXknowsX_subgraphXsgX_name_capXsgX", IgnoreReason.SubgraphStepNotSupported}, + {"g_V_repeatXbothEXcreatedX_subgraphXsgX_outVX_timesX5X_name_dedup_capXsgX", IgnoreReason.SubgraphStepNotSupported}, {"g_withStrategiesXProductiveByStrategyX_V_group_byXageX", IgnoreReason.NullKeysInMapNotSupported}, {"g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX", IgnoreReason.NullKeysInMapNotSupported}, + {"g_withStrategiesXProductiveByStrategyX_V_group_byXageX_byXnameX", IgnoreReason.NullKeysInMapNotSupported}, + {"g_injectXpoint5fX", IgnoreReason.FloatLiteralTypeNotPreserved} }; private static class Keywords diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs index 506726fe68,73378300f4..881c945e96 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs @@@ -2014,74 -1516,47 +2014,77 @@@ namespace Gremlin.Net.IntegrationTest.G {"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")}}, {"g_V_repeatXout_groupCountXaX_byXnameXX_timesX2X_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Repeat(__.Out().GroupCount("a").By("name")).Times(2).Cap<object>("a")}}, {"g_V_both_groupCountXaX_byXlabelX_asXbX_barrier_whereXselectXaX_selectXsoftwareX_isXgtX2XXX_selectXbX_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Both().GroupCount("a").By(T.Label).As("b").Barrier().Where(__.Select<object>("a").Select<object>("software").Is(P.Gt(2))).Select<object>("b").Values<object>("name")}}, - {"g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Out("knows"),__.Out("created").In("created")).GroupCount<object>().Select<object>(Column.Values).Unfold<object>().Sum<object>()}}, + {"g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Out("knows"), __.Out("created").In("created")).GroupCount<object>().Select<object>(Column.Values).Unfold<object>().Sum<object>()}}, {"g_V_hasXnoX_groupCount", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("no").GroupCount<object>()}}, {"g_V_hasXnoX_groupCountXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("no").GroupCount("a").Cap<object>("a")}}, - {"g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Repeat(__.Out()).Times(2).GroupCount("m").By("lang"),__.Repeat(__.In()).Times(2).GroupCount("m").By("name")).Cap<object>("m")}}, + {"g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Union<object>(__.Repeat(__.Out()).Times(2).GroupCount("m").By("lang"), __.Repeat(__.In()).Times(2).GroupCount("m").By("name")).Cap<object>("m")}}, {"g_V_outXcreatedX_groupCountXxX_capXxX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount("x").Cap<object>("x")}}, {"g_V_groupCount_byXbothE_countX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().GroupCount<object>().By(__.BothE().Count())}}, - {"g_V_both_groupCountXaX_out_capXaX_selectXkeysX_unfold_both_groupCountXaX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Both().GroupCount("a").Out().Cap<object>("a").Select<object>(Column.Keys).Unfold<object>().Both().GroupCount("a").Cap<object>("a")}}, - {"g_V_hasXperson_name_markoX_bothXknowsX_groupCount_byXvaluesXnameX_foldX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person","name","marko").Both("knows").GroupCount<object>().By(__.Values<object>("name").Fold())}}, - {"g_VX1X_out_injectXv2X_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Inject((Vertex) p["v2"]).Values<object>("name")}}, - {"g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Values<object>("name").Inject("daniel").As("a").Map<object>((IFunction) p["l1"]).Path()}}, - {"g_VX1X_injectXg_VX4XX_out_name", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Inject((Vertex) p["v2"]).Out().Values<object>("name")}}, - {"g_injectXnull_1_3_nullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null,1,3,null)}}, - {"g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(10,20,null,20,10,10).GroupCount("x").Dedup().As("y").Project<object>("a","b").By().By(__.Select<object>("x").Select<object>(__.Select<object>("y")))}}, - {"g_injectXname_marko_age_nullX_selectXname_ageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(p["xx1"]).Select<object>("name","age")}}, - {"g_injectXnull_nullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null,null)}}, + {"g_V_both_localXgroupCountXaXX_out_capXaX_selectXkeysX_unfold_both_localXgroupCountXaXX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Both().Local<object>(__.GroupCount("a")).Out().Cap<object>("a").Select<object>(Column.Keys).Unfold<object>().Both().Local<object>(__.GroupCount("a")).Cap<object>("a")}}, + {"g_V_hasXperson_name_markoX_bothXknowsX_groupCount_byXvaluesXnameX_foldX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("person", "name", "marko").Both("knows").GroupCount<object>().By(__.Values<object>("name").Fold())}}, + {"g_V_outXcreatedX_groupCount_byXnameX_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount<object>().By("name").By("age")}}, + {"g_V_outXcreatedX_groupCountXxX_byXnameX_byXageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Out("created").GroupCount("x").By("name").By("age")}}, + {"g_V_groupCountXaX_selectXaX_countXlocalX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().GroupCount("a").Select<object>("a").Count(Scope.Local)}}, + {"g_V_localXgroupCountXaX_selectXaX_countXlocalXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Local<object>(__.GroupCount("a").Select<object>("a").Count(Scope.Local))}}, + {"g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["vid1"]).Out().Values<object>("name").Inject("daniel").As("a").Map<object>(__.Length()).Path()}}, + {"g_injectXnull_1_3_nullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null, 1, 3, null)}}, + {"g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(10, 20, null, 20, 10, 10).GroupCount("x").Dedup().As("y").Project<object>("a", "b").By().By(__.Select<object>("x").Select<object>(__.Select<object>("y")))}}, + {"g_injectXname_marko_age_nullX_selectXname_ageX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new Dictionary<object, object> {{ "name", "marko" }, { "age", null }}).Select<object>("name", "age")}}, + {"g_injectXnull_nullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null, null)}}, {"g_injectXnullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null)}}, {"g_inject", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>()}}, - {"g_VX1X_valuesXageX_injectXnull_nullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values<object>("age").Inject(null,null)}}, + {"g_VX1X_valuesXageX_injectXnull_nullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values<object>("age").Inject(null, null)}}, {"g_VX1X_valuesXageX_injectXnullX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values<object>("age").Inject(null)}}, {"g_VX1X_valuesXageX_inject", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V(p["xx1"]).Values<object>("age").Inject()}}, - {"g_injectXnull_1_3_nullX_asXaX_selectXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null,1,3,null).As("a").Select<object>("a")}}, - {"g_injectX1_3lX_injectX100_300X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(1,3).Inject(100,300)}}, - {"g_injectXbigintBoundaryValuesX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(p["xx1"],p["xx2"],p["xx3"])}}, - {"g_injectXpoint5X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(0.5)}}, - {"g_injectXpoint5fX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(0.5)}}, - {"g_injectXpoint5dX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(0.5)}}, - {"g_injectX1to5X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(new List<object> {1, 2, 3, 4, 5})}}, - {"g_injectXaTocX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject(new List<object> {"a", "b", "c"})}}, + {"g_injectXnull_1_3_nullX_asXaX_selectXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(null, 1, 3, null).As("a").Select<object>("a")}}, + {"g_injectX1_3X_injectX100_300X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(1, 3).Inject(100, 300)}}, + {"g_injectX1_3_100_300X_list", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new List<object> { 1, 3, 100, 300 })}}, + {"g_injectX1_3_100_300X_set", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new HashSet<object> { 1, 3, 100, 300 })}}, + {"g_injectX1_1X_set", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new HashSet<object> { 1, 1 })}}, + {"g_injectXbigintBoundaryValuesX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(BigInteger.Parse("0"), BigInteger.Parse("-129"), BigInteger.Parse("-32769"))}}, ++ {"g_injectXpoint5X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(.5)}}, ++ {"g_injectXpoint5fX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(.5f)}}, ++ {"g_injectXpoint5dX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(.5d)}}, {"g_io_readXkryoX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("data/tinkerpop-modern.kryo").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, - {"g_io_read_withXreader_gryoX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("data/tinkerpop-modern.kryo").With("~tinkerpop.io.reader","gryo").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_io_read_withXreader_gryoX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("data/tinkerpop-modern.kryo").With(IO.Reader, IO.Gryo).Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, {"g_io_readXgraphsonX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("data/tinkerpop-modern.json").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, - {"g_io_read_withXreader_graphsonX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("data/tinkerpop-modern.json").With("~tinkerpop.io.reader","graphson").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_io_read_withXreader_graphsonX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("data/tinkerpop-modern.json").With(IO.Reader, IO.GraphSON).Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, {"g_io_readXgraphmlX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("data/tinkerpop-modern.xml").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, - {"g_io_read_withXreader_graphmlX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("data/tinkerpop-modern.xml").With("~tinkerpop.io.reader","graphml").Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, + {"g_io_read_withXreader_graphmlX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.Io<object>("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<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((sbyte) 127).Inject<object>((sbyte) 1).Sack(Operator.Sum).Sack<object>()}}, + {"g_withSackX32767sX_injectX1sX_sackXsumX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((short) 32767).Inject<object>((short) 1).Sack(Operator.Sum).Sack<object>()}}, + {"g_withSackX2147483647iX_injectX1iX_sackXsumX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(2147483647).Inject<object>(1).Sack(Operator.Sum).Sack<object>()}}, + {"g_withSackX1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXsumX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(1.7976931348623157e+308d).Inject<object>(1.7976931348623157e+308d).Sack(Operator.Sum).Sack<object>()}}, + {"g_withSackX_128bX_injectX1bX_sackXminusX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((short) -128).Inject<object>((short) 1).Sack(Operator.Minus).Sack<object>()}}, + {"g_withSackX_32768sX_injectX1sX_sackXminusX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((short) -32768).Inject<object>((short) 1).Sack(Operator.Minus).Sack<object>()}}, + {"g_withSackX_2147483648iX_injectX1iX_sackXminusX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(-2147483648).Inject<object>(1).Sack(Operator.Minus).Sack<object>()}}, + {"g_withSackX_1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXminusX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(-1.7976931348623157e+308d).Inject<object>(1.7976931348623157e+308d).Sack(Operator.Minus).Sack<object>()}}, + {"g_withSackX127bX_injectX2bX_sackXmultX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((sbyte) 127).Inject<object>((sbyte) 2).Sack(Operator.Mult).Sack<object>()}}, + {"g_withSackX32767sX_injectX2sX_sackXmultX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((short) 32767).Inject<object>((short) 2).Sack(Operator.Mult).Sack<object>()}}, + {"g_withSackX2147483647iX_injectX2iX_sackXmultX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(2147483647).Inject<object>(2).Sack(Operator.Mult).Sack<object>()}}, + {"g_withSackX1_7976931348623157E_308dX_injectX2dX_sackXmultX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(1.7976931348623157e+308d).Inject<object>(2d).Sack(Operator.Mult).Sack<object>()}}, + {"g_withSackX127bX_injectX0_5fX_sackXdivX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((sbyte) 127).Inject<object>(0.5f).Sack(Operator.Div).Sack<object>()}}, + {"g_withSackX32767sX_injectX0_5fX_sackXdivX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((short) 32767).Inject<object>(0.5f).Sack(Operator.Div).Sack<object>()}}, + {"g_withSackX2147483647iX_injectX0_5fX_sackXdivX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(2147483647).Inject<object>(0.5f).Sack(Operator.Div).Sack<object>()}}, + {"g_withSackX1_7976931348623157E_308dX_injectX0_5dX_sackXdivX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(1.7976931348623157e+308d).Inject<object>(0.5d).Sack(Operator.Div).Sack<object>()}}, + {"g_withSackX_128bX_injectX_1bX_sackXdivX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((short) -128).Inject<object>((short) -1).Sack(Operator.Div).Sack<object>()}}, + {"g_withSackX_32768sX_injectX_1sX_sackXdivX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack((short) -32768).Inject<object>((short) -1).Sack(Operator.Div).Sack<object>()}}, + {"g_withSackX_2147483648iX_injectX_1iX_sackXdivX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(-2147483648).Inject<object>(-1).Sack(Operator.Div).Sack<object>()}}, {"g_withSackXhelloX_V_outE_sackXassignX_byXlabelX_inV_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack("hello").V().OutE().Sack(Operator.Assign).By(T.Label).InV().Sack<object>()}}, - {"g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(0.0).V().OutE().Sack(Operator.Sum).By("weight").InV().Sack<object>().Sum<object>()}}, - {"g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(0.0).V().Repeat(__.OutE().Sack(Operator.Sum).By("weight").InV()).Times(2).Sack<object>()}}, - {"g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithBulk(false).WithSack(1.0,Operator.Sum).V(p["vid1"]).Local<object>(__.OutE("knows").Barrier(Barrier.NormSack).InV()).In("knows").Barrier().Sack<object>()}}, - {"g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithBulk(false).WithSack(1,Operator.Sum).V().Out().Barrier().Sack<object>()}}, - {"g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(1.0,Operator.Sum).V(p["vid1"]).Local<object>(__.Out("knows").Barrier(Barrier.NormSack)).In("knows").Barrier().Sack<object>()}}, + {"g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(0.0d).V().OutE().Sack(Operator.Sum).By("weight").InV().Sack<object>().Sum<object>()}}, + {"g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(0.0d).V().Repeat(__.OutE().Sack(Operator.Sum).By("weight").InV()).Times(2).Sack<object>()}}, + {"g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithBulk(false).WithSack(1.0d, Operator.Sum).V(p["vid1"]).Local<object>(__.OutE("knows").Barrier(Barrier.NormSack).InV()).In("knows").Barrier().Sack<object>()}}, + {"g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithBulk(false).WithSack(1, Operator.Sum).V().Out().Barrier().Sack<object>()}}, + {"g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(1.0d, Operator.Sum).V(p["vid1"]).Local<object>(__.Out("knows").Barrier(Barrier.NormSack)).In("knows").Barrier().Sack<object>()}}, {"g_V_sackXassignX_byXageX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Sack(Operator.Assign).By("age").Sack<object>()}}, + {"g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(BigInteger.Parse("10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [...] + {"g_withSackX2X_V_sackXdivX_byXconstantX4_0XX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSack(2).V().Sack(Operator.Div).By(__.Constant<object>(4.0d)).Sack<object>()}}, + {"g_V_sackXassignX_byXageX_byXnameX_sack", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Sack(Operator.Assign).By("age").By("name").Sack<object>()}}, + {"g_V_sideEffectXidentityX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().SideEffect(__.Identity())}}, + {"g_V_sideEffectXidentity_valuesXnameXX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().SideEffect(__.Identity().Values<object>("name"))}}, + {"g_V_sideEffectXpropertyXsingle_age_22X", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.AddV("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<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group<object, object>().By(__.Values<object>("name").SideEffect(__.Constant<object>("zyx")).Substring(0, 1)).By(__.Constant<object>(1).SideEffect(__.Constant<object>("xyz")))}}, + {"g_withSideEffectXx_setX_V_both_both_sideEffectXlocalXaggregateXxX_byXnameXX_capXxX_unfold", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.WithSideEffect("x", new HashSet<object> { }).V().Both().Both().SideEffect(__.Local<object>(__.Aggregate("x").By("name"))).Cap<object>("x").Unfold<object>()}}, {"g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("age").GroupCount("a").By("name").Out().Cap<object>("a")}}, {"g_V_groupXaX_byXageX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group("a").By("age").Cap<object>("a")}}, {"g_V_groupXaX_byXnameX_capXaX", new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Group("a").By("name").Cap<object>("a")}}, diff --cc gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs index 3a86d82017,feafc86bf3..1fd55c66fa --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/IgnoreException.cs @@@ -63,13 -63,9 +63,18 @@@ namespace Gremlin.Net.IntegrationTest.G NullPropertyValuesNotSupportedOnTestGraph, /// <summary> + /// subgraph() is not supported yet + /// </summary> + SubgraphStepNotSupported, + + /// <summary> + /// tree() is not supported yet + /// </summary> - TreeStepNotSupported ++ TreeStepNotSupported, ++ + /// The translator does not preserve the numeric type of a float literal, so a value such as + /// <c>.5f</c> is emitted as a bare <c>0.5</c> and read back as a <c>double</c> rather than a <c>float</c>. + /// </summary> + FloatLiteralTypeNotPreserved } } diff --cc gremlin-go/driver/cucumber/gremlin.go index 6e9fbbf93e,d1de80cda4..bd5e0137b6 --- a/gremlin-go/driver/cucumber/gremlin.go +++ b/gremlin-go/driver/cucumber/gremlin.go @@@ -2007,36 -1508,19 +2007,39 @@@ var translationMap = map[string][]func( "g_VX1X_valuesXageX_injectXnullX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["xx1"]).Values("age").Inject(nil)}}, "g_VX1X_valuesXageX_inject": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V(p["xx1"]).Values("age").Inject()}}, "g_injectXnull_1_3_nullX_asXaX_selectXaX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(nil, 1, 3, nil).As("a").Select("a")}}, - "g_injectX1_3lX_injectX100_300X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(1, 3).Inject(100, 300)}}, - "g_injectXbigintBoundaryValuesX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(p["xx1"], p["xx2"], p["xx3"])}}, - "g_injectXpoint5X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(0.5)}}, - "g_injectXpoint5fX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(0.5)}}, - "g_injectXpoint5dX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(0.5)}}, - "g_injectX1to5X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject([]interface{}{1, 2, 3, 4, 5})}}, - "g_injectXaTocX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject([]interface{}{"a", "b", "c"})}}, + "g_injectX1_3X_injectX100_300X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(1, 3).Inject(100, 300)}}, + "g_injectX1_3_100_300X_list": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject([]interface{}{1, 3, 100, 300})}}, + "g_injectX1_3_100_300X_set": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(gremlingo.NewSimpleSet(1, 3, 100, 300))}}, + "g_injectX1_1X_set": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(gremlingo.NewSimpleSet(1, 1))}}, + "g_injectXbigintBoundaryValuesX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(gremlingo.ParseBigInt("0"), gremlingo.ParseBigInt("-129"), gremlingo.ParseBigInt("-32769"))}}, ++ "g_injectXpoint5X": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(.5)}}, ++ "g_injectXpoint5fX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(float32(.5))}}, ++ "g_injectXpoint5dX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Inject(.5)}}, "g_io_readXkryoX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.kryo").Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, - "g_io_read_withXreader_gryoX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.kryo").With("~tinkerpop.io.reader", "gryo").Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, + "g_io_read_withXreader_gryoX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.kryo").With(gremlingo.IO.Reader, gremlingo.IO.Gryo).Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, "g_io_readXgraphsonX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.json").Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, - "g_io_read_withXreader_graphsonX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.json").With("~tinkerpop.io.reader", "graphson").Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, + "g_io_read_withXreader_graphsonX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.json").With(gremlingo.IO.Reader, gremlingo.IO.Graphson).Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, "g_io_readXgraphmlX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.xml").Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, - "g_io_read_withXreader_graphmlX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.xml").With("~tinkerpop.io.reader", "graphml").Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, + "g_io_read_withXreader_graphmlX": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.Io("data/tinkerpop-modern.xml").With(gremlingo.IO.Reader, gremlingo.IO.Graphml).Read()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.E()}}, + "g_withSackX127bX_injectX1bX_sackXsumX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int8(127)).Inject(int8(1)).Sack(gremlingo.Operator.Sum).Sack()}}, + "g_withSackX32767sX_injectX1sX_sackXsumX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int16(32767)).Inject(int16(1)).Sack(gremlingo.Operator.Sum).Sack()}}, + "g_withSackX2147483647iX_injectX1iX_sackXsumX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int32(2147483647)).Inject(int32(1)).Sack(gremlingo.Operator.Sum).Sack()}}, + "g_withSackX1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXsumX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(1.7976931348623157e+308).Inject(1.7976931348623157e+308).Sack(gremlingo.Operator.Sum).Sack()}}, + "g_withSackX_128bX_injectX1bX_sackXminusX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int8(-128)).Inject(int8(1)).Sack(gremlingo.Operator.Minus).Sack()}}, + "g_withSackX_32768sX_injectX1sX_sackXminusX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int16(-32768)).Inject(int16(1)).Sack(gremlingo.Operator.Minus).Sack()}}, + "g_withSackX_2147483648iX_injectX1iX_sackXminusX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int32(-2147483648)).Inject(int32(1)).Sack(gremlingo.Operator.Minus).Sack()}}, + "g_withSackX_1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXminusX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(-1.7976931348623157e+308).Inject(1.7976931348623157e+308).Sack(gremlingo.Operator.Minus).Sack()}}, + "g_withSackX127bX_injectX2bX_sackXmultX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int8(127)).Inject(int8(2)).Sack(gremlingo.Operator.Mult).Sack()}}, + "g_withSackX32767sX_injectX2sX_sackXmultX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int16(32767)).Inject(int16(2)).Sack(gremlingo.Operator.Mult).Sack()}}, + "g_withSackX2147483647iX_injectX2iX_sackXmultX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int32(2147483647)).Inject(int32(2)).Sack(gremlingo.Operator.Mult).Sack()}}, + "g_withSackX1_7976931348623157E_308dX_injectX2dX_sackXmultX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(1.7976931348623157e+308).Inject(2).Sack(gremlingo.Operator.Mult).Sack()}}, + "g_withSackX127bX_injectX0_5fX_sackXdivX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int8(127)).Inject(float32(0.5)).Sack(gremlingo.Operator.Div).Sack()}}, + "g_withSackX32767sX_injectX0_5fX_sackXdivX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int16(32767)).Inject(float32(0.5)).Sack(gremlingo.Operator.Div).Sack()}}, + "g_withSackX2147483647iX_injectX0_5fX_sackXdivX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int32(2147483647)).Inject(0.5).Sack(gremlingo.Operator.Div).Sack()}}, + "g_withSackX1_7976931348623157E_308dX_injectX0_5dX_sackXdivX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(1.7976931348623157e+308).Inject(0.5).Sack(gremlingo.Operator.Div).Sack()}}, + "g_withSackX_128bX_injectX_1bX_sackXdivX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int8(-128)).Inject(int8(-1)).Sack(gremlingo.Operator.Div).Sack()}}, + "g_withSackX_32768sX_injectX_1sX_sackXdivX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int16(-32768)).Inject(int16(-1)).Sack(gremlingo.Operator.Div).Sack()}}, + "g_withSackX_2147483648iX_injectX_1iX_sackXdivX_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(int32(-2147483648)).Inject(int32(-1)).Sack(gremlingo.Operator.Div).Sack()}}, "g_withSackXhelloX_V_outE_sackXassignX_byXlabelX_inV_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack("hello").V().OutE().Sack(gremlingo.Operator.Assign).By(gremlingo.T.Label).InV().Sack()}}, "g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(0.0).V().OutE().Sack(gremlingo.Operator.Sum).By("weight").InV().Sack().Sum()}}, "g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack": {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) *gremlingo.GraphTraversal {return g.WithSack(0.0).V().Repeat(gremlingo.T__.OutE().Sack(gremlingo.Operator.Sum).By("weight").InV()).Times(2).Sack()}}, diff --cc gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js index aca21e540c,a83296fcd6..01680cf878 --- a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js +++ b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js @@@ -2015,59 -1507,40 +2015,62 @@@ const gremlins = g_V_outXcreatedX_name_groupCountXaX_capXaX: [function({g}) { return g.V().out("created").values("name").groupCount("a").cap("a") }], g_V_repeatXout_groupCountXaX_byXnameXX_timesX2X_capXaX: [function({g}) { return g.V().repeat(__.out().groupCount("a").by("name")).times(2).cap("a") }], g_V_both_groupCountXaX_byXlabelX_asXbX_barrier_whereXselectXaX_selectXsoftwareX_isXgtX2XXX_selectXbX_name: [function({g}) { return 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: [function({g}) { return g.V().union(__.out("knows"),__.out("created").in_("created")).groupCount().select(Column.values).unfold().sum() }], + g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum: [function({g}) { return g.V().union(__.out("knows"), __.out("created").in_("created")).groupCount().select(Column.values).unfold().sum() }], g_V_hasXnoX_groupCount: [function({g}) { return g.V().has("no").groupCount() }], g_V_hasXnoX_groupCountXaX_capXaX: [function({g}) { return g.V().has("no").groupCount("a").cap("a") }], - g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX: [function({g}) { return g.V().union(__.repeat(__.out()).times(2).groupCount("m").by("lang"),__.repeat(__.in_()).times(2).groupCount("m").by("name")).cap("m") }], + g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX: [function({g}) { return 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: [function({g}) { return g.V().out("created").groupCount("x").cap("x") }], g_V_groupCount_byXbothE_countX: [function({g}) { return g.V().groupCount().by(__.bothE().count()) }], - g_V_both_groupCountXaX_out_capXaX_selectXkeysX_unfold_both_groupCountXaX_capXaX: [function({g}) { return g.V().both().groupCount("a").out().cap("a").select(Column.keys).unfold().both().groupCount("a").cap("a") }], - g_V_hasXperson_name_markoX_bothXknowsX_groupCount_byXvaluesXnameX_foldX: [function({g}) { return g.V().has("person","name","marko").both("knows").groupCount().by(__.values("name").fold()) }], - g_VX1X_out_injectXv2X_name: [function({g, vid1, v2}) { return g.V(vid1).out().inject(v2).values("name") }], - g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path: [function({g, l1, vid1}) { return g.V(vid1).out().values("name").inject("daniel").as("a").map(l1).path() }], - g_VX1X_injectXg_VX4XX_out_name: [function({g, vid1, v2}) { return g.V(vid1).inject(v2).out().values("name") }], - g_injectXnull_1_3_nullX: [function({g}) { return g.inject(null,1,3,null) }], - g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX: [function({g}) { return 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: [function({g, xx1}) { return g.inject(xx1).select("name","age") }], - g_injectXnull_nullX: [function({g}) { return g.inject(null,null) }], + g_V_both_localXgroupCountXaXX_out_capXaX_selectXkeysX_unfold_both_localXgroupCountXaXX_capXaX: [function({g}) { return 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: [function({g}) { return g.V().has("person", "name", "marko").both("knows").groupCount().by(__.values("name").fold()) }], + g_V_outXcreatedX_groupCount_byXnameX_byXageX: [function({g}) { return g.V().out("created").groupCount().by("name").by("age") }], + g_V_outXcreatedX_groupCountXxX_byXnameX_byXageX: [function({g}) { return g.V().out("created").groupCount("x").by("name").by("age") }], + g_V_groupCountXaX_selectXaX_countXlocalX: [function({g}) { return g.V().groupCount("a").select("a").count(Scope.local) }], + g_V_localXgroupCountXaX_selectXaX_countXlocalXX: [function({g}) { return g.V().local(__.groupCount("a").select("a").count(Scope.local)) }], + g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path: [function({g, vid1}) { return g.V(vid1).out().values("name").inject("daniel").as("a").map(__.length()).path() }], + g_injectXnull_1_3_nullX: [function({g}) { return g.inject(null, 1, 3, null) }], + g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX: [function({g}) { return 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: [function({g}) { return g.inject(new Map([["name", "marko"], ["age", null]])).select("name", "age") }], + g_injectXnull_nullX: [function({g}) { return g.inject(null, null) }], g_injectXnullX: [function({g}) { return g.inject(null) }], g_inject: [function({g}) { return g.inject() }], - g_VX1X_valuesXageX_injectXnull_nullX: [function({g, xx1}) { return g.V(xx1).values("age").inject(null,null) }], + g_VX1X_valuesXageX_injectXnull_nullX: [function({g, xx1}) { return g.V(xx1).values("age").inject(null, null) }], g_VX1X_valuesXageX_injectXnullX: [function({g, xx1}) { return g.V(xx1).values("age").inject(null) }], g_VX1X_valuesXageX_inject: [function({g, xx1}) { return g.V(xx1).values("age").inject() }], - g_injectXnull_1_3_nullX_asXaX_selectXaX: [function({g}) { return g.inject(null,1,3,null).as("a").select("a") }], - g_injectX1_3lX_injectX100_300X: [function({g}) { return g.inject(1,3).inject(100,300) }], - g_injectXbigintBoundaryValuesX: [function({g, xx1, xx3, xx2}) { return g.inject(xx1,xx2,xx3) }], - g_injectXpoint5X: [function({g}) { return g.inject(0.5) }], - g_injectXpoint5fX: [function({g}) { return g.inject(0.5) }], - g_injectXpoint5dX: [function({g}) { return g.inject(0.5) }], - g_injectX1to5X: [function({g}) { return g.inject([1, 2, 3, 4, 5]) }], - g_injectXaTocX: [function({g}) { return g.inject(["a", "b", "c"]) }], + g_injectXnull_1_3_nullX_asXaX_selectXaX: [function({g}) { return g.inject(null, 1, 3, null).as("a").select("a") }], + g_injectX1_3X_injectX100_300X: [function({g}) { return g.inject(1, 3).inject(100, 300) }], + g_injectX1_3_100_300X_list: [function({g}) { return g.inject([1, 3, 100, 300]) }], + g_injectX1_3_100_300X_set: [function({g}) { return g.inject(new Set([1, 3, 100, 300])) }], + g_injectX1_1X_set: [function({g}) { return g.inject(new Set([1, 1])) }], + g_injectXbigintBoundaryValuesX: [function({g}) { return g.inject(0, -129, -32769) }], ++ g_injectXpoint5X: [function({g}) { return g.inject(.5) }], ++ g_injectXpoint5fX: [function({g}) { return g.inject(.5) }], ++ g_injectXpoint5dX: [function({g}) { return g.inject(.5) }], g_io_readXkryoX: [function({g}) { return g.io("data/tinkerpop-modern.kryo").read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], - g_io_read_withXreader_gryoX: [function({g}) { return g.io("data/tinkerpop-modern.kryo").with_("~tinkerpop.io.reader","gryo").read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], + g_io_read_withXreader_gryoX: [function({g}) { return g.io("data/tinkerpop-modern.kryo").with_(IO.reader, IO.gryo).read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], g_io_readXgraphsonX: [function({g}) { return g.io("data/tinkerpop-modern.json").read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], - g_io_read_withXreader_graphsonX: [function({g}) { return g.io("data/tinkerpop-modern.json").with_("~tinkerpop.io.reader","graphson").read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], + g_io_read_withXreader_graphsonX: [function({g}) { return g.io("data/tinkerpop-modern.json").with_(IO.reader, IO.graphson).read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], g_io_readXgraphmlX: [function({g}) { return g.io("data/tinkerpop-modern.xml").read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], - g_io_read_withXreader_graphmlX: [function({g}) { return g.io("data/tinkerpop-modern.xml").with_("~tinkerpop.io.reader","graphml").read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], + g_io_read_withXreader_graphmlX: [function({g}) { return g.io("data/tinkerpop-modern.xml").with_(IO.reader, IO.graphml).read() }, function({g}) { return g.V() }, function({g}) { return g.E() }], + g_withSackX127bX_injectX1bX_sackXsumX_sack: [function({g}) { return g.withSack(127).inject(1).sack(Operator.sum).sack() }], + g_withSackX32767sX_injectX1sX_sackXsumX_sack: [function({g}) { return g.withSack(32767).inject(1).sack(Operator.sum).sack() }], + g_withSackX2147483647iX_injectX1iX_sackXsumX_sack: [function({g}) { return g.withSack(2147483647).inject(1).sack(Operator.sum).sack() }], + g_withSackX1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXsumX_sack: [function({g}) { return g.withSack(1.7976931348623157e+308).inject(1.7976931348623157e+308).sack(Operator.sum).sack() }], + g_withSackX_128bX_injectX1bX_sackXminusX_sack: [function({g}) { return g.withSack(-128).inject(1).sack(Operator.minus).sack() }], + g_withSackX_32768sX_injectX1sX_sackXminusX_sack: [function({g}) { return g.withSack(-32768).inject(1).sack(Operator.minus).sack() }], + g_withSackX_2147483648iX_injectX1iX_sackXminusX_sack: [function({g}) { return g.withSack(-2147483648).inject(1).sack(Operator.minus).sack() }], + g_withSackX_1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXminusX_sack: [function({g}) { return g.withSack(-1.7976931348623157e+308).inject(1.7976931348623157e+308).sack(Operator.minus).sack() }], + g_withSackX127bX_injectX2bX_sackXmultX_sack: [function({g}) { return g.withSack(127).inject(2).sack(Operator.mult).sack() }], + g_withSackX32767sX_injectX2sX_sackXmultX_sack: [function({g}) { return g.withSack(32767).inject(2).sack(Operator.mult).sack() }], + g_withSackX2147483647iX_injectX2iX_sackXmultX_sack: [function({g}) { return g.withSack(2147483647).inject(2).sack(Operator.mult).sack() }], + g_withSackX1_7976931348623157E_308dX_injectX2dX_sackXmultX_sack: [function({g}) { return g.withSack(1.7976931348623157e+308).inject(2).sack(Operator.mult).sack() }], + g_withSackX127bX_injectX0_5fX_sackXdivX_sack: [function({g}) { return g.withSack(127).inject(0.5).sack(Operator.div).sack() }], + g_withSackX32767sX_injectX0_5fX_sackXdivX_sack: [function({g}) { return g.withSack(32767).inject(0.5).sack(Operator.div).sack() }], + g_withSackX2147483647iX_injectX0_5fX_sackXdivX_sack: [function({g}) { return g.withSack(2147483647).inject(0.5).sack(Operator.div).sack() }], + g_withSackX1_7976931348623157E_308dX_injectX0_5dX_sackXdivX_sack: [function({g}) { return g.withSack(1.7976931348623157e+308).inject(0.5).sack(Operator.div).sack() }], + g_withSackX_128bX_injectX_1bX_sackXdivX_sack: [function({g}) { return g.withSack(-128).inject(-1).sack(Operator.div).sack() }], + g_withSackX_32768sX_injectX_1sX_sackXdivX_sack: [function({g}) { return g.withSack(-32768).inject(-1).sack(Operator.div).sack() }], + g_withSackX_2147483648iX_injectX_1iX_sackXdivX_sack: [function({g}) { return g.withSack(-2147483648).inject(-1).sack(Operator.div).sack() }], g_withSackXhelloX_V_outE_sackXassignX_byXlabelX_inV_sack: [function({g}) { return g.withSack("hello").V().outE().sack(Operator.assign).by(T.label).inV().sack() }], g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum: [function({g}) { return g.withSack(0.0).V().outE().sack(Operator.sum).by("weight").inV().sack().sum() }], g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack: [function({g}) { return g.withSack(0.0).V().repeat(__.outE().sack(Operator.sum).by("weight").inV()).times(2).sack() }], diff --cc gremlin-language/src/main/antlr4/Gremlin.g4 index bd41d32def,d19e1a95fc..a6c4e98c59 --- a/gremlin-language/src/main/antlr4/Gremlin.g4 +++ b/gremlin-language/src/main/antlr4/Gremlin.g4 @@@ -1590,22 -1625,26 +1590,22 @@@ genericLiteralExp : genericLiteral (COMMA genericLiteral)* ; -genericLiteralRange - : integerLiteral RANGE integerLiteral - | stringLiteral RANGE stringLiteral - ; - -genericLiteralCollection - : LBRACK (genericLiteral (COMMA genericLiteral)*)? RBRACK +genericMapNullableLiteral + : genericMapLiteral + | nullLiteral ; -stringLiteralVarargs - : (stringNullableArgument (COMMA stringNullableArgument)*)? +genericRangeLiteral - : integerLiteral DOT DOT integerLiteral - | stringLiteral DOT DOT stringLiteral ++ : integerLiteral RANGE integerLiteral ++ | stringLiteral RANGE stringLiteral ; -stringLiteralList - : stringLiteralExpr? - | LBRACK stringLiteralExpr? RBRACK +genericSetLiteral + : LBRACE (genericLiteral (COMMA genericLiteral)*)? RBRACE ; -stringLiteralExpr - : stringNullableLiteral (COMMA stringNullableLiteral)* +stringNullableLiteralVarargs + : (stringNullableLiteral (COMMA stringNullableLiteral)*)? ; genericLiteral diff --cc gremlin-python/src/main/python/tests/feature/gremlin.py index 9681ab9f8f,3580de30dd..ac4e000c24 --- a/gremlin-python/src/main/python/tests/feature/gremlin.py +++ b/gremlin-python/src/main/python/tests/feature/gremlin.py @@@ -1957,104 -1474,62 +1957,107 @@@ world.gremlins = 'g_V_hasXlangX_group_byXlangX_byXcountX': [(lambda g:g.V().has('lang').group().by('lang').by(__.count()))], 'g_V_group_byXoutE_countX_byXnameX': [(lambda g:g.V().order().by('name').group().by(__.out_e().count()).by('name'))], 'g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX': [(lambda g:g.V().repeat(__.both('followedBy')).times(2).group().by('songType').by(__.count()))], - 'g_V_group_byXname_substring_1X_byXconstantX1XX': [(lambda g, l1=None:g.V().group().by(l1).by(__.constant(1)))], - 'g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X': [(lambda g:g.V().out().group().by(T.label).select('person').unfold().out('created').name[0:2])], + 'g_V_group_byXvaluesXnameX_substringX1XX_byXconstantX1XX': [(lambda g:g.V().group().by(__.values('name').substring(0, 1)).by(__.constant(1)))], + 'g_V_out_group_byXlabelX_selectXpersonX_unfold_outXcreatedX_name_limitX2X': [(lambda g:g.V().out().group().by(T.label).select('person').unfold().out('created').values('name').limit(2))], 'g_V_hasLabelXsongX_group_byXnameX_byXproperties_groupCount_byXlabelXX': [(lambda g:g.V().has_label('song').group().by('name').by(__.properties().group_count().by(T.label)))], - 'g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX': [(lambda g:g.V().out('followedBy').group().by('songType').by(__.both_e().group().by(T.label).by(__.weight.sum_())))], - 'g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX': [(lambda g:g.V().group().by(T.label).by(__.both_e().group('a').by(T.label).by(__.weight.sum_()).weight.sum_()))], - 'g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX': [(lambda g:g.V().has_label('person').as_('p').out('created').group().by('name').by(__.select('p').age.sum_()))], + 'g_V_outXfollowedByX_group_byXsongTypeX_byXbothE_group_byXlabelX_byXweight_sumXX': [(lambda g:g.V().out('followedBy').group().by('songType').by(__.both_e().group().by(T.label).by(__.values('weight').sum_())))], + 'g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX': [(lambda g:g.V().group().by(T.label).by(__.both_e().group('a').by(T.label).by(__.values('weight').sum_()).values('weight').sum_()))], + 'g_V_hasLabelXpersonX_asXpX_outXcreatedX_group_byXnameX_byXselectXpX_valuesXageX_sumX': [(lambda g:g.V().has_label('person').as_('p').out('created').group().by('name').by(__.select('p').values('age').sum_()))], 'g_V_group_byXlabelX_byXlabel_countX': [(lambda g:g.V().group().by(__.label()).by(__.label().count()))], + 'g_V_hasXperson_name_withinXvadas_peterXX_group_by_byXout_order_foldX': [(lambda g: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': [(lambda g:g.V().has('person', 'name', P.within('vadas', 'peter')).group().by().by(__.out().fold()))], + 'g_V_hasXperson_name_withinXvadas_peterXX_group_by_byXout_orderX': [(lambda g:g.V().has('person', 'name', P.within('vadas', 'peter')).group().by().by(__.out().order()))], + 'g_V_group_byXvaluesXnameXX_byXvaluesXageX_fold_unfoldX': [(lambda g:g.V().group().by(__.values('name')).by(__.values('age').fold().unfold()))], + 'g_V_group_byXvaluesXnameXX_byXout_fold_countXlocalX_isXgtX0XXX': [(lambda g:g.V().group().by(__.values('name')).by(__.out().fold().count(Scope.local).is_(P.gt(0))))], + 'g_V_hasXperson_name_withinXvadas_peterXX_group_by_byXout_order_countX': [(lambda g: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': [(lambda g: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': [(lambda g: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': [(lambda g: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': [(lambda g: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': [(lambda g: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': [(lambda g:g.V().group().by().by(__.out().label().tail(10).fold()).select(Column.values).unfold().order(Scope.local))], + 'g_V_groupXaX_byXnameX_by_selectXaX_countXlocalX': [(lambda g:g.V().group('a').by('name').by().select('a').count(Scope.local))], + 'g_V_localXgroupXaX_byXnameX_by_selectXaX_countXlocalXX': [(lambda g:g.V().local(__.group('a').by('name').by().select('a').count(Scope.local)))], + 'g_V_group_byXvaluesXnameXX_byXboth_countX': [(lambda g:g.V().group().by(__.values('name')).by(__.both().count()))], 'g_V_outXcreatedX_groupCount_byXnameX': [(lambda g:g.V().out('created').group_count().by('name'))], 'g_V_groupCount_byXageX': [(lambda g:g.V().group_count().by('age'))], - 'g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX': [(lambda g:g.with_strategies(*[TraversalStrategy('ProductiveByStrategy',{'productiveKeys':[],'strategy':'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy'}, 'org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.ProductiveByStrategy')]).V().group_count().by('age'))], - 'g_V_outXcreatedX_name_groupCount': [(lambda g:g.V().out('created').name.group_count())], + 'g_withStrategiesXProductiveByStrategyX_V_groupCount_byXageX': [(lambda g:g.with_strategies(ProductiveByStrategy()).V().group_count().by('age'))], + 'g_V_outXcreatedX_name_groupCount': [(lambda g:g.V().out('created').values('name').group_count())], 'g_V_outXcreatedX_groupCountXaX_byXnameX_capXaX': [(lambda g:g.V().out('created').group_count('a').by('name').cap('a'))], - 'g_V_outXcreatedX_name_groupCountXaX_capXaX': [(lambda g:g.V().out('created').name.group_count('a').cap('a'))], + 'g_V_outXcreatedX_name_groupCountXaX_capXaX': [(lambda g:g.V().out('created').values('name').group_count('a').cap('a'))], 'g_V_repeatXout_groupCountXaX_byXnameXX_timesX2X_capXaX': [(lambda g:g.V().repeat(__.out().group_count('a').by('name')).times(2).cap('a'))], - 'g_V_both_groupCountXaX_byXlabelX_asXbX_barrier_whereXselectXaX_selectXsoftwareX_isXgtX2XXX_selectXbX_name': [(lambda g:g.V().both().group_count('a').by(T.label).as_('b').barrier().where(__.select('a').select('software').is_(P.gt(2))).select('b').name)], - 'g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum': [(lambda g:g.V().union(__.out('knows'),__.out('created').in_('created')).group_count().select(Column.values).unfold().sum_())], + 'g_V_both_groupCountXaX_byXlabelX_asXbX_barrier_whereXselectXaX_selectXsoftwareX_isXgtX2XXX_selectXbX_name': [(lambda g:g.V().both().group_count('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': [(lambda g:g.V().union(__.out('knows'), __.out('created').in_('created')).group_count().select(Column.values).unfold().sum_())], 'g_V_hasXnoX_groupCount': [(lambda g:g.V().has('no').group_count())], 'g_V_hasXnoX_groupCountXaX_capXaX': [(lambda g:g.V().has('no').group_count('a').cap('a'))], - 'g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX': [(lambda g:g.V().union(__.repeat(__.out()).times(2).group_count('m').by('lang'),__.repeat(__.in_()).times(2).group_count('m').by('name')).cap('m'))], + 'g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX': [(lambda g:g.V().union(__.repeat(__.out()).times(2).group_count('m').by('lang'), __.repeat(__.in_()).times(2).group_count('m').by('name')).cap('m'))], 'g_V_outXcreatedX_groupCountXxX_capXxX': [(lambda g:g.V().out('created').group_count('x').cap('x'))], 'g_V_groupCount_byXbothE_countX': [(lambda g:g.V().group_count().by(__.both_e().count()))], - 'g_V_both_groupCountXaX_out_capXaX_selectXkeysX_unfold_both_groupCountXaX_capXaX': [(lambda g:g.V().both().group_count('a').out().cap('a').select(Column.keys).unfold().both().group_count('a').cap('a'))], - 'g_V_hasXperson_name_markoX_bothXknowsX_groupCount_byXvaluesXnameX_foldX': [(lambda g:g.V().has('person','name','marko').both('knows').group_count().by(__.name.fold()))], - 'g_VX1X_out_injectXv2X_name': [(lambda g, vid1=None,v2=None:g.V(vid1).out().inject(v2).name)], - 'g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path': [(lambda g, l1=None,vid1=None:g.V(vid1).out().name.inject('daniel').as_('a').map(l1).path())], - 'g_VX1X_injectXg_VX4XX_out_name': [(lambda g, vid1=None,v2=None:g.V(vid1).inject(v2).out().name)], - 'g_injectXnull_1_3_nullX': [(lambda g:g.inject(None,1,3,None))], - 'g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX': [(lambda g:g.inject(10,20,None,20,10,10).group_count('x').dedup().as_('y').project('a','b').by().by(__.select('x').select(__.select('y'))))], - 'g_injectXname_marko_age_nullX_selectXname_ageX': [(lambda g, xx1=None:g.inject(xx1).select('name','age'))], - 'g_injectXnull_nullX': [(lambda g:g.inject(None,None))], + 'g_V_both_localXgroupCountXaXX_out_capXaX_selectXkeysX_unfold_both_localXgroupCountXaXX_capXaX': [(lambda g:g.V().both().local(__.group_count('a')).out().cap('a').select(Column.keys).unfold().both().local(__.group_count('a')).cap('a'))], + 'g_V_hasXperson_name_markoX_bothXknowsX_groupCount_byXvaluesXnameX_foldX': [(lambda g:g.V().has('person', 'name', 'marko').both('knows').group_count().by(__.values('name').fold()))], + 'g_V_outXcreatedX_groupCount_byXnameX_byXageX': [(lambda g:g.V().out('created').group_count().by('name').by('age'))], + 'g_V_outXcreatedX_groupCountXxX_byXnameX_byXageX': [(lambda g:g.V().out('created').group_count('x').by('name').by('age'))], + 'g_V_groupCountXaX_selectXaX_countXlocalX': [(lambda g:g.V().group_count('a').select('a').count(Scope.local))], + 'g_V_localXgroupCountXaX_selectXaX_countXlocalXX': [(lambda g:g.V().local(__.group_count('a').select('a').count(Scope.local)))], + 'g_VX1X_out_name_injectXdanielX_asXaX_mapXlengthX_path': [(lambda g, vid1=None:g.V(vid1).out().values('name').inject('daniel').as_('a').map(__.length()).path())], + 'g_injectXnull_1_3_nullX': [(lambda g:g.inject(None, 1, 3, None))], + 'g_injectX10_20_null_20_10_10X_groupCountXxX_dedup_asXyX_projectXa_bX_by_byXselectXxX_selectXselectXyXXX': [(lambda g:g.inject(10, 20, None, 20, 10, 10).group_count('x').dedup().as_('y').project('a', 'b').by().by(__.select('x').select(__.select('y'))))], + 'g_injectXname_marko_age_nullX_selectXname_ageX': [(lambda g:g.inject({ 'name': 'marko', 'age': None }).select('name', 'age'))], + 'g_injectXnull_nullX': [(lambda g:g.inject(None, None))], 'g_injectXnullX': [(lambda g:g.inject(None))], 'g_inject': [(lambda g:g.inject())], - 'g_VX1X_valuesXageX_injectXnull_nullX': [(lambda g, xx1=None:g.V(xx1).age.inject(None,None))], - 'g_VX1X_valuesXageX_injectXnullX': [(lambda g, xx1=None:g.V(xx1).age.inject(None))], - 'g_VX1X_valuesXageX_inject': [(lambda g, xx1=None:g.V(xx1).age.inject())], - 'g_injectXnull_1_3_nullX_asXaX_selectXaX': [(lambda g:g.inject(None,1,3,None).as_('a').select('a'))], - 'g_injectX1_3lX_injectX100_300X': [(lambda g:g.inject(1,3).inject(100,300))], - 'g_injectXbigintBoundaryValuesX': [(lambda g, xx1=None,xx3=None,xx2=None:g.inject(xx1,xx2,xx3))], - 'g_injectXpoint5X': [(lambda g:g.inject(float(0.5)))], - 'g_injectXpoint5fX': [(lambda g:g.inject(float(0.5)))], - 'g_injectXpoint5dX': [(lambda g:g.inject(float(0.5)))], - 'g_injectX1to5X': [(lambda g:g.inject([1,2,3,4,5]))], - 'g_injectXaTocX': [(lambda g:g.inject(['a','b','c']))], + 'g_VX1X_valuesXageX_injectXnull_nullX': [(lambda g, xx1=None:g.V(xx1).values('age').inject(None, None))], + 'g_VX1X_valuesXageX_injectXnullX': [(lambda g, xx1=None:g.V(xx1).values('age').inject(None))], + 'g_VX1X_valuesXageX_inject': [(lambda g, xx1=None:g.V(xx1).values('age').inject())], + 'g_injectXnull_1_3_nullX_asXaX_selectXaX': [(lambda g:g.inject(None, 1, 3, None).as_('a').select('a'))], + 'g_injectX1_3X_injectX100_300X': [(lambda g:g.inject(1, 3).inject(100, 300))], + 'g_injectX1_3_100_300X_list': [(lambda g:g.inject([1, 3, 100, 300]))], + 'g_injectX1_3_100_300X_set': [(lambda g:g.inject({1, 3, 100, 300}))], + 'g_injectX1_1X_set': [(lambda g:g.inject({1, 1}))], + 'g_injectXbigintBoundaryValuesX': [(lambda g:g.inject(bigint(0), bigint(-129), bigint(-32769)))], ++ 'g_injectXpoint5X': [(lambda g:g.inject(.5))], ++ 'g_injectXpoint5fX': [(lambda g:g.inject(.5))], ++ 'g_injectXpoint5dX': [(lambda g:g.inject(.5))], 'g_io_readXkryoX': [(lambda g:g.io('data/tinkerpop-modern.kryo').read()), (lambda g:g.V()), (lambda g:g.E())], - 'g_io_read_withXreader_gryoX': [(lambda g:g.io('data/tinkerpop-modern.kryo').with_('~tinkerpop.io.reader','gryo').read()), (lambda g:g.V()), (lambda g:g.E())], + 'g_io_read_withXreader_gryoX': [(lambda g:g.io('data/tinkerpop-modern.kryo').with_(IO.reader, IO.gryo).read()), (lambda g:g.V()), (lambda g:g.E())], 'g_io_readXgraphsonX': [(lambda g:g.io('data/tinkerpop-modern.json').read()), (lambda g:g.V()), (lambda g:g.E())], - 'g_io_read_withXreader_graphsonX': [(lambda g:g.io('data/tinkerpop-modern.json').with_('~tinkerpop.io.reader','graphson').read()), (lambda g:g.V()), (lambda g:g.E())], + 'g_io_read_withXreader_graphsonX': [(lambda g:g.io('data/tinkerpop-modern.json').with_(IO.reader, IO.graphson).read()), (lambda g:g.V()), (lambda g:g.E())], 'g_io_readXgraphmlX': [(lambda g:g.io('data/tinkerpop-modern.xml').read()), (lambda g:g.V()), (lambda g:g.E())], - 'g_io_read_withXreader_graphmlX': [(lambda g:g.io('data/tinkerpop-modern.xml').with_('~tinkerpop.io.reader','graphml').read()), (lambda g:g.V()), (lambda g:g.E())], + 'g_io_read_withXreader_graphmlX': [(lambda g:g.io('data/tinkerpop-modern.xml').with_(IO.reader, IO.graphml).read()), (lambda g:g.V()), (lambda g:g.E())], + 'g_withSackX127bX_injectX1bX_sackXsumX_sack': [(lambda g:g.with_sack(127).inject(1).sack(Operator.sum_).sack())], + 'g_withSackX32767sX_injectX1sX_sackXsumX_sack': [(lambda g:g.with_sack(32767).inject(1).sack(Operator.sum_).sack())], + 'g_withSackX2147483647iX_injectX1iX_sackXsumX_sack': [(lambda g:g.with_sack(2147483647).inject(1).sack(Operator.sum_).sack())], + 'g_withSackX1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXsumX_sack': [(lambda g:g.with_sack(1.7976931348623157e+308).inject(1.7976931348623157e+308).sack(Operator.sum_).sack())], + 'g_withSackX_128bX_injectX1bX_sackXminusX_sack': [(lambda g:g.with_sack(-128).inject(1).sack(Operator.minus).sack())], + 'g_withSackX_32768sX_injectX1sX_sackXminusX_sack': [(lambda g:g.with_sack(-32768).inject(1).sack(Operator.minus).sack())], + 'g_withSackX_2147483648iX_injectX1iX_sackXminusX_sack': [(lambda g:g.with_sack(-2147483648).inject(1).sack(Operator.minus).sack())], + 'g_withSackX_1_7976931348623157E_308dX_injectX1_7976931348623157E_308dX_sackXminusX_sack': [(lambda g:g.with_sack(-1.7976931348623157e+308).inject(1.7976931348623157e+308).sack(Operator.minus).sack())], + 'g_withSackX127bX_injectX2bX_sackXmultX_sack': [(lambda g:g.with_sack(127).inject(2).sack(Operator.mult).sack())], + 'g_withSackX32767sX_injectX2sX_sackXmultX_sack': [(lambda g:g.with_sack(32767).inject(2).sack(Operator.mult).sack())], + 'g_withSackX2147483647iX_injectX2iX_sackXmultX_sack': [(lambda g:g.with_sack(2147483647).inject(2).sack(Operator.mult).sack())], + 'g_withSackX1_7976931348623157E_308dX_injectX2dX_sackXmultX_sack': [(lambda g:g.with_sack(1.7976931348623157e+308).inject(2).sack(Operator.mult).sack())], + 'g_withSackX127bX_injectX0_5fX_sackXdivX_sack': [(lambda g:g.with_sack(127).inject(0.5).sack(Operator.div).sack())], + 'g_withSackX32767sX_injectX0_5fX_sackXdivX_sack': [(lambda g:g.with_sack(32767).inject(0.5).sack(Operator.div).sack())], + 'g_withSackX2147483647iX_injectX0_5fX_sackXdivX_sack': [(lambda g:g.with_sack(2147483647).inject(0.5).sack(Operator.div).sack())], + 'g_withSackX1_7976931348623157E_308dX_injectX0_5dX_sackXdivX_sack': [(lambda g:g.with_sack(1.7976931348623157e+308).inject(0.5).sack(Operator.div).sack())], + 'g_withSackX_128bX_injectX_1bX_sackXdivX_sack': [(lambda g:g.with_sack(-128).inject(-1).sack(Operator.div).sack())], + 'g_withSackX_32768sX_injectX_1sX_sackXdivX_sack': [(lambda g:g.with_sack(-32768).inject(-1).sack(Operator.div).sack())], + 'g_withSackX_2147483648iX_injectX_1iX_sackXdivX_sack': [(lambda g:g.with_sack(-2147483648).inject(-1).sack(Operator.div).sack())], 'g_withSackXhelloX_V_outE_sackXassignX_byXlabelX_inV_sack': [(lambda g:g.with_sack('hello').V().out_e().sack(Operator.assign).by(T.label).in_v().sack())], - 'g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum': [(lambda g:g.with_sack(float(0.0)).V().out_e().sack(Operator.sum_).by('weight').in_v().sack().sum_())], - 'g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack': [(lambda g:g.with_sack(float(0.0)).V().repeat(__.out_e().sack(Operator.sum_).by('weight').in_v()).times(2).sack())], - 'g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack': [(lambda g, vid1=None:g.with_bulk(False).with_sack(float(1.0),Operator.sum_).V(vid1).local(__.out_e('knows').barrier(Barrier.norm_sack).in_v()).in_('knows').barrier().sack())], - 'g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack': [(lambda g:g.with_bulk(False).with_sack(1,Operator.sum_).V().out().barrier().sack())], - 'g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack': [(lambda g, vid1=None:g.with_sack(float(1.0),Operator.sum_).V(vid1).local(__.out('knows').barrier(Barrier.norm_sack)).in_('knows').barrier().sack())], + 'g_withSackX0X_V_outE_sackXsumX_byXweightX_inV_sack_sum': [(lambda g:g.with_sack(0.0).V().out_e().sack(Operator.sum_).by('weight').in_v().sack().sum_())], + 'g_withSackX0X_V_repeatXoutE_sackXsumX_byXweightX_inVX_timesX2X_sack': [(lambda g:g.with_sack(0.0).V().repeat(__.out_e().sack(Operator.sum_).by('weight').in_v()).times(2).sack())], + 'g_withBulkXfalseX_withSackX1_sumX_VX1X_localXoutEXknowsX_barrierXnormSackX_inVX_inXknowsX_barrier_sack': [(lambda g, vid1=None:g.with_bulk(False).with_sack(1.0, Operator.sum_).V(vid1).local(__.out_e('knows').barrier(Barrier.norm_sack).in_v()).in_('knows').barrier().sack())], + 'g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack': [(lambda g:g.with_bulk(False).with_sack(1, Operator.sum_).V().out().barrier().sack())], + 'g_withSackX1_sumX_VX1X_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack': [(lambda g, vid1=None:g.with_sack(1.0, Operator.sum_).V(vid1).local(__.out('knows').barrier(Barrier.norm_sack)).in_('knows').barrier().sack())], 'g_V_sackXassignX_byXageX_sack': [(lambda g:g.V().sack(Operator.assign).by('age').sack())], + 'g_withSackXBigInteger_TEN_powX1000X_assignX_V_localXoutXknowsX_barrierXnormSackXX_inXknowsX_barrier_sack': [(lambda g:g.with_sack(bigint(1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [...] + 'g_withSackX2X_V_sackXdivX_byXconstantX4_0XX_sack': [(lambda g:g.with_sack(2).V().sack(Operator.div).by(__.constant(4.0)).sack())], + 'g_V_sackXassignX_byXageX_byXnameX_sack': [(lambda g:g.V().sack(Operator.assign).by('age').by('name').sack())], + 'g_V_sideEffectXidentityX': [(lambda g:g.V().side_effect(__.identity()))], + 'g_V_sideEffectXidentity_valuesXnameXX': [(lambda g:g.V().side_effect(__.identity().values('name')))], + 'g_V_sideEffectXpropertyXsingle_age_22X': [(lambda g:g.add_v('person').property(Cardinality.single, 'age', 21)), (lambda g:g.V().side_effect(__.property(Cardinality.single, 'age', 22))), (lambda g:g.V().has('age', 21)), (lambda g:g.V().has('age', 22))], + 'g_V_group_byXvaluesXnameX_sideEffectXconstantXzyxXX_substringX1XX_byXconstantX1X_sideEffectXconstantXxyzXXX': [(lambda g:g.V().group().by(__.values('name').side_effect(__.constant('zyx')).substring(0, 1)).by(__.constant(1).side_effect(__.constant('xyz'))))], + 'g_withSideEffectXx_setX_V_both_both_sideEffectXlocalXaggregateXxX_byXnameXX_capXxX_unfold': [(lambda g:g.with_side_effect('x', set()).V().both().both().side_effect(__.local(__.aggregate('x').by('name'))).cap('x').unfold())], 'g_V_hasXageX_groupCountXaX_byXnameX_out_capXaX': [(lambda g:g.V().has('age').group_count('a').by('name').out().cap('a'))], 'g_V_groupXaX_byXageX_capXaX': [(lambda g:g.V().group('a').by('age').cap('a'))], 'g_V_groupXaX_byXnameX_capXaX': [(lambda g:g.V().group('a').by('name').cap('a'))], diff --cc gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/sideEffect/Inject.feature index 5f567c1c6c,148a7dea30..012afae94d --- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/sideEffect/Inject.feature +++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/sideEffect/Inject.feature @@@ -216,18 -258,40 +216,54 @@@ Feature: Step - inject( When iterated to list Then the result should be unordered | result | - | d[0.5].f | + | s[d[1].i] | @GraphComputerVerificationInjectionNotSupported - Scenario: g_injectXpoint5dX + Scenario: g_injectXbigintBoundaryValuesX + Given the empty graph + And the traversal of + """ + g.inject(0n, -129n, -32769n) + """ + When iterated to list + Then the result should be unordered + | result | + | d[0].n | + | d[-129].n | + | d[-32769].n | ++ ++ @GraphComputerVerificationInjectionNotSupported ++ Scenario: g_injectXpoint5X + Given the modern graph + And the traversal of + """ - g.inject(.5d) ++ g.inject(.5) + """ + When iterated to list + Then the result should be unordered + | result | + | d[0.5].d | + + @GraphComputerVerificationInjectionNotSupported - Scenario: g_injectX1to5X ++ Scenario: g_injectXpoint5fX + Given the modern graph + And the traversal of + """ - g.inject(1..5) ++ g.inject(.5f) + """ + When iterated to list + Then the result should be unordered + | result | - | l[d[1].i,d[2].i,d[3].i,d[4].i,d[5].i] | ++ | d[0.5].f | + + @GraphComputerVerificationInjectionNotSupported - Scenario: g_injectXaTocX ++ Scenario: g_injectXpoint5dX + Given the modern graph + And the traversal of + """ - g.inject("a".."c") ++ g.inject(.5d) + """ + When iterated to list + Then the result should be unordered + | result | - | l[a,b,c] | ++ | d[0.5].d |
