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

kenhuuu pushed a commit to branch stringify-params
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 540bb69585fc893e3f8998e290449dc8415dac0e
Author: Ken Hu <[email protected]>
AuthorDate: Wed Apr 22 13:49:05 2026 -0700

    move backslash back to unit test
---
 .../gremlin/process/traversal/GremlinLangTest.java        |  2 ++
 .../test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs   |  1 -
 .../Process/Traversal/GremlinLangTests.cs                 |  8 ++++++++
 gremlin-go/driver/cucumber/gremlin.go                     |  1 -
 gremlin-js/gremlin-javascript/test/cucumber/gremlin.js    |  1 -
 gremlin-python/src/main/python/tests/feature/gremlin.py   |  1 -
 .../main/python/tests/unit/process/test_gremlin_lang.py   | 11 ++++++++---
 .../gremlin/language/translator/translations.json         | 15 ---------------
 .../tinkerpop/gremlin/test/features/data/Char.feature     | 12 ------------
 9 files changed, 18 insertions(+), 34 deletions(-)

diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java
index 48d01cfa32..a86fb444e5 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/GremlinLangTest.java
@@ -132,6 +132,8 @@ public class GremlinLangTest {
                 {newG().inject(new HashSet<>(Arrays.asList(1, 2))), 
"g.inject({1,2})"},
                 // Character - single quote (no feature equivalent since 
grammar uses double quotes in feature files)
                 {g.inject('\''), "g.inject(\"'\"c)"},
+                               // Character - backslash (not in feature file 
due to Gherkin escaping issues)
+                {g.inject('\\'), "g.inject(\"\\\\\"c)"},
                 // Duration - Java-specific: normalization of days to hours, 
nanosecond precision
                 {g.inject(Duration.ofDays(1).plusHours(12)), 
"g.inject(Duration(\"PT36H\"))"},
                 {g.inject(Duration.ofNanos(1)), 
"g.inject(Duration(\"PT0.000000001S\"))"},
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index 5f0d8a1c72..25c155d360 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -242,7 +242,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_V_valuesXageX_isXtypeOfXGType_BYTEXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("age").Is(P.TypeOf(GType.Byte))}}, 
                {"g_injectXaX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>('a')}}, 
                {"g_injectXescaped_quoteX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>('\"')}}, 
-               {"g_injectXescaped_backslashX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>('\\')}}, 
                {"g_injectXunicodeX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.Inject<object>('\u00E9')}}, 
                {"g_valuesXinitialX_isXtypeOfXGType_CHARXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "data").Property("initial", 'a'), (g,p) 
=>g.V().Values<object>("initial").Is(P.TypeOf(GType.Char))}}, 
                {"g_injectXaX_isXeqXaXX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.Inject<object>('a').Is(P.Eq('a'))}}, 
diff --git 
a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Process/Traversal/GremlinLangTests.cs
 
b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Process/Traversal/GremlinLangTests.cs
index 47bd8b4f79..e25833ff21 100644
--- 
a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Process/Traversal/GremlinLangTests.cs
+++ 
b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Process/Traversal/GremlinLangTests.cs
@@ -1042,6 +1042,14 @@ namespace Gremlin.Net.UnitTest.Process.Traversal
                 _g.V("1").Property(Cardinality.Set, 
map).GremlinLang.GetGremlin());
         }
 
+        // Character - backslash (not in feature file due to Gherkin escaping 
issues)
+        [Fact]
+        public void g_Inject_Char_Backslash()
+        {
+            Assert.Equal("g.inject(\"\\\\\"c)",
+                _g.Inject((object)'\\').GremlinLang.GetGremlin());
+        }
+
         // Character - single quote (no feature equivalent)
         [Fact]
         public void g_Inject_Char_SingleQuote()
diff --git a/gremlin-go/driver/cucumber/gremlin.go 
b/gremlin-go/driver/cucumber/gremlin.go
index 02419ce829..b20c1ac9fd 100644
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@ -211,7 +211,6 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_V_valuesXageX_isXtypeOfXGType_BYTEXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.P.TypeOf(gremlingo.GType.Byte))}}, 
     "g_injectXaX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return nil}}, 
     "g_injectXescaped_quoteX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return nil}}, 
-    "g_injectXescaped_backslashX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return nil}}, 
     "g_injectXunicodeX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return nil}}, 
     "g_valuesXinitialX_isXtypeOfXGType_CHARXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return nil}}, 
     "g_injectXaX_isXeqXaXX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return nil}}, 
