This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a commit to branch TINKERPOP-3178
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/TINKERPOP-3178 by this push:
new 80d57aec26 wip
80d57aec26 is described below
commit 80d57aec263dfe7527456c38398b52e0470ef6d3
Author: Stephen Mallette <[email protected]>
AuthorDate: Fri Jul 25 07:21:14 2025 -0400
wip
---
.../test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 4 ++++
gremlin-go/driver/cucumber/gremlin.go | 4 ++++
.../javascript/gremlin-javascript/test/cucumber/gremlin.js | 4 ++++
gremlin-python/src/main/python/radish/gremlin.py | 4 ++++
.../tinkerpop/gremlin/test/features/branch/Choose.feature | 10 ++++++----
5 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index a2b97772c0..37a1b82a3b 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -77,6 +77,10 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
{"g_injectX2X_chooseXisX1X__constantX10Xfold__foldX", new
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p) =>g.Inject<object>(p["xx3"]).Choose<object>(__.Is(p["xx2"]),
__.Constant<object>(p["xx1"]).Fold(), __.Fold<object>())}},
{"g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_constantXxXX_optionXbetweenX20_30X_constantXzXX_optionXnone_constantXzXX",
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p)
=>g.V().HasLabel("person").Choose<object>(__.Values<object>("age")).Option(P.Between(26,
30), __.Constant<object>("x")).Option(P.Between(20, 30),
__.Constant<object>("y")).Option(Pick.None, __.Constant<object>("z"))}},
{"g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_nameX",
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p)
=>g.V().HasLabel("person").Choose<object>(__.Values<object>("age")).Option(P.Between(26,
30), __.Values<object>("name")).Option(Pick.None,
__.Values<object>("name"))}},
+
{"g_V_chooseXhasLabelXpersonX_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX",
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p)
=>g.V().HasLabel("person").Local<object>(__.Choose<object>(__.Values<object>("age")).Option(P.Between(26,
30), __.Values<object>("name").Fold()).Option(Pick.None,
__.Values<object>("name").Fold()))}},
+
{"g_V_chooseXhasLabelXpersonX_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX",
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p)
=>g.V().HasLabel("person").Map<object>(__.Choose<object>(__.Values<object>("age")).Option(P.Between(26,
30), __.Values<object>("name").Fold()).Option(Pick.None,
__.Values<object>("name").Fold()))}},
+
{"g_unionXV_VXhasLabelXpersonX_barrier_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX",
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p) =>g.Union<object>(__.V(),
__.V()).HasLabel("person").Barrier().Local<object>(__.Choose<object>(__.Values<object>("age")).Option(P.Between(26,
30), __.Values<object>("name").Fold()).Option(Pick.None,
__.Values<object>("name").Fold()))}},
+
{"g_unionXV_VXhasLabelXpersonX_barrier_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX",
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p) =>g.Union<object>(__.V(),
__.V()).HasLabel("person").Barrier().Map<object>(__.Choose<object>(__.Values<object>("age")).Option(P.Between(26,
30), __.Values<object>("name").Fold()).Option(Pick.None,
__.Values<object>("name").Fold()))}},
{"g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value", new
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p)
=>g.V().Local<object>(__.Properties<object>("location").Order().By(T.Value,
Order.Asc).Range<object>(0, 2)).Value<object>()}},
{"g_V_hasXlabel_personX_asXaX_localXoutXcreatedX_asXbXX_selectXa_bX_byXnameX_byXidX",
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>>
{(g,p) =>g.V().Has(T.Label,
"person").As("a").Local<object>(__.Out("created").As("b")).Select<object>("a",
"b").By("name").By(T.Id)}},
{"g_V_localXoutE_countX", new List<Func<GraphTraversalSource,
IDictionary<string, object>, ITraversal>> {(g,p)
=>g.V().Local<object>(__.OutE().Count())}},
diff --git a/gremlin-go/driver/cucumber/gremlin.go
b/gremlin-go/driver/cucumber/gremlin.go
index 07b3f64f7e..d359bb8fd3 100644
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@ -47,6 +47,10 @@ var translationMap = map[string][]func(g
*gremlingo.GraphTraversalSource, p map[
"g_injectX2X_chooseXisX1X__constantX10Xfold__foldX": {func(g
*gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return
g.Inject(p["xx3"]).Choose(gremlingo.T__.Is(p["xx2"]),
gremlingo.T__.Constant(p["xx1"]).Fold(), gremlingo.T__.Fold())}},
"g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_constantXxXX_optionXbetweenX20_30X_constantXzXX_optionXnone_constantXzXX":
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return
g.V().HasLabel("person").Choose(gremlingo.T__.Values("age")).Option(gremlingo.P.Between(26,
30), gremlingo.T__.Constant("x")).Option(gremlingo.P.Between(20, 30),
gremlingo.T__.Constant("y")).Option(gremlingo.Pick.None,
gremlingo.T__.Constant("z"))}},
"g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_nameX":
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return
g.V().HasLabel("person").Choose(gremlingo.T__.Values("age")).Option(gremlingo.P.Between(26,
30), gremlingo.T__.Values("name")).Option(gremlingo.Pick.None,
gremlingo.T__.Values("name"))}},
+
"g_V_chooseXhasLabelXpersonX_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX":
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return
g.V().HasLabel("person").Local(gremlingo.T__.Choose(gremlingo.T__.Values("age")).Option(gremlingo.P.Between(26,
30), gremlingo.T__.Values("name").Fold()).Option(gremlingo.Pick.None,
gremlingo.T__.Values("name").Fold()))}},
+
"g_V_chooseXhasLabelXpersonX_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX":
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return
g.V().HasLabel("person").Map(gremlingo.T__.Choose(gremlingo.T__.Values("age")).Option(gremlingo.P.Between(26,
30), gremlingo.T__.Values("name").Fold()).Option(gremlingo.Pick.None,
gremlingo.T__.Values("name").Fold()))}},
+
"g_unionXV_VXhasLabelXpersonX_barrier_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX":
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V(),
gremlingo.T__.V()).HasLabel("person").Barrier().Local(gremlingo.T__.Choose(gremlingo.T__.Values("age")).Option(gremlingo.P.Between(26,
30), gremlingo.T__.Values("name").Fold()).Option(gremlingo.Pick.None,
gremlingo.T__.Values("name").Fold()))}},
+
"g_unionXV_VXhasLabelXpersonX_barrier_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX":
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return g.Union(gremlingo.T__.V(),
gremlingo.T__.V()).HasLabel("person").Barrier().Map(gremlingo.T__.Choose(gremlingo.T__.Values("age")).Option(gremlingo.P.Between(26,
30), gremlingo.T__.Values("name").Fold()).Option(gremlingo.Pick.None,
gremlingo.T__.Values("name").Fold()))}},
"g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value": {func(g
*gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return
g.V().Local(gremlingo.T__.Properties("location").Order().By(gremlingo.T.Value,
gremlingo.Order.Asc).Range(0, 2)).Value()}},
"g_V_hasXlabel_personX_asXaX_localXoutXcreatedX_asXbXX_selectXa_bX_byXnameX_byXidX":
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{})
*gremlingo.GraphTraversal {return g.V().Has(gremlingo.T.Label,
"person").As("a").Local(gremlingo.T__.Out("created").As("b")).Select("a",
"b").By("name").By(gremlingo.T.Id)}},
"g_V_localXoutE_countX": {func(g *gremlingo.GraphTraversalSource, p
map[string]interface{}) *gremlingo.GraphTraversal {return
g.V().Local(gremlingo.T__.OutE().Count())}},
diff --git
a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
index bb99c73e56..2f6a869905 100644
---
a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
+++
b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/gremlin.js
@@ -77,6 +77,10 @@ const gremlins = {
g_injectX2X_chooseXisX1X__constantX10Xfold__foldX: [function({g, xx1, xx3,
xx2}) { return g.inject(xx3).choose(__.is(xx2), __.constant(xx1).fold(),
__.fold()) }],
g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_constantXxXX_optionXbetweenX20_30X_constantXzXX_optionXnone_constantXzXX:
[function({g}) { return
g.V().hasLabel("person").choose(__.values("age")).option(P.between(26, 30),
__.constant("x")).option(P.between(20, 30), __.constant("y")).option(Pick.none,
__.constant("z")) }],
g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_nameX:
[function({g}) { return
g.V().hasLabel("person").choose(__.values("age")).option(P.between(26, 30),
__.values("name")).option(Pick.none, __.values("name")) }],
+
g_V_chooseXhasLabelXpersonX_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX:
[function({g}) { return
g.V().hasLabel("person").local(__.choose(__.values("age")).option(P.between(26,
30), __.values("name").fold()).option(Pick.none, __.values("name").fold())) }],
+
g_V_chooseXhasLabelXpersonX_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX:
[function({g}) { return
g.V().hasLabel("person").map(__.choose(__.values("age")).option(P.between(26,
30), __.values("name").fold()).option(Pick.none, __.values("name").fold())) }],
+
g_unionXV_VXhasLabelXpersonX_barrier_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX:
[function({g}) { return g.union(__.V(),
__.V()).hasLabel("person").barrier().local(__.choose(__.values("age")).option(P.between(26,
30), __.values("name").fold()).option(Pick.none, __.values("name").fold()))
}],
+
g_unionXV_VXhasLabelXpersonX_barrier_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX:
[function({g}) { return g.union(__.V(),
__.V()).hasLabel("person").barrier().map(__.choose(__.values("age")).option(P.between(26,
30), __.values("name").fold()).option(Pick.none, __.values("name").fold()))
}],
g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value:
[function({g}) { return
g.V().local(__.properties("location").order().by(T.value, Order.asc).range(0,
2)).value() }],
g_V_hasXlabel_personX_asXaX_localXoutXcreatedX_asXbXX_selectXa_bX_byXnameX_byXidX:
[function({g}) { return g.V().has(T.label,
"person").as("a").local(__.out("created").as("b")).select("a",
"b").by("name").by(T.id) }],
g_V_localXoutE_countX: [function({g}) { return
g.V().local(__.outE().count()) }],
diff --git a/gremlin-python/src/main/python/radish/gremlin.py
b/gremlin-python/src/main/python/radish/gremlin.py
index 3616d5a8e6..bca32cceba 100644
--- a/gremlin-python/src/main/python/radish/gremlin.py
+++ b/gremlin-python/src/main/python/radish/gremlin.py
@@ -50,6 +50,10 @@ world.gremlins = {
'g_injectX2X_chooseXisX1X__constantX10Xfold__foldX': [(lambda g,
xx1=None,xx3=None,xx2=None:g.inject(xx3).choose(__.is_(xx2),
__.constant(xx1).fold(), __.fold()))],
'g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_constantXxXX_optionXbetweenX20_30X_constantXzXX_optionXnone_constantXzXX':
[(lambda
g:g.V().has_label('person').choose(__.values('age')).option(P.between(26, 30),
__.constant('x')).option(P.between(20, 30), __.constant('y')).option(Pick.none,
__.constant('z')))],
'g_V_chooseXhasLabelXpersonX_chooseXageX_optionXbetweenX26_30X_nameX_optionXnone_nameX':
[(lambda
g:g.V().has_label('person').choose(__.values('age')).option(P.between(26, 30),
__.values('name')).option(Pick.none, __.values('name')))],
+
'g_V_chooseXhasLabelXpersonX_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX':
[(lambda
g:g.V().has_label('person').local(__.choose(__.values('age')).option(P.between(26,
30), __.values('name').fold()).option(Pick.none, __.values('name').fold())))],
+
'g_V_chooseXhasLabelXpersonX_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX':
[(lambda
g:g.V().has_label('person').map(__.choose(__.values('age')).option(P.between(26,
30), __.values('name').fold()).option(Pick.none, __.values('name').fold())))],
+
'g_unionXV_VXhasLabelXpersonX_barrier_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX':
[(lambda g:g.union(__.V(),
__.V()).has_label('person').barrier().local(__.choose(__.values('age')).option(P.between(26,
30), __.values('name').fold()).option(Pick.none, __.values('name').fold())))],
+
'g_unionXV_VXhasLabelXpersonX_barrier_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX':
[(lambda g:g.union(__.V(),
__.V()).has_label('person').barrier().map(__.choose(__.values('age')).option(P.between(26,
30), __.values('name').fold()).option(Pick.none, __.values('name').fold())))],
'g_V_localXpropertiesXlocationX_order_byXvalueX_limitX2XX_value': [(lambda
g:g.V().local(__.properties('location').order().by(T.value,
Order.asc).range_(0, 2)).value())],
'g_V_hasXlabel_personX_asXaX_localXoutXcreatedX_asXbXX_selectXa_bX_byXnameX_byXidX':
[(lambda g:g.V().has(T.label,
'person').as_('a').local(__.out('created').as_('b')).select('a',
'b').by('name').by(T.id_))],
'g_V_localXoutE_countX': [(lambda g:g.V().local(__.out_e().count()))],
diff --git
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Choose.feature
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Choose.feature
index 9ba4f40674..5b3a8a89ef 100644
---
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Choose.feature
+++
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/branch/Choose.feature
@@ -222,6 +222,7 @@ Feature: Step - choose()
| l[josh] |
| l[peter] |
+ @GraphComputerVerificationMidVNotSupported
Scenario:
g_unionXV_VXhasLabelXpersonX_barrier_localXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX
Given the modern graph
And the traversal of
@@ -234,11 +235,12 @@ Feature: Step - choose()
When iterated to list
Then the result should be unordered
| result |
- | l[marko, marko] |
- | l[vadas, vadas] |
- | l[josh, josh] |
- | l[peter, peter] |
+ | l[marko,marko] |
+ | l[vadas,vadas] |
+ | l[josh,josh] |
+ | l[peter,peter] |
+ @GraphComputerVerificationMidVNotSupported
Scenario:
g_unionXV_VXhasLabelXpersonX_barrier_mapXchooseXageX_optionXbetweenX26_30X_name_foldX_optionXnone_name_foldXX
Given the modern graph
And the traversal of