You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by co...@apache.org on 2025/01/16 18:21:18 UTC
(tinkerpop) branch gvalue-range updated: add additional testing
This is an automated email from the ASF dual-hosted git repository.
colegreer pushed a commit to branch gvalue-range
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/gvalue-range by this push:
new 9bca521eff add additional testing
9bca521eff is described below
commit 9bca521eff92ba30d82a7dbd4123b75181df80f2
Author: Cole-Greer <Co...@improving.com>
AuthorDate: Thu Jan 16 10:21:10 2025 -0800
add additional testing
---
.../language/grammar/ArgumentVisitorTest.java | 17 +++++
.../gremlin/test/features/filter/Range.feature | 86 ++++++++++++++++++++++
.../gremlin/test/features/filter/Tail.feature | 26 +++++++
3 files changed, 129 insertions(+)
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
index ab5fbdcecb..003039560b 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
@@ -97,6 +97,18 @@ public class ArgumentVisitorTest {
{Integer.class, "x", GValue.of("x", 0L), createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 0L)))},
{Integer.class, "x", 0, createAntlr(new VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 0)))},
{Integer.class, "x", 0L, createAntlr(new VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 0L)))},
+ {Long.class, "x", new VariableResolverException("x"), createAntlr(VariableResolver.NoVariableResolver.instance())},
+ {Long.class, "0", 0L, createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 100)))},
+ {Long.class, "0i", 0L, createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 100)))},
+ {Long.class, "0L", 0L, createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 100)))},
+ {Long.class, "x", GValue.ofLong("x", 0L), createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", (byte) 0)))},
+ {Long.class, "x", GValue.ofLong("x", 0L), createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", (short) 0)))},
+ {Long.class, "x", GValue.ofLong("x", 0L), createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 0)))},
+ {Long.class, "x", GValue.ofLong("x", 0L), createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 0L)))},
+ {Long.class, "x", 0L, createAntlr(new VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", (byte) 0)))},
+ {Long.class, "x", 0L, createAntlr(new VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", (short) 0)))},
+ {Long.class, "x", 0L, createAntlr(new VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 0)))},
+ {Long.class, "x", 0L, createAntlr(new VariableResolver.DirectVariableResolver(ElementHelper.asMap("x", 0L)))},
{Float.class, "x", new VariableResolverException("x"), createAntlr(VariableResolver.NoVariableResolver.instance())},
{Float.class, "0.0d", 0.0, createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 1000.0)))},
{Float.class, "0d", 0.0, createAntlr(new VariableResolver.DefaultVariableResolver(ElementHelper.asMap("x", 1000.0)))},
@@ -163,6 +175,11 @@ public class ArgumentVisitorTest {
final GremlinParser.IntegerArgumentContext ctx = parser.integerArgument();
return antlrToLanguage.argumentVisitor.visitIntegerArgument(ctx);
});
+ } else if (clazz.equals(Long.class)) {
+ assertParsing(() -> {
+ final GremlinParser.IntegerArgumentContext ctx = parser.integerArgument();
+ return antlrToLanguage.argumentVisitor.parseLong(ctx);
+ });
} else if (clazz.equals(Float.class)) {
assertParsing(() -> {
final GremlinParser.FloatArgumentContext ctx = parser.floatArgument();
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Range.feature b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Range.feature
index d185d47f8e..cae49f7594 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Range.feature
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Range.feature
@@ -33,6 +33,22 @@ Feature: Step - range()
| v[lop] |
And the result should have a count of 2
+ Scenario: g_VX1X_out_limitX2varX
+ Given the modern graph
+ And using the parameter vid1 defined as "v[marko].id"
+ And using the parameter xx1 defined as "d[2].i"
+ And the traversal of
+ """
+ g.V(vid1).out().limit(xx1)
+ """
+ When iterated to list
+ Then the result should be of
+ | result |
+ | v[josh] |
+ | v[vadas] |
+ | v[lop] |
+ And the result should have a count of 2
+
Scenario: g_V_localXoutE_limitX1X_inVX_limitX3X
Given the modern graph
And the traversal of
@@ -91,6 +107,23 @@ Feature: Step - range()
| v[peter] |
And the result should have a count of 2
+ Scenario: g_VX1X_outXcreatedX_inXcreatedX_rangeX1var_3varX
+ Given the modern graph
+ And using the parameter vid1 defined as "v[marko].id"
+ And using the parameter xx1 defined as "d[1].i"
+ And using the parameter xx2 defined as "d[3].i"
+ And the traversal of
+ """
+ g.V(vid1).out("created").in("created").range(xx1, xx2)
+ """
+ When iterated to list
+ Then the result should be of
+ | result |
+ | v[marko] |
+ | v[josh] |
+ | v[peter] |
+ And the result should have a count of 2
+
Scenario: g_VX1X_outXcreatedX_inEXcreatedX_rangeX1_3X_outV
Given the modern graph
And using the parameter vid1 defined as "v[marko].id"
@@ -135,6 +168,19 @@ Feature: Step - range()
| m[{"a":"lop","b":"josh"}] |
| m[{"a":"ripple","b":"josh"}] |
+ Scenario: g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_2varX
+ Given the modern graph
+ And using the parameter xx1 defined as "d[2].i"
+ And the traversal of
+ """
+ g.V().as("a").in().as("b").in().as("c").select("a","b","c").by("name").limit(Scope.local, xx1)
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"a":"lop","b":"josh"}] |
+ | m[{"a":"ripple","b":"josh"}] |
+
Scenario: g_V_asXaX_in_asXbX_in_asXcX_selectXa_b_cX_byXnameX_limitXlocal_1X
Given the modern graph
And the traversal of
@@ -159,6 +205,20 @@ Feature: Step - range()
| m[{"b":"josh","c":"lop"}] |
| m[{"b":"josh","c":"ripple"}] |
+ Scenario: g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1var_3varX
+ Given the modern graph
+ And using the parameter xx1 defined as "d[1].i"
+ And using the parameter xx2 defined as "d[3].i"
+ And the traversal of
+ """
+ g.V().as("a").out().as("b").out().as("c").select("a","b","c").by("name").range(Scope.local, xx1, xx2)
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"b":"josh","c":"lop"}] |
+ | m[{"b":"josh","c":"ripple"}] |
+
Scenario: g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_rangeXlocal_1_2X
Given the modern graph
And the traversal of
@@ -184,6 +244,20 @@ Feature: Step - range()
| josh |
| peter |
+ Scenario: g_V_hasLabelXpersonX_order_byXageX_skipX1varX_valuesXnameX
+ Given the modern graph
+ And using the parameter xx1 defined as "d[1].i"
+ And the traversal of
+ """
+ g.V().hasLabel("person").order().by("age").skip(xx1).values("name")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | marko |
+ | josh |
+ | peter |
+
@GraphComputerVerificationReferenceOnly
Scenario: g_V_foldX_rangeXlocal_6_7X
Given the modern graph
@@ -205,6 +279,18 @@ Feature: Step - range()
| result |
| l[d[0.4].d,d[0.5].d,d[1.0].d,d[1.0].d] |
+ Scenario: g_V_outE_valuesXweightX_fold_orderXlocalX_skipXlocal_2varX
+ Given the modern graph
+ And using the parameter xx1 defined as "d[2].i"
+ And the traversal of
+ """
+ g.V().outE().values("weight").fold().order(Scope.local).skip(Scope.local, xx1)
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | l[d[0.4].d,d[0.5].d,d[1.0].d,d[1.0].d] |
+
Scenario: g_V_hasLabelXpersonX_order_byXageX_valuesXnameX_skipX1X
Given the modern graph
And the traversal of
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Tail.feature b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Tail.feature
index e8a2284c77..1fb3d215bd 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Tail.feature
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/Tail.feature
@@ -42,6 +42,19 @@ Feature: Step - tail()
| ripple |
| vadas |
+ Scenario: g_V_valuesXnameX_order_tailX2varX
+ Given the modern graph
+ And using the parameter xx1 defined as "d[2].i"
+ And the traversal of
+ """
+ g.V().values("name").order().tail(xx1)
+ """
+ When iterated to list
+ Then the result should be ordered
+ | result |
+ | ripple |
+ | vadas |
+
Scenario: g_V_valuesXnameX_order_tail
Given the modern graph
And the traversal of
@@ -127,6 +140,19 @@ Feature: Step - tail()
| m[{"b":"josh","c":"ripple"}] |
| m[{"b":"josh","c":"lop"}] |
+ Scenario: g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_2varX
+ Given the modern graph
+ And using the parameter xx1 defined as "d[2].i"
+ And the traversal of
+ """
+ g.V().as("a").out().as("b").out().as("c").select("a","b","c").by("name").tail(Scope.local, xx1)
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | m[{"b":"josh","c":"ripple"}] |
+ | m[{"b":"josh","c":"lop"}] |
+
Scenario: g_V_asXaX_out_asXbX_out_asXcX_selectXa_b_cX_byXnameX_tailXlocal_1X
Given the modern graph
And the traversal of