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