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 2015/04/21 12:43:38 UTC
[11/39] incubator-tinkerpop git commit: TINKERPOP-491 #close added
tests and sample in the docs.
TINKERPOP-491 #close added tests and sample in the docs.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/e2c61711
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/e2c61711
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/e2c61711
Branch: refs/heads/refactor-io
Commit: e2c61711bd859f7756bcd7b6a3c597cdb8768189
Parents: 107e265
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Mon Apr 20 16:57:51 2015 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Mon Apr 20 16:57:51 2015 +0200
----------------------------------------------------------------------
docs/src/the-traversal.asciidoc | 3 ++
.../step/filter/GroovyExceptTest.groovy | 16 ++++++++--
.../traversal/step/filter/ExceptTest.java | 31 +++++++++++++++-----
3 files changed, 40 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e2c61711/docs/src/the-traversal.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/the-traversal.asciidoc b/docs/src/the-traversal.asciidoc
index 21adfe7..e2b4917 100644
--- a/docs/src/the-traversal.asciidoc
+++ b/docs/src/the-traversal.asciidoc
@@ -387,8 +387,11 @@ With `dedup()`-step (*filter*), repeatedly seen objects are removed from the tra
----
g.V().values('lang')
g.V().values('lang').dedup()
+g.V(1).repeat(bothE('created').dedup().otherV()).emit().path() <1>
----
+<1> Traverse all `created` edges, but don't touch any edge twice.
+
If a by-step modulation is provided to `dedup()`, then the object is processed accordingly prior to determining if it has been seen or not.
[gremlin-groovy,modern]
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e2c61711/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy
index 6dddba2..03537bc 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyExceptTest.groovy
@@ -18,12 +18,12 @@
*/
package org.apache.tinkerpop.gremlin.process.traversal.step.filter
+import org.apache.tinkerpop.gremlin.process.UseEngine
+import org.apache.tinkerpop.gremlin.process.computer.ComputerTestHelper
import org.apache.tinkerpop.gremlin.process.traversal.Path
import org.apache.tinkerpop.gremlin.process.traversal.Traversal
import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine
-import org.apache.tinkerpop.gremlin.process.UseEngine
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__
-import org.apache.tinkerpop.gremlin.process.computer.ComputerTestHelper
import org.apache.tinkerpop.gremlin.structure.Vertex
/**
@@ -67,6 +67,12 @@ public abstract class GroovyExceptTest {
}
@Override
+ public Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(
+ final Object v1Id) {
+ g.V(v1Id).repeat(__.bothE('created').dedup.otherV).emit.path
+ }
+
+ @Override
public Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(final Object v1Id) {
g.V(v1Id).as('a').out('created').in('created').except('a').name
}
@@ -107,6 +113,12 @@ public abstract class GroovyExceptTest {
}
@Override
+ public Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(
+ final Object v1Id) {
+ ComputerTestHelper.compute("g.V(${v1Id}).repeat(__.bothE('created').dedup.otherV).emit.path", g);
+ }
+
+ @Override
public Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(final Object v1Id) {
ComputerTestHelper.compute("g.V(${v1Id}).as('a').out('created').in('created').except('a').name", g);
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/e2c61711/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java
index e7e64b7..b863f42 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/ExceptTest.java
@@ -21,20 +21,14 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.filter;
import org.apache.tinkerpop.gremlin.LoadGraphWith;
import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
import org.apache.tinkerpop.gremlin.process.IgnoreEngine;
+import org.apache.tinkerpop.gremlin.process.UseEngine;
import org.apache.tinkerpop.gremlin.process.traversal.Path;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.apache.tinkerpop.gremlin.util.StreamFactory;
import org.junit.Test;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
+import java.util.*;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.bothE;
@@ -59,6 +53,8 @@ public abstract class ExceptTest extends AbstractGremlinProcessTest {
public abstract Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_exceptXeX_aggregateXeX_otherVX_emit_path(final Object v1Id);
+ public abstract Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(final Object v1Id);
+
public abstract Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(final Object v1Id);
@Test
@@ -138,6 +134,20 @@ public abstract class ExceptTest extends AbstractGremlinProcessTest {
@Test
@LoadGraphWith(MODERN)
+ @IgnoreEngine(TraversalEngine.Type.COMPUTER)
+ public void g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path() {
+ Traversal<Vertex, Path> traversal = get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(convertToVertexId("marko"));
+ printTraversalForm(traversal);
+ final List<Path> paths = traversal.toList();
+ assertEquals(4, paths.size());
+ assertEquals(1, paths.stream().filter(path -> path.size() == 3).count());
+ assertEquals(2, paths.stream().filter(path -> path.size() == 5).count());
+ assertEquals(1, paths.stream().filter(path -> path.size() == 7).count());
+ assertFalse(traversal.hasNext());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
public void g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name() {
final Traversal<Vertex, String> traversal = get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(convertToVertexId("marko"));
printTraversalForm(traversal);
@@ -179,6 +189,11 @@ public abstract class ExceptTest extends AbstractGremlinProcessTest {
}
@Override
+ public Traversal<Vertex, Path> get_g_VX1X_repeatXbothEXcreatedX_dedup_otherVX_emit_path(final Object v1Id) {
+ return g.V(v1Id).repeat(bothE("created").dedup().otherV()).emit().path();
+ }
+
+ @Override
public Traversal<Vertex, String> get_g_VX1X_asXaX_outXcreatedX_inXcreatedX_exceptXaX_name(final Object v1Id) {
return g.V(v1Id).as("a").out("created").in("created").except("a").values("name");
}