Repository: tinkerpop Updated Branches: refs/heads/TINKERPOP-1437 [created] 9666bb3dc
Added tests for dedup(Scope,String...) overload in DedupTest Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9666bb3d Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9666bb3d Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9666bb3d Branch: refs/heads/TINKERPOP-1437 Commit: 9666bb3dc2f593b66095b3e764678ccfc35630a5 Parents: 4293eb3 Author: Stephen Mallette <sp...@genoprime.com> Authored: Fri Sep 16 16:17:33 2016 -0400 Committer: Stephen Mallette <sp...@genoprime.com> Committed: Fri Sep 16 16:17:33 2016 -0400 ---------------------------------------------------------------------- CHANGELOG.asciidoc | 1 + .../step/filter/GroovyDedupTest.groovy | 10 ++++ .../traversal/step/filter/DedupTest.java | 48 ++++++++++++++++++++ 3 files changed, 59 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9666bb3d/CHANGELOG.asciidoc ---------------------------------------------------------------------- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 7c4178d..92aff5a 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -27,6 +27,7 @@ TinkerPop 3.2.3 (Release Date: NOT OFFICIALLY RELEASED YET) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Fixed a bug in Gremlin-Python `P` where predicates reversed the order of the predicates. +* Added tests to `DedupTest` for the `dedup(Scope, String...)` overload. * Fixed a naming bug in Gremlin-Python where `P._and` and `P._or` should be `P.and_` and `P.or_`. (*breaking*) * `where()` predicate-based steps now support `by()`-modulation. * `TraversalRing` returns a `null` if it does not contain traversals (previously `IdentityTraversal`). http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9666bb3d/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyDedupTest.groovy ---------------------------------------------------------------------- diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyDedupTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyDedupTest.groovy index 86c3e15..cfad92b 100644 --- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyDedupTest.groovy +++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/filter/GroovyDedupTest.groovy @@ -19,6 +19,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.filter import org.apache.tinkerpop.gremlin.process.traversal.Path +import org.apache.tinkerpop.gremlin.process.traversal.Scope import org.apache.tinkerpop.gremlin.process.traversal.Traversal import org.apache.tinkerpop.gremlin.process.traversal.util.ScriptTraversal import org.apache.tinkerpop.gremlin.structure.Vertex @@ -30,6 +31,15 @@ import org.apache.tinkerpop.gremlin.structure.Vertex public abstract class GroovyDedupTest { public static class Traversals extends DedupTest { + @Override + public Traversal<Vertex, String> get_g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold() { + return new ScriptTraversal<>(g, "gremlin-groovy", "g.V.out.in.values('name').fold.dedup(Scope.local).unfold;"); + } + + @Override + public Traversal<Vertex, Map<String, String>> get_g_V_out_in_asXxX_in_asXyX_selectXx_yX_byXnameX_fold_dedupXlocal_x_yX_unfold() { + return new ScriptTraversal<>(g, "gremlin-groovy", "g.V.out.as('x').in.as('y').select('x','y').by('name').fold.dedup(Scope.local,'x','y').unfold"); + } @Override public Traversal<Vertex, String> get_g_V_both_dedup_name() { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9666bb3d/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java ---------------------------------------------------------------------- diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java index fe1db71..a0cc6e9 100644 --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/DedupTest.java @@ -23,6 +23,7 @@ import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest; import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner; import org.apache.tinkerpop.gremlin.process.traversal.Order; import org.apache.tinkerpop.gremlin.process.traversal.Path; +import org.apache.tinkerpop.gremlin.process.traversal.Scope; import org.apache.tinkerpop.gremlin.process.traversal.Traversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.structure.T; @@ -38,6 +39,9 @@ import java.util.Set; import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN; import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.bothE; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.isIn; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -73,6 +77,40 @@ public abstract class DedupTest extends AbstractGremlinProcessTest { public abstract Traversal<Vertex, String> get_g_V_both_both_dedup_byXoutE_countX_name(); + public abstract Traversal<Vertex, String> get_g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold(); + + public abstract Traversal<Vertex, Map<String, String>> get_g_V_out_in_asXxX_in_asXyX_selectXx_yX_byXnameX_fold_dedupXlocal_x_yX_unfold(); + + @Test + @LoadGraphWith(MODERN) + public void g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold() { + final Traversal<Vertex, String> traversal = get_g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold(); + final List<String> names = traversal.toList(); + assertEquals(3, names.size()); + assertThat(names, containsInAnyOrder("marko", "josh", "peter")); + } + + @Test + @LoadGraphWith(MODERN) + public void g_V_out_in_asXxX_in_asXyX_selectXx_yX_byXnameX_fold_dedupXlocal_x_yX_unfold() { + final Traversal<Vertex, Map<String, String>> traversal = get_g_V_out_in_asXxX_in_asXyX_selectXx_yX_byXnameX_fold_dedupXlocal_x_yX_unfold(); + final List<Map<String,String>> names = traversal.toList(); + assertEquals(6, names.size()); + for (final Map<String, String> m : names) { + if (m.get("x").equals("lop")) { + assertThat(m.get("y"), isIn(Arrays.asList("marko", "josh", "peter"))); + } else if (m.get("x").equals("vadas")) { + assertEquals("marko", m.get("y")); + } else if (m.get("x").equals("josh")) { + assertEquals("marko", m.get("y")); + } else if (m.get("x").equals("ripple")) { + assertEquals("josh", m.get("y")); + } else { + fail("A value was returned that was not expected in the result: " + m.get("x")); + } + } + } + @Test @LoadGraphWith(MODERN) public void g_V_both_dedup_name() { @@ -241,6 +279,16 @@ public abstract class DedupTest extends AbstractGremlinProcessTest { public static class Traversals extends DedupTest { @Override + public Traversal<Vertex, String> get_g_V_out_in_valuesXnameX_fold_dedupXlocalX_unfold() { + return g.V().out().in().values("name").fold().dedup(Scope.local).unfold(); + } + + @Override + public Traversal<Vertex, Map<String, String>> get_g_V_out_in_asXxX_in_asXyX_selectXx_yX_byXnameX_fold_dedupXlocal_x_yX_unfold() { + return g.V().out().as("x").in().as("y").select("x","y").by("name").fold().dedup(Scope.local,"x","y").unfold(); + } + + @Override public Traversal<Vertex, String> get_g_V_both_dedup_name() { return g.V().both().dedup().values("name"); }