You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/02/11 03:50:10 UTC

[3/5] incubator-tinkerpop git commit: fixed ComputerTest for RangeByIsCountStrategy

fixed ComputerTest for RangeByIsCountStrategy


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/f8bfafc5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/f8bfafc5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/f8bfafc5

Branch: refs/heads/master
Commit: f8bfafc569fb147bcb6b711469743774f1e172c0
Parents: a71fdbd
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Wed Feb 11 02:56:20 2015 +0100
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Wed Feb 11 02:56:20 2015 +0100

----------------------------------------------------------------------
 .../traversal/step/map/ComputerResultStep.java  |  4 +++
 .../strategy/RangeByIsCountStrategyTest.java    | 29 +++++++++++++-------
 2 files changed, 23 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f8bfafc5/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java
index 54b119e..39e3de4 100644
--- a/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java
+++ b/gremlin-core/src/main/java/com/tinkerpop/gremlin/process/computer/traversal/step/map/ComputerResultStep.java
@@ -92,4 +92,8 @@ public final class ComputerResultStep<S> extends AbstractStep<S, S> {
     public Set<TraverserRequirement> getRequirements() {
         return this.computerTraversal.getTraverserRequirements();
     }
+
+    public Traversal.Admin<?, ?> getComputerTraversal() {
+        return this.computerTraversal;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/f8bfafc5/gremlin-test/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategyTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategyTest.java b/gremlin-test/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategyTest.java
index ea1662d..d840fa7 100644
--- a/gremlin-test/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategyTest.java
+++ b/gremlin-test/src/main/java/com/tinkerpop/gremlin/process/graph/traversal/strategy/RangeByIsCountStrategyTest.java
@@ -22,15 +22,18 @@ package com.tinkerpop.gremlin.process.graph.traversal.strategy;
 import com.tinkerpop.gremlin.LoadGraphWith;
 import com.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
 import com.tinkerpop.gremlin.process.Traversal;
+import com.tinkerpop.gremlin.process.computer.traversal.step.map.ComputerResultStep;
+import com.tinkerpop.gremlin.process.graph.traversal.__;
+import com.tinkerpop.gremlin.process.graph.traversal.step.filter.HasTraversalStep;
 import com.tinkerpop.gremlin.process.graph.traversal.step.filter.RangeStep;
 import com.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import com.tinkerpop.gremlin.structure.Compare;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import java.util.Arrays;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.BiPredicate;
-import java.util.stream.Stream;
 
 import static com.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
 import static org.junit.Assert.assertEquals;
@@ -40,15 +43,11 @@ import static org.junit.Assert.assertEquals;
  */
 public abstract class RangeByIsCountStrategyTest extends AbstractGremlinProcessTest {
 
-    final Traversal generateTraversal(final BiPredicate predicate, final Object value) {
-        return g.V().count().is(predicate, value);
-    }
-
     public static class StandardTest extends RangeByIsCountStrategyTest {
 
         private void runTest(final BiPredicate predicate, final Object value, final long expectedHighRange) {
             final AtomicInteger counter = new AtomicInteger(0);
-            Traversal traversal = generateTraversal(predicate, value);
+            Traversal traversal = g.V().count().is(predicate, value);
             traversal.iterate();
             TraversalHelper.getStepsOfClass(RangeStep.class, traversal.asAdmin()).stream().forEach(step -> {
                 assertEquals(0, step.getLowRange());
@@ -109,11 +108,21 @@ public abstract class RangeByIsCountStrategyTest extends AbstractGremlinProcessT
 
     public static class ComputerTest extends RangeByIsCountStrategyTest {
         @Test
+        @Ignore // TODO: include when #558 is solved
         @LoadGraphWith(MODERN)
-        public void shouldNotModifyTheTraversal() {
-            final Traversal traversal = generateTraversal(Compare.eq, 0l).submit(g.compute()).iterate();
-            final Stream<RangeStep> rangeSteps = TraversalHelper.getStepsOfClass(RangeStep.class, traversal.asAdmin()).stream();
-            assertEquals(0, rangeSteps.count());
+        public void nestedCountEqualsNullShouldLimitToOne() {
+            final AtomicInteger counter = new AtomicInteger(0);
+            final Traversal traversal = g.V().has(__.outE("created").count().is(0)).submit(g.compute()).iterate();
+            final ComputerResultStep crs = (ComputerResultStep) traversal.asAdmin().getSteps().iterator().next();
+            final Traversal ct = crs.getComputerTraversal();
+            final HasTraversalStep hasStep = TraversalHelper.getStepsOfClass(HasTraversalStep.class, ct.asAdmin()).stream().findFirst().get();
+            final Traversal nestedTraversal = (Traversal) hasStep.getLocalChildren().get(0);
+            TraversalHelper.getStepsOfClass(RangeStep.class, nestedTraversal.asAdmin()).stream().forEach(step -> {
+                assertEquals(0, step.getLowRange());
+                assertEquals(1, step.getHighRange());
+                counter.incrementAndGet();
+            });
+            assertEquals(1, counter.get());
         }
     }
 }