diff --git a/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js 
b/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
index e783569517..5338791541 100644
--- a/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
+++ b/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
@@ -243,7 +243,6 @@ const gremlins = {
     g_V_valuesXageX_isXtypeOfXGType_BYTEXX: [function({g}) { return 
g.V().values("age").is(P.typeOf(GType.byte)) }], 
     g_injectXaX: [function({g}) { return null }], 
     g_injectXescaped_quoteX: [function({g}) { return null }], 
-    g_injectXescaped_backslashX: [function({g}) { return null }], 
     g_injectXunicodeX: [function({g}) { return null }], 
     g_valuesXinitialX_isXtypeOfXGType_CHARXX: [function({g}) { return null }], 
     g_injectXaX_isXeqXaXX: [function({g}) { return null }], 
diff --git a/gremlin-python/src/main/python/tests/feature/gremlin.py 
b/gremlin-python/src/main/python/tests/feature/gremlin.py
index a70363dca8..e2854391a4 100644
--- a/gremlin-python/src/main/python/tests/feature/gremlin.py
+++ b/gremlin-python/src/main/python/tests/feature/gremlin.py
@@ -216,7 +216,6 @@ world.gremlins = {
     'g_V_valuesXageX_isXtypeOfXGType_BYTEXX': [(lambda 
g:g.V().values('age').is_(P.type_of(GType.BYTE)))], 
     'g_injectXaX': [(lambda g:g.inject(SingleChar('a')))], 
     'g_injectXescaped_quoteX': [(lambda g:g.inject(SingleChar('\"')))], 
-    'g_injectXescaped_backslashX': [(lambda g:g.inject(SingleChar('\\')))], 
     'g_injectXunicodeX': [(lambda g:g.inject(SingleChar('\u00E9')))], 
     'g_valuesXinitialX_isXtypeOfXGType_CHARXX': [(lambda 
g:g.add_v('data').property('initial', SingleChar('a'))), (lambda 
g:g.V().values('initial').is_(P.type_of(GType.CHAR)))], 
     'g_injectXaX_isXeqXaXX': [(lambda 
g:g.inject(SingleChar('a')).is_(P.eq(SingleChar('a'))))], 
diff --git 
a/gremlin-python/src/main/python/tests/unit/process/test_gremlin_lang.py 
b/gremlin-python/src/main/python/tests/unit/process/test_gremlin_lang.py
index 4f852d8e25..7abfc2fa31 100644
--- a/gremlin-python/src/main/python/tests/unit/process/test_gremlin_lang.py
+++ b/gremlin-python/src/main/python/tests/unit/process/test_gremlin_lang.py
@@ -482,16 +482,21 @@ class TestGremlinLang(object):
         tests.append([g.add_v('test').property('date', datetime(2021, 2, 1, 9, 
30, tzinfo=timezone(timedelta(hours=-5)))),
                       
"g.addV('test').property('date',datetime(\"2021-02-01T09:30:00-05:00\"))"])
 
-        # Character - single quote (no feature equivalent)
+        # Character - backslash (not in feature file due to Gherkin escaping 
issues)
         # 122
+        tests.append([g.inject(SingleChar('\\')),
+                      "g.inject('\\\\'c)"])
+
+        # Character - single quote (no feature equivalent)
+        # 123
         tests.append([g.inject(SingleChar("'")),
                       "g.inject(\"'\"c)"])
 
         # Duration - Python-specific: microsecond precision, days+hours 
normalization
-        # 123
+        # 124
         tests.append([g.inject(timedelta(microseconds=1)),
                       'g.inject(Duration("PT0.000001S"))'])
-        # 124
+        # 125
         tests.append([g.inject(timedelta(days=1, hours=12)),
                       'g.inject(Duration("PT36H"))'])
 
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/language/translator/translations.json
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/language/translator/translations.json
index ce4a3b7cd1..d22dd6c53f 100644
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/language/translator/translations.json
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/language/translator/translations.json
@@ -3345,21 +3345,6 @@
             }
         ]
     },
-    {
-        "scenario": "g_injectXescaped_backslashX",
-        "traversals": [
-            {
-                "original": "g.inject(\"\\\\\"c)",
-                "language": "g.inject(\"\\\\\"c)",
-                "canonical": "g.inject(\"\\\\\"c)",
-                "anonymized": "g.inject(character0)",
-                "dotnet": "g.Inject<object>('\\\\')",
-                "groovy": "g.inject('\\\\' as char)",
-                "java": "g.inject('\\\\')",
-                "python": "g.inject(SingleChar('\\\\'))"
-            }
-        ]
-    },
     {
         "scenario": "g_injectXunicodeX",
         "traversals": [
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/data/Char.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/data/Char.feature
index 321bbe6421..94606864c0 100644
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/data/Char.feature
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/data/Char.feature
@@ -42,18 +42,6 @@ Feature: Data - CHAR
       | result |
       | char["] |
 
-  @GraphComputerVerificationInjectionNotSupported
-  Scenario: g_injectXescaped_backslashX
-    Given the empty graph
-    And the traversal of
-      """
-      g.inject("\\"c)
-      """
-    When iterated to list
-    Then the result should be unordered
-      | result |
-      | char[\] |
-
   @GraphComputerVerificationInjectionNotSupported
   Scenario: g_injectXunicodeX
     Given the empty graph

Reply via email to