You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/04/08 23:39:58 UTC
[tinkerpop] branch master updated: Add some additional tests for
negative Text predicates
This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
The following commit(s) were added to refs/heads/master by this push:
new b4c2fab Add some additional tests for negative Text predicates
new 87fe157 Merge pull request #1093 from nastra/negative-text-predicates
b4c2fab is described below
commit b4c2fab64da6a5b46c4dcf5a24473eabb172ea30
Author: Eduard Tudenhoefner <ed...@datastax.com>
AuthorDate: Mon Apr 8 12:38:36 2019 +0200
Add some additional tests for negative Text predicates
---
gremlin-test/features/filter/Has.feature | 45 ++++++++++++++
.../process/traversal/step/filter/HasTest.java | 70 ++++++++++++++++++++--
2 files changed, 111 insertions(+), 4 deletions(-)
diff --git a/gremlin-test/features/filter/Has.feature b/gremlin-test/features/filter/Has.feature
index 30fc4b3..a2d6295 100644
--- a/gremlin-test/features/filter/Has.feature
+++ b/gremlin-test/features/filter/Has.feature
@@ -613,3 +613,48 @@ Feature: Step - has()
Then the result should be unordered
| result |
| v[marko] |
+
+ Scenario: g_V_hasXname_not_containingXarkXX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().has("name", TextP.notContaining("ark"))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | v[vadas] |
+ | v[lop] |
+ | v[josh] |
+ | v[ripple] |
+ | v[peter] |
+
+ Scenario: g_V_hasXname_not_startingWithXmarXX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().has("name", TextP.notStartingWith("mar"))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | v[vadas] |
+ | v[lop] |
+ | v[josh] |
+ | v[ripple] |
+ | v[peter] |
+
+ Scenario: g_V_hasXname_not_endingWithXasXX
+ Given the modern graph
+ And the traversal of
+ """
+ g.V().has("name", TextP.notEndingWith("as"))
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | v[marko] |
+ | v[lop] |
+ | v[josh] |
+ | v[ripple] |
+ | v[peter] |
\ No newline at end of file
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
index ce075da..a1e9e63 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
@@ -44,6 +44,7 @@ import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@@ -128,13 +129,19 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_containingXarkXX();
- public abstract Traversal<Vertex,Vertex> get_g_V_hasXname_startingWithXmarXX();
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_startingWithXmarXX();
- public abstract Traversal<Vertex,Vertex> get_g_V_hasXname_endingWithXasXX();
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_endingWithXasXX();
- public abstract Traversal<Vertex,Vertex> get_g_V_hasXperson_name_containingXoX_andXltXmXXX();
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_not_containingXarkXX();
- public abstract Traversal<Vertex,Vertex> get_g_V_hasXname_gtXmX_andXcontainingXoXXX();
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_not_startingWithXmarXX();
+
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_not_endingWithXasXX();
+
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasXperson_name_containingXoX_andXltXmXXX();
+
+ public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_gtXmX_andXcontainingXoXXX();
@Test
@LoadGraphWith(MODERN)
@@ -590,6 +597,46 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
+ public void g_V_hasXname_not_containingXarkXX() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_hasXname_not_containingXarkXX();
+ printTraversalForm(traversal);
+
+ int counter = 0;
+ while (traversal.hasNext()) {
+ counter++;
+ assertNotEquals("marko", traversal.next().value("name"));
+ }
+ assertEquals(5, counter);
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_hasXname_not_startingWithXmarXX() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_hasXname_not_startingWithXmarXX();
+ printTraversalForm(traversal);
+ int counter = 0;
+ while (traversal.hasNext()) {
+ counter++;
+ assertNotEquals("marko", traversal.next().value("name"));
+ }
+ assertEquals(5, counter);
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_hasXname_not_endingWithXasXX() {
+ final Traversal<Vertex, Vertex> traversal = get_g_V_hasXname_not_endingWithXasXX();
+ printTraversalForm(traversal);
+ int counter = 0;
+ while (traversal.hasNext()) {
+ counter++;
+ assertNotEquals("vadas", traversal.next().value("name"));
+ }
+ assertEquals(5, counter);
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
public void g_V_hasXperson_name_containingXoX_andXltXmXXX() {
final Traversal<Vertex, Vertex> traversal = get_g_V_hasXperson_name_containingXoX_andXltXmXXX();
printTraversalForm(traversal);
@@ -805,6 +852,21 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
}
@Override
+ public Traversal<Vertex, Vertex> get_g_V_hasXname_not_containingXarkXX() {
+ return g.V().has("name", TextP.notContaining("ark"));
+ }
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_hasXname_not_startingWithXmarXX() {
+ return g.V().has("name", TextP.notStartingWith("mar"));
+ }
+
+ @Override
+ public Traversal<Vertex, Vertex> get_g_V_hasXname_not_endingWithXasXX() {
+ return g.V().has("name", TextP.notEndingWith("as"));
+ }
+
+ @Override
public Traversal<Vertex, Vertex> get_g_V_hasXperson_name_containingXoX_andXltXmXXX() {
return g.V().has("person","name", TextP.containing("o").and(P.lt("m")));
}