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

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit ce8a452549f5a3f647cbfb1fa2fc8037030d1f97
Author: Stephen Mallette <[email protected]>
AuthorDate: Tue Jul 30 10:26:35 2024 -0400

    Get rid of P as a parameter in gherkin
    
    P can't really be used that way in the grammar so doesn't make sense to 
test that way.
---
 .../Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs    |  7 -------
 .../test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs   |  8 ++++----
 gremlin-go/driver/cucumber/cucumberSteps_test.go          | 15 +--------------
 gremlin-go/driver/cucumber/gremlin.go                     |  8 ++++----
 .../gremlin-javascript/test/cucumber/feature-steps.js     |  4 ----
 .../gremlin-javascript/test/cucumber/gremlin.js           |  8 ++++----
 gremlin-python/src/main/python/radish/feature_steps.py    | 11 -----------
 gremlin-python/src/main/python/radish/gremlin.py          |  8 ++++----
 .../apache/tinkerpop/gremlin/features/StepDefinition.java |  5 -----
 .../tinkerpop/gremlin/test/features/filter/HasId.feature  | 13 +++++--------
 10 files changed, 22 insertions(+), 65 deletions(-)

diff --git 
a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
index 98f8b0b5b4..98d49d8df7 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/CommonSteps.cs
@@ -115,13 +115,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
             _parameters.Add(name, parsedValue);
         }
 
-        [Given("using the parameter (\\w+) of P.(\\w+)\\(\"(.*)\"\\)")]
-        public void UsingParameterP(string name, string pval, string value)
-        {
-            var parsedValue = ParseValue(value.Replace("\\\"", "\""), 
_graphName!);
-            _parameters.Add(name, new P(pval, parsedValue));
-        }
-
         [Given("the traversal of")]
         public void TranslateTraversal(string traversalText)
         {
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index bd0a8e7469..c8cb66068e 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -268,9 +268,9 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_V_hasXlabel_isXpersonXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has(T.Label, __.Is("person"))}}, 
                {"g_V_hasXname_nullX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().Has("name", (object) 
null)}}, 
                {"g_V_hasIdXemptyX_count", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().HasId(p["xx1"]).Count()}}, 
-               {"g_V_hasIdXwithinXemptyXX_count", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().HasId(p["xx1"]).Count()}}, 
-               {"g_V_hasIdXwithoutXemptyXX_count", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().HasId(p["xx1"]).Count()}}, 
-               {"g_V_notXhasIdXwithinXemptyXXX_count", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Not(__.HasId(p["xx1"])).Count()}}, 
+               {"g_V_hasIdXwithinXemptyXX_count", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().HasId(P.Within(new List<object> {  })).Count()}}, 
+               {"g_V_hasIdXwithoutXemptyXX_count", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().HasId(P.Without(new List<object> {  })).Count()}}, 
+               {"g_V_notXhasIdXwithinXemptyXXX_count", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Not(__.HasId(P.Within(new List<object> {  }))).Count()}}, 
                {"g_V_hasIdXnullX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasId(null)}}, 
                {"g_V_hasIdXeqXnullXX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasId(P.Eq(null))}}, 
                {"g_V_hasIdX2_nullX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasId(p["vid2"], 
null)}}, 
@@ -278,7 +278,7 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_V_hasIdX1AsString_2AsString_nullX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().HasId(p["vid1"], p["vid2"], null)}}, 
                {"g_V_hasIdXnull_2X", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().HasId(null, 
p["vid2"])}}, 
                {"g_V_hasIdX1X_hasIdX2X", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().HasId(p["vid1"]).HasId(p["vid2"])}}, 
