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 <[email protected]> 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 | +
