You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by kr...@apache.org on 2022/01/07 21:42:13 UTC

[tinkerpop] 11/15: Initial work on regex Gherkin scenarios

This is an automated email from the ASF dual-hosted git repository.

krlawrence pushed a commit to branch TINKERPOP-2652
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 051e0c73f97699829a2e824f50653402de7edfdf
Author: Ubuntu <ub...@ip-172-31-7-87.ec2.internal>
AuthorDate: Fri Dec 10 21:46:47 2021 +0000

    Initial work on regex Gherkin scenarios
---
 .../gremlin-javascript/test/cucumber/gremlin.js    |  2 ++
 gremlin-python/src/main/python/radish/gremlin.py   |  2 ++
 gremlin-test/features/filter/Has.feature           | 30 +++++++++++++++++++++-
 3 files changed, 33 insertions(+), 1 deletion(-)

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 52bb2c7..60f8c1a 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
@@ -203,6 +203,8 @@ const gremlins = {
     g_V_hasXname_not_containingXarkXX: [function({g}) { return g.V().has("name",TextP.notContaining("ark")) }], 
     g_V_hasXname_not_startingWithXmarXX: [function({g}) { return g.V().has("name",TextP.notStartingWith("mar")) }], 
     g_V_hasXname_not_endingWithXasXX: [function({g}) { return g.V().has("name",TextP.notEndingWith("as")) }], 
+    g_V_hasXname_regexX^MarXX: [function({g}) { return g.V().has("name",TextP.regex("^mar")) }], 
+    g_V_hasXname_notRegexX^MarXX: [function({g}) { return g.V().has("name",TextP.notRegex("^mar")) }], 
     g_V_hasXp_neqXvXX: [function({g}) { return g.V().has("p",P.neq("v")) }], 
     g_V_hasXage_gtX18X_andXltX30XXorXgtx35XXX: [function({g}) { return g.V().has("age",P.gt(18).and(P.lt(30)).or(P.gt(35))) }], 
     g_V_hasXage_gtX18X_andXltX30XXorXltx35XXX: [function({g}) { return g.V().has("age",P.gt(18).and(P.lt(30)).and(P.lt(35))) }], 
diff --git a/gremlin-python/src/main/python/radish/gremlin.py b/gremlin-python/src/main/python/radish/gremlin.py
index 850ee7e..79e08c9 100644
--- a/gremlin-python/src/main/python/radish/gremlin.py
+++ b/gremlin-python/src/main/python/radish/gremlin.py
@@ -188,6 +188,8 @@ world.gremlins = {
     'g_V_hasXname_not_containingXarkXX': [(lambda g:g.V().has('name',TextP.notContaining('ark')))], 
     'g_V_hasXname_not_startingWithXmarXX': [(lambda g:g.V().has('name',TextP.notStartingWith('mar')))], 
     'g_V_hasXname_not_endingWithXasXX': [(lambda g:g.V().has('name',TextP.notEndingWith('as')))], 
+    'g_V_hasXname_regexX^MarXX': [(lambda g:g.V().has('name',TextP.regex('^mar')))], 
+    'g_V_hasXname_notRegexX^MarXX': [(lambda g:g.V().has('name',TextP.notRegex('^mar')))], 
     'g_V_hasXp_neqXvXX': [(lambda g:g.V().has('p',P.neq('v')))], 
     'g_V_hasXage_gtX18X_andXltX30XXorXgtx35XXX': [(lambda g:g.V().has('age',P.gt(18).and_(P.lt(30)).or_(P.gt(35))))], 
     'g_V_hasXage_gtX18X_andXltX30XXorXltx35XXX': [(lambda g:g.V().has('age',P.gt(18).and_(P.lt(30)).and_(P.lt(35))))], 
diff --git a/gremlin-test/features/filter/Has.feature b/gremlin-test/features/filter/Has.feature
index bbb9ed4..85163fb 100644
--- a/gremlin-test/features/filter/Has.feature
+++ b/gremlin-test/features/filter/Has.feature
@@ -514,6 +514,33 @@ Feature: Step - has()
       | v[ripple] |
       | v[peter] |
 
+ Scenario: g_V_hasXname_regexX^MarXX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().has("name", TextP.regex("^mar"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+
+ Scenario: g_V_hasXname_notRegexX^MarXX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().has("name", TextP.notRegex("^mar"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[josh] |
+      | v[vadas] |
+      | v[lop] |
+      | v[ripple] |
+      | v[peter] |  
+
+
   Scenario: g_V_hasXp_neqXvXX
     Given the modern graph
     And the traversal of
@@ -675,4 +702,5 @@ Feature: Step - has()
     When iterated to list
     Then the result should be unordered
       | result |
-      | josh |
\ No newline at end of file
+      | josh |
+