-               {"g_V_in_hasIdXneqX1XX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().In().HasId(p["xx1"])}}, 
+               {"g_V_in_hasIdXneqX1XX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V().In().HasId(P.Neq(p["xx1"]))}}, 
                {"g_VX1X_out_hasIdX2X", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V(p["vid1"]).Out().HasId(p["vid2"])}}, 
                {"g_VX1X_out_hasXid_2_3X", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V(p["vid1"]).Out().HasId(p["vid2"], p["vid3"])}}, 
                {"g_VX1X_out_hasXid_2AsString_3AsStringX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Out().HasId(p["vid2"], p["vid3"])}}, 
diff --git a/gremlin-go/driver/cucumber/cucumberSteps_test.go 
b/gremlin-go/driver/cucumber/cucumberSteps_test.go
index fd49c7d8b4..38fbdb6207 100644
--- a/gremlin-go/driver/cucumber/cucumberSteps_test.go
+++ b/gremlin-go/driver/cucumber/cucumberSteps_test.go
@@ -47,7 +47,7 @@ var parsers map[*regexp.Regexp]func(string, string) 
interface{}
 
 func init() {
        parsers = map[*regexp.Regexp]func(string, string) interface{}{
-               regexp.MustCompile(`^str\[(.*)]$`): func(stringVal, graphName 
string) interface{} { return stringVal }, //returns the string value as is
+               regexp.MustCompile(`^str\[(.*)]$`):          func(stringVal, 
graphName string) interface{} { return stringVal }, //returns the string value 
as is
                regexp.MustCompile(`^dt\[(.*)]$`):           toDateTime,
                regexp.MustCompile(`^d\[(.*)]\.[bslfdmn]$`): toNumeric,
                regexp.MustCompile(`^d\[(.*)]\.[i]$`):       toInt32,
@@ -821,18 +821,6 @@ func (tg *tinkerPopGraph) usingTheParameterDefined(name 
string, params string) e
        return nil
 }
 
-func (tg *tinkerPopGraph) usingTheParameterOfP(paramName, pVal, stringVal 
string) error {
-       predicate := 
reflect.ValueOf(gremlingo.P).MethodByName(strings.Title(pVal)).Interface().(func(...interface{})
 gremlingo.Predicate)
-       values := parseValue(stringVal, tg.graphName)
-       switch reflect.TypeOf(values).Kind() {
-       case reflect.Array, reflect.Slice:
-               tg.parameters[paramName] = predicate(values.([]interface{})...)
-       default:
-               tg.parameters[paramName] = predicate(values)
-       }
-       return nil
-}
-
 func (tg *tinkerPopGraph) theTraversalWillRaiseAnError() error {
        if _, ok := tg.error[true]; ok {
                return nil
@@ -912,7 +900,6 @@ func InitializeScenario(ctx *godog.ScenarioContext) {
        ctx.Step(`^the result should have a count of (\d+)$`, 
tg.theResultShouldHaveACountOf)
        ctx.Step(`^the traversal of$`, tg.theTraversalOf)
        ctx.Step(`^using the parameter (.+) defined as "(.+)"$`, 
tg.usingTheParameterDefined)
-       ctx.Step(`^using the parameter (.+) of P\.(.+)\("(.+)"\)$`, 
tg.usingTheParameterOfP)
        ctx.Step(`^the traversal will raise an error$`, 
tg.theTraversalWillRaiseAnError)
        ctx.Step(`^the traversal will raise an error with message (\w+) text of 
"(.+)"$`, tg.theTraversalWillRaiseAnErrorWithMessageContainingTextOf)
 }
diff --git a/gremlin-go/driver/cucumber/gremlin.go 
b/gremlin-go/driver/cucumber/gremlin.go
index bcb230d8a3..dce86e0083 100644
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@ -239,9 +239,9 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_V_hasXlabel_isXpersonXX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().Has(gremlingo.T.Label, gremlingo.T__.Is("person"))}}, 
     "g_V_hasXname_nullX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("name", 
nil)}}, 
     "g_V_hasIdXemptyX_count": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().HasId(p["xx1"]).Count()}}, 
