Merge branch 'tp33'
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/4e46f718 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/4e46f718 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/4e46f718 Branch: refs/heads/TINKERPOP-1296 Commit: 4e46f718f3a1771cca7ddc35487805863655bc5e Parents: 7fc3dcd 4eeb178 Author: Daniel Kuppitz <[email protected]> Authored: Wed Apr 25 16:56:05 2018 -0700 Committer: Daniel Kuppitz <[email protected]> Committed: Wed Apr 25 16:56:05 2018 -0700 ---------------------------------------------------------------------- CHANGELOG.asciidoc | 1 + docs/src/recipes/shortest-path.asciidoc | 39 +++++ docs/src/reference/the-traversal.asciidoc | 18 +++ .../traversal/dsl/graph/GraphTraversal.java | 30 ++++ .../gremlin/process/traversal/dsl/graph/__.java | 14 ++ .../traversal/step/map/TraversalSelectStep.java | 157 +++++++++++++++++++ .../Process/Traversal/GraphTraversal.cs | 18 +++ .../src/Gremlin.Net/Process/Traversal/__.cs | 16 ++ gremlin-test/features/map/Select.feature | 44 ++++++ .../process/AbstractGremlinProcessTest.java | 14 ++ .../process/traversal/step/map/SelectTest.java | 49 ++++++ .../structure/TinkerGraphPlayTest.java | 111 ++++++++++--- 12 files changed, 492 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4e46f718/CHANGELOG.asciidoc ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4e46f718/docs/src/reference/the-traversal.asciidoc ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4e46f718/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4e46f718/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4e46f718/gremlin-test/features/map/Select.feature ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4e46f718/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java ---------------------------------------------------------------------- diff --cc gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java index 6a7a43b,3140004..62d6513 --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectTest.java @@@ -83,8 -83,12 +83,14 @@@ public abstract class SelectTest extend public abstract Traversal<Vertex, Vertex> get_g_V_chooseXoutE_count_isX0X__asXaX__asXbXX_chooseXselectXaX__selectXaX__selectXbXX(); + public abstract Traversal<Vertex, String> get_g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX(final Object v1Id); + + public abstract Traversal<Vertex, Long> get_g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX(); + + public abstract Traversal<Vertex, Double> get_g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX_byXmathX_plus_XX(); + + public abstract Traversal<Vertex, List<Vertex>> get_g_V_asXaX_outXknowsX_asXaX_selectXall_constantXaXX(); + // below are original back()-tests public abstract Traversal<Vertex, Vertex> get_g_VX1X_asXhereX_out_selectXhereX(final Object v1Id); @@@ -345,14 -349,31 +351,41 @@@ @Test @LoadGraphWith(MODERN) + public void g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX() { + final Traversal<Vertex, String> traversal = get_g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX(convertToVertexId("marko")); + printTraversalForm(traversal); + assertTrue(traversal.hasNext()); + assertEquals("marko", traversal.next()); + assertFalse(traversal.hasNext()); + } + ++ @Test ++ @LoadGraphWith(MODERN) + public void g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX() { + final Traversal<Vertex, Long> traversal = get_g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX(); + printTraversalForm(traversal); + checkResults(Arrays.asList(3L, 1L, 3L, 3L, 1L, 1L), traversal); + } + + @Test + @LoadGraphWith(MODERN) + public void g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX_byXmathX_plus_XX() { + final Traversal<Vertex, Double> traversal = get_g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX_byXmathX_plus_XX(); + printTraversalForm(traversal); + checkResults(Arrays.asList(6D, 2D, 6D, 6D, 2D, 2D), traversal); + } + + @Test + @LoadGraphWith(MODERN) + public void g_V_asXaX_outXknowsX_asXaX_selectXall_constantXaXX() { + final Vertex marko = convertToVertex(graph, "marko"); + final Vertex vadas = convertToVertex(graph, "vadas"); + final Vertex josh = convertToVertex(graph, "josh"); + final Traversal<Vertex, List<Vertex>> traversal = get_g_V_asXaX_outXknowsX_asXaX_selectXall_constantXaXX(); + printTraversalForm(traversal); + checkResults(Arrays.asList(Arrays.asList(marko, vadas), Arrays.asList(marko, josh)), traversal); + } + // below are original back()-tests @Test @@@ -733,12 -755,21 +766,28 @@@ return g.V().choose(__.outE().count().is(0L), __.as("a"), __.as("b")).choose(__.select("a"), __.select("a"), __.select("b")); } + @Override + public Traversal<Vertex, String> get_g_VX1X_groupXaX_byXconstantXaXX_byXnameX_selectXaX_selectXaX(final Object v1Id) { + return g.V(v1Id).group("a").by(__.constant("a")).by(__.values("name")) + .barrier() // TODO: this barrier() should not be necessary + .select("a").select("a"); + } + ++ @Override + public Traversal<Vertex, Long> get_g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX() { + return g.V().as("a").group("m").by().by(__.bothE().count()).barrier().select("m").select(__.select("a")); + } + + @Override + public Traversal<Vertex, Double> get_g_V_asXaX_groupXmX_by_byXbothE_countX_barrier_selectXmX_selectXselectXaXX_byXmathX_plus_XX() { + return g.V().as("a").group("m").by().by(__.bothE().count()).barrier().select("m").<Double>select(__.select("a")).by(__.math("_+_")); + } + + @Override + public Traversal<Vertex, List<Vertex>> get_g_V_asXaX_outXknowsX_asXaX_selectXall_constantXaXX() { + return g.V().as("a").out("knows").as("a").select(Pop.all, (Traversal) __.constant("a")); + } + // below are original back()-tests @Override
