A proof that TINKERPOP-1261 is fixed given the refactor of GroupBiOperator.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d54b490a Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d54b490a Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d54b490a Branch: refs/heads/tp32 Commit: d54b490a66837e98077fa1e90f45ad20497c1a19 Parents: 341ebf9 Author: Marko A. Rodriguez <okramma...@gmail.com> Authored: Thu Jan 19 08:57:36 2017 -0700 Committer: Marko A. Rodriguez <okramma...@gmail.com> Committed: Thu Jan 19 08:57:36 2017 -0700 ---------------------------------------------------------------------- .../step/sideEffect/GroovyGroupTest.groovy | 5 ++++ .../traversal/step/sideEffect/GroupTest.java | 30 ++++++++++++++++++++ 2 files changed, 35 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d54b490a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyGroupTest.groovy ---------------------------------------------------------------------- diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyGroupTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyGroupTest.groovy index 3ce9efe..fc0c55d 100644 --- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyGroupTest.groovy +++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroovyGroupTest.groovy @@ -128,5 +128,10 @@ public abstract class GroovyGroupTest { public Traversal<Vertex, Map<String, Number>> get_g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX() { new ScriptTraversal<>(g, "gremlin-groovy", "g.V.group().by(label).by(bothE().group('a').by(label).by(values('weight').sum).weight.sum)") } + + @Override + public Traversal<Vertex, Map<String, List<Object>>> get_g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX() { + new ScriptTraversal<>(g, "gremlin-groovy", "g.withSideEffect('a', map).V().group('a').by('name').by(outE().label.fold).cap('a')", "map", new HashMap<>(["marko": [666], "noone": ["blah"]])); + } } } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d54b490a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java ---------------------------------------------------------------------- diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java index 71b15a5..5f2504e 100644 --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java @@ -28,9 +28,12 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -94,6 +97,8 @@ public abstract class GroupTest extends AbstractGremlinProcessTest { public abstract Traversal<Vertex, Map<String, Number>> get_g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX(); + public abstract Traversal<Vertex, Map<String, List<Object>>> get_g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX(); + @Test @LoadGraphWith(MODERN) public void g_V_group_byXnameX() { @@ -462,6 +467,23 @@ public abstract class GroupTest extends AbstractGremlinProcessTest { assertEquals(3.0d, sideEffect.get("knows").doubleValue(), 0.01d); } + @Test + @LoadGraphWith(MODERN) + public void g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX() { + final Traversal<Vertex, Map<String, List<Object>>> traversal = get_g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX(); + printTraversalForm(traversal); + final Map<String, List<Object>> map = traversal.next(); + assertEquals(7, map.size()); + assertEquals(Collections.singleton("blah"), new HashSet<>(map.get("noone"))); + assertEquals(new HashSet<>(Arrays.asList("created", "knows", 666)), new HashSet<>(map.get("marko"))); + assertEquals(Collections.singleton("created"), new HashSet<>(map.get("josh"))); + assertEquals(Collections.singleton("created"), new HashSet<>(map.get("peter"))); + assertEquals(Collections.emptySet(), new HashSet<>(map.get("vadas"))); + assertEquals(Collections.emptySet(), new HashSet<>(map.get("lop"))); + assertEquals(Collections.emptySet(), new HashSet<>(map.get("ripple"))); + checkSideEffects(traversal.asAdmin().getSideEffects(), "a", HashMap.class); + } + public static class Traversals extends GroupTest { @Override @@ -563,5 +585,13 @@ public abstract class GroupTest extends AbstractGremlinProcessTest { public Traversal<Vertex, Map<String, Number>> get_g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX() { return g.V().<String, Number>group().by(T.label).by(bothE().group("a").by(T.label).by(values("weight").sum()).values("weight").sum()); } + + @Override + public Traversal<Vertex, Map<String, List<Object>>> get_g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX() { + final Map<String, List<Object>> map = new HashMap<>(); + map.put("marko", new ArrayList<>(Collections.singleton(666))); + map.put("noone", new ArrayList<>(Collections.singleton("blah"))); + return g.withSideEffect("a", map).V().group("a").by("name").by(outE().label().fold()).cap("a"); + } } }