-    "g_V_hasIdXwithinXemptyXX_count": {func(g *gremlingo.GraphTraversalSource, 
p map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().HasId(p["xx1"]).Count()}}, 
-    "g_V_hasIdXwithoutXemptyXX_count": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().HasId(p["xx1"]).Count()}}, 
-    "g_V_notXhasIdXwithinXemptyXXX_count": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Not(gremlingo.T__.HasId(p["xx1"])).Count()}}, 
+    "g_V_hasIdXwithinXemptyXX_count": {func(g *gremlingo.GraphTraversalSource, 
p map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().HasId(gremlingo.P.Within([]interface{}{})).Count()}}, 
+    "g_V_hasIdXwithoutXemptyXX_count": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().HasId(gremlingo.P.Without([]interface{}{})).Count()}}, 
+    "g_V_notXhasIdXwithinXemptyXXX_count": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Not(gremlingo.T__.HasId(gremlingo.P.Within([]interface{}{}))).Count()}}, 
     "g_V_hasIdXnullX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V().HasId(nil)}}, 
     "g_V_hasIdXeqXnullXX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().HasId(gremlingo.P.Eq(nil))}}, 
     "g_V_hasIdX2_nullX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().HasId(p["vid2"], nil)}}, 
@@ -249,7 +249,7 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_V_hasIdX1AsString_2AsString_nullX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().HasId(p["vid1"], p["vid2"], nil)}}, 
     "g_V_hasIdXnull_2X": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V().HasId(nil, 
p["vid2"])}}, 
     "g_V_hasIdX1X_hasIdX2X": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().HasId(p["vid1"]).HasId(p["vid2"])}}, 
-    "g_V_in_hasIdXneqX1XX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().In().HasId(p["xx1"])}}, 
+    "g_V_in_hasIdXneqX1XX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().In().HasId(gremlingo.P.Neq(p["xx1"]))}}, 
     "g_VX1X_out_hasIdX2X": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Out().HasId(p["vid2"])}}, 
     "g_VX1X_out_hasXid_2_3X": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Out().HasId(p["vid2"], p["vid3"])}}, 
     "g_VX1X_out_hasXid_2AsString_3AsStringX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid1"]).Out().HasId(p["vid2"], 
p["vid3"])}}, 
diff --git 
a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
 
b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
index 1f74a2f91d..9ee036199e 100644
--- 
a/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
+++ 
b/gremlin-javascript/src/main/javascript/gremlin-javascript/test/cucumber/feature-steps.js
@@ -114,10 +114,6 @@ Given('the traversal of', function (traversalText) {
   this.traversal = gremlin[this.scenario].shift()(p);
 });
 
-Given(/^using the parameter (.+) of P\.(.+)\("(.+)"\)$/, function (paramName, 
pval, stringValue) {
-  this.parameters[paramName] =  new P(pval, parseValue.call(this, stringValue))
-});
-
 Given(/^using the parameter (.+) defined as "(.+)"$/, function (paramName, 
stringValue) {
   // Remove escaped chars
   stringValue = stringValue.replace(/\\"/g, '"');
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 8e0a3c8598..1843c681c9 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
@@ -260,9 +260,9 @@ const gremlins = {
     g_V_hasXlabel_isXpersonXX: [function({g}) { return g.V().has(T.label, 
__.is("person")) }], 
     g_V_hasXname_nullX: [function({g}) { return g.V().has("name", null) }], 
     g_V_hasIdXemptyX_count: [function({g, xx1}) { return 
g.V().hasId(xx1).count() }], 
-    g_V_hasIdXwithinXemptyXX_count: [function({g, xx1}) { return 
g.V().hasId(xx1).count() }], 
-    g_V_hasIdXwithoutXemptyXX_count: [function({g, xx1}) { return 
g.V().hasId(xx1).count() }], 
-    g_V_notXhasIdXwithinXemptyXXX_count: [function({g, xx1}) { return 
g.V().not(__.hasId(xx1)).count() }], 
+    g_V_hasIdXwithinXemptyXX_count: [function({g}) { return 
g.V().hasId(P.within([])).count() }], 
+    g_V_hasIdXwithoutXemptyXX_count: [function({g}) { return 
g.V().hasId(P.without([])).count() }], 
+    g_V_notXhasIdXwithinXemptyXXX_count: [function({g}) { return 
g.V().not(__.hasId(P.within([]))).count() }], 
     g_V_hasIdXnullX: [function({g}) { return g.V().hasId(null) }], 
     g_V_hasIdXeqXnullXX: [function({g}) { return g.V().hasId(P.eq(null)) }], 
     g_V_hasIdX2_nullX: [function({g, vid2}) { return g.V().hasId(vid2, null) 
}], 
@@ -270,7 +270,7 @@ const gremlins = {
     g_V_hasIdX1AsString_2AsString_nullX: [function({g, vid2, vid1}) { return 
g.V().hasId(vid1, vid2, null) }], 
     g_V_hasIdXnull_2X: [function({g, vid2}) { return g.V().hasId(null, vid2) 
}], 
     g_V_hasIdX1X_hasIdX2X: [function({g, vid2, vid1}) { return 
g.V().hasId(vid1).hasId(vid2) }], 
-    g_V_in_hasIdXneqX1XX: [function({g, xx1}) { return g.V().in_().hasId(xx1) 
}], 
+    g_V_in_hasIdXneqX1XX: [function({g, xx1}) { return 
g.V().in_().hasId(P.neq(xx1)) }], 
     g_VX1X_out_hasIdX2X: [function({g, vid2, vid1}) { return 
g.V(vid1).out().hasId(vid2) }], 
     g_VX1X_out_hasXid_2_3X: [function({g, vid3, vid2, vid1}) { return 
g.V(vid1).out().hasId(vid2, vid3) }], 
     g_VX1X_out_hasXid_2AsString_3AsStringX: [function({g, vid3, vid2, vid1}) { 
return g.V(vid1).out().hasId(vid2, vid3) }], 
diff --git a/gremlin-python/src/main/python/radish/feature_steps.py 
b/gremlin-python/src/main/python/radish/feature_steps.py
index 1dc09f9364..4b648002c2 100644
--- a/gremlin-python/src/main/python/radish/feature_steps.py
+++ b/gremlin-python/src/main/python/radish/feature_steps.py
@@ -77,17 +77,6 @@ def unsupported_scenario(step):
     return
 
 
-@given("using the parameter {param_name:w} of 
P.{p_val:w}({param:QuotedString})")
-def add_p_parameter(step, param_name, p_val, param):
-    if (step.context.ignore):
-        return
-
-    if not hasattr(step.context, "traversal_params"):
-        step.context.traversal_params = {}
-
-    step.context.traversal_params[param_name] = getattr(P, 
p_val)(_convert(param.replace('\\"', '"'), step.context))
-
-
 @given("using the parameter {param_name:w} defined as {param:QuotedString}")
 def add_parameter(step, param_name, param):
     if (step.context.ignore):
diff --git a/gremlin-python/src/main/python/radish/gremlin.py 
b/gremlin-python/src/main/python/radish/gremlin.py
index 95114c84d3..9dc39a5360 100644
--- a/gremlin-python/src/main/python/radish/gremlin.py
+++ b/gremlin-python/src/main/python/radish/gremlin.py
@@ -242,9 +242,9 @@ world.gremlins = {
     'g_V_hasXlabel_isXpersonXX': [(lambda g:g.V().has(T.label, 
__.is_('person')))], 
     'g_V_hasXname_nullX': [(lambda g:g.V().has('name', None))], 
     'g_V_hasIdXemptyX_count': [(lambda g, 
xx1=None:g.V().has_id(xx1).count())], 
-    'g_V_hasIdXwithinXemptyXX_count': [(lambda g, 
xx1=None:g.V().has_id(xx1).count())], 
-    'g_V_hasIdXwithoutXemptyXX_count': [(lambda g, 
xx1=None:g.V().has_id(xx1).count())], 
-    'g_V_notXhasIdXwithinXemptyXXX_count': [(lambda g, 
xx1=None:g.V().not_(__.has_id(xx1)).count())], 
+    'g_V_hasIdXwithinXemptyXX_count': [(lambda 
g:g.V().has_id(P.within([])).count())], 
+    'g_V_hasIdXwithoutXemptyXX_count': [(lambda 
g:g.V().has_id(P.without([])).count())], 
+    'g_V_notXhasIdXwithinXemptyXXX_count': [(lambda 
g:g.V().not_(__.has_id(P.within([]))).count())], 
     'g_V_hasIdXnullX': [(lambda g:g.V().has_id(None))], 
     'g_V_hasIdXeqXnullXX': [(lambda g:g.V().has_id(P.eq(None)))], 
     'g_V_hasIdX2_nullX': [(lambda g, vid2=None:g.V().has_id(vid2, None))], 
@@ -252,7 +252,7 @@ world.gremlins = {
     'g_V_hasIdX1AsString_2AsString_nullX': [(lambda g, 
vid2=None,vid1=None:g.V().has_id(vid1, vid2, None))], 
     'g_V_hasIdXnull_2X': [(lambda g, vid2=None:g.V().has_id(None, vid2))], 
     'g_V_hasIdX1X_hasIdX2X': [(lambda g, 
vid2=None,vid1=None:g.V().has_id(vid1).has_id(vid2))], 
-    'g_V_in_hasIdXneqX1XX': [(lambda g, xx1=None:g.V().in_().has_id(xx1))], 
+    'g_V_in_hasIdXneqX1XX': [(lambda g, 
xx1=None:g.V().in_().has_id(P.neq(xx1)))], 
     'g_VX1X_out_hasIdX2X': [(lambda g, 
vid2=None,vid1=None:g.V(vid1).out().has_id(vid2))], 
     'g_VX1X_out_hasXid_2_3X': [(lambda g, 
vid3=None,vid2=None,vid1=None:g.V(vid1).out().has_id(vid2, vid3))], 
     'g_VX1X_out_hasXid_2AsString_3AsStringX': [(lambda g, 
vid3=None,vid2=None,vid1=None:g.V(vid1).out().has_id(vid2, vid3))], 
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java
index c081426992..27f36888cf 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/features/StepDefinition.java
@@ -288,11 +288,6 @@ public final class StepDefinition {
         stringParameters.put(key, convertToString(value));
     }
 
-    @Given("using the parameter {word} of P.{word}\\({string})")
-    public void usingTheParameterXOfPX(final String key, final String pval, 
final String string) {
-        stringParameters.put(key, String.format("P.%s(%s)", pval, 
convertToString(string)));
-    }
-
     @Given("the traversal of")
     public void theTraversalOf(final String docString) {
         try {
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasId.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasId.feature
index 8c20b41b72..cc85a5c4fe 100644
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasId.feature
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasId.feature
@@ -32,10 +32,9 @@ Feature: Step - hasId()
 
   Scenario: g_V_hasIdXwithinXemptyXX_count
     Given the modern graph
-    And using the parameter xx1 of P.within("l[]")
     And the traversal of
     """
-    g.V().hasId(xx1).count()
+    g.V().hasId(P.within([])).count()
     """
     When iterated to list
     Then the result should be unordered
@@ -44,10 +43,9 @@ Feature: Step - hasId()
 
   Scenario: g_V_hasIdXwithoutXemptyXX_count
     Given the modern graph
-    And using the parameter xx1 of P.without("l[]")
     And the traversal of
     """
-    g.V().hasId(xx1).count()
+    g.V().hasId(P.without([])).count()
     """
     When iterated to list
     Then the result should be unordered
@@ -56,10 +54,9 @@ Feature: Step - hasId()
 
   Scenario: g_V_notXhasIdXwithinXemptyXXX_count
     Given the modern graph
-    And using the parameter xx1 of P.within("l[]")
     And the traversal of
     """
-    g.V().not(__.hasId(xx1)).count()
+    g.V().not(__.hasId(P.within([]))).count()
     """
     When iterated to list
     Then the result should be unordered
@@ -147,10 +144,10 @@ Feature: Step - hasId()
 
   Scenario: g_V_in_hasIdXneqX1XX
     Given the modern graph
-    And using the parameter xx1 of P.neq("v[marko].id")
+    And using the parameter xx1 defined as "v[marko].id"
     And the traversal of
     """
-    g.V().in().hasId(xx1)
+    g.V().in().hasId(P.neq(xx1))
     """
     When iterated to list
     Then the result should be unordered

Reply via email to