This is an automated email from the ASF dual-hosted git repository.

colegreer pushed a commit to branch repeatLimit
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 96882afcab0afad5885e0981f25ee730f2e4ee44
Author: Andrea Child <[email protected]>
AuthorDate: Wed Sep 3 17:20:28 2025 -0700

    Troubleshooting graph computer.
---
 .../process/traversal/step/branch/RepeatStep.java  |  11 +-
 .../traversal/step/filter/RangeGlobalStep.java     |  31 ++-
 .../process/traversal/step/map/VertexStep.java     |   9 +-
 .../tinkergraph/structure/TinkerGraphPlayTest.java | 269 ++++++++++-----------
 4 files changed, 160 insertions(+), 160 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
index 0c6ef0fd0d..97533940df 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
@@ -264,19 +264,22 @@ public final class RepeatStep<S> extends 
ComputerAwareStep<S, S> implements Trav
             throw new IllegalStateException("The repeat()-traversal was not 
defined: " + this);
 
         final Traverser.Admin<S> start = this.starts.next();
+        System.out.printf("RepeatStep.computerAlgorithm: received 
traverser%n");
         if (doUntil(start, true)) {
+            System.out.printf("RepeatStep.computerAlgorithm: doUntil=true, 
exiting%n");
             start.setStepId(this.getNextStep().getId());
             start.addLabels(this.labels);
             return IteratorUtils.of(start);
         } else {
+            System.out.printf("RepeatStep.computerAlgorithm: entering repeat 
body%n");
             start.setStepId(this.repeatTraversal.getStartStep().getId());
             String ln;
             if (this.loopName != null) {
                 ln = this.loopName;
             } else {
-                ln = start.getStepId();
+                ln = this.getId();
             }
-            start.initialiseLoops(start.getStepId(), ln);
+            start.initialiseLoops(this.getId(), ln);
             if (doEmit(start, true)) {
                 final Traverser.Admin<S> emitSplit = start.split();
                 emitSplit.resetLoops();
@@ -368,8 +371,11 @@ public final class RepeatStep<S> extends 
ComputerAwareStep<S, S> implements Trav
         protected Iterator<Traverser.Admin<S>> computerAlgorithm() throws 
NoSuchElementException {
             final RepeatStep<S> repeatStep = (RepeatStep<S>) 
this.getTraversal().getParent();
             final Traverser.Admin<S> start = this.starts.next();
+            System.out.printf("RepeatEndStep.computerAlgorithm: %s loops=%d 
before incrLoops%n", start.path(), start.loops());
             start.incrLoops();
+            System.out.printf("RepeatEndStep.computerAlgorithm: %s loops=%d 
after incrLoops%n", start.path(), start.loops());
             if (repeatStep.doUntil(start, false)) {
+                System.out.printf("RepeatEndStep.computerAlgorithm: 
doUntil=true, calling resetLoops for %s%n", start.path());
                 start.resetLoops();
                 start.setStepId(repeatStep.getNextStep().getId());
                 start.addLabels(repeatStep.labels);
@@ -378,6 +384,7 @@ public final class RepeatStep<S> extends 
ComputerAwareStep<S, S> implements Trav
                 start.setStepId(repeatStep.getId());
                 if (repeatStep.doEmit(start, false)) {
                     final Traverser.Admin<S> emitSplit = start.split();
+                    System.out.printf("RepeatEndStep.computerAlgorithm: 
doEmit=true, calling resetLoops for emitSplit %s%n", emitSplit.path());
                     emitSplit.resetLoops();
                     emitSplit.setStepId(repeatStep.getNextStep().getId());
                     emitSplit.addLabels(repeatStep.labels);
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStep.java
index b1c61905ea..50ea137f20 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStep.java
@@ -68,35 +68,40 @@ public final class RangeGlobalStep<S> extends FilterStep<S> 
implements Ranging,
 
     @Override
     protected boolean filter(final Traverser.Admin<S> traverser) {
+        System.out.printf("Filter called: %s loops=%d%n", traverser.path(), 
traverser.loops());
         if (this.bypass) return true;
 
         // Determine which counter to use
         AtomicLong currentCounter = this.counter;
         if (usePerIterationCounters) {
-            StringBuilder sb = new StringBuilder();
+            // Find the parent repeat step and use its loop context
+            String repeatStepId = null;
+            int repeatLoops = 0;
+            
             Traversal.Admin<?,?> t = this.traversal;
             while (!t.isRoot()) {
                 TraversalParent pt = t.getParent();
                 Step<?, ?> ps = pt.asStep();
-                String pid = ps.getId();
-                if (traverser.getLoopNames().contains(pid)) {
-                    sb.append(pid).append(":");
-                    sb.append(traverser.loops(pid)).append(":");
+                if (ps.getClass().getSimpleName().equals("RepeatStep")) {
+                    repeatStepId = ps.getId();
+                    if (traverser.getLoopNames().contains(repeatStepId)) {
+                        repeatLoops = traverser.loops(repeatStepId);
+                    }
+                    break;
                 }
                 t = ps.getTraversal();
             }
-            sb.append(this.getId()).append(":").append(traverser.loops());
-
-            // Create counter key that isolates between different repeat step 
contexts
-            String iterationKey = sb.toString();
-//            Object vId = ((Vertex) traverser.get()).property("id").value();
+            
+            // Create key based on repeat step and its current iteration
+            String iterationKey = repeatStepId + ":" + repeatLoops;
             currentCounter = 
perIterationCounters.computeIfAbsent(iterationKey, k -> new AtomicLong(0L));
-            // System.out.printf("IterationKey: %s Traverser: %s Path: %s 
Counter: %s High: %s%n", iterationKey, vId, traverser.path(), 
currentCounter.get(), this.high);
+            System.out.printf("IterationKey: %s RepeatLoops: %d Counter: %d 
Path: %s%n", iterationKey, repeatLoops, currentCounter.get(), traverser.path());
         }
 
+        System.out.printf("Traverser: %s%n", traverser);
         if (this.high != -1 && currentCounter.get() >= this.high) {
             if (usePerIterationCounters) {
-                // System.out.printf("Filter false for Traverser: %s Counter: 
%d%n", traverser.path(), currentCounter.get());
+                 System.out.printf("Filter false for Traverser: %s Counter: 
%d%n", traverser.path(), currentCounter.get());
                 return false;
             }
             // System.out.printf("FastNoSuchElementException for Traverser: %s 
Counter: %d%n", traverser.path(), currentCounter.get());
@@ -233,7 +238,9 @@ public final class RangeGlobalStep<S> extends FilterStep<S> 
implements Ranging,
 
     @Override
     public void addBarrier(final TraverserSet<S> barrier) {
+        System.out.printf("=== addBarrier called with %d traversers ===%n", 
barrier.size());
         
IteratorUtils.removeOnNext(barrier.iterator()).forEachRemaining(traverser -> {
+            System.out.printf("Barrier traverser: %s loops=%d%n", 
traverser.path(), traverser.loops());
             traverser.setSideEffects(this.getTraversal().getSideEffects());
             this.addStart(traverser);
         });
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
index f4d2743f24..f23d17e8cf 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
@@ -70,9 +70,16 @@ public class VertexStep<E extends Element> extends 
FlatMapStep<Vertex, E> implem
 
     @Override
     protected Iterator<E> flatMap(final Traverser.Admin<Vertex> traverser) {
-        return Vertex.class.isAssignableFrom(this.returnClass) ?
+        Iterator<E> result = Vertex.class.isAssignableFrom(this.returnClass) ?
                 (Iterator<E>) traverser.get().vertices(this.direction, 
this.edgeLabels) :
                 (Iterator<E>) traverser.get().edges(this.direction, 
this.edgeLabels);
+
+        // Count results for debugging
+        List<E> resultList = new java.util.ArrayList<>();
+        result.forEachRemaining(resultList::add);
+        System.out.printf("VertexStep.flatMap: traverser=%s direction=%s 
labels=%s results=%s%n",
+                traverser, this.direction, Arrays.toString(this.edgeLabels), 
resultList);
+        return resultList.iterator();
     }
 
     @Override
diff --git 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
index 297aa4a240..594090b1e1 100644
--- 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
+++ 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.function.BiFunction;
 import java.util.function.Supplier;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.tinkerpop.gremlin.process.computer.Computer;
 import org.apache.tinkerpop.gremlin.process.traversal.P;
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
@@ -58,8 +59,8 @@ import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.sack;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.select;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.union;
 import static 
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.valueMap;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com);
@@ -72,180 +73,165 @@ public class TinkerGraphPlayTest {
     public static void setup() {
         g = 
TinkerGraph.open().traversal().withoutStrategies(RepeatUnrollStrategy.class);
         load(g);
+        g = g.withComputer(Computer.compute().workers(1));
     }
     
     @Test
     public void testBasicRepeatLimit() {
-        GraphTraversal<Vertex, Path> basic = g.V().has("id", "l1-0")
+        GraphTraversal<Vertex, Vertex> basic = g.V().has("id", "l1-0")
                 .repeat(__.limit(1).out("knows"))
-                .times(2).path().by("id");
-        GraphTraversal<Vertex, Path> basicUnfolded = g.V().has("id", "l1-0")
+                .times(2);
+        GraphTraversal<Vertex, Vertex> basicUnfolded = g.V().has("id", "l1-0")
                 .limit(1).out("knows")
-                .limit(1).out("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("basic", basic), 
toListAndPrint("basicUnfolded", basicUnfolded));
+                .limit(1).out("knows");
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("basic", 
basic), toListAndPrint("basicUnfolded", basicUnfolded)));
     }
 
     @Test
     public void testBasicRepeatLimitIncreasedLimit() {
-        GraphTraversal<Vertex, Path> basic = g.V().has("id", "l1-0")
+        GraphTraversal<Vertex, Vertex> basic = g.V().has("id", "l1-0")
                 .repeat(__.limit(2).out("knows"))
-                .times(2).path().by("id");
-        GraphTraversal<Vertex, Path> basicUnfolded = g.V().has("id", "l1-0")
-                .limit(2).out("knows")
+                .times(2);
+        GraphTraversal<Vertex, Vertex> basicUnfolded = g.V().has("id", "l1-0")
                 .limit(2).out("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("basic", basic), 
toListAndPrint("basicUnfolded", basicUnfolded));
+                .limit(2).out("knows");
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("basic", 
basic), toListAndPrint("basicUnfolded", basicUnfolded)));
 
     }
 
     @Test
     public void testRepeatOutLimit() {
         GraphTraversal<Vertex, Path> outLimit = g.V().has("id", "l2-0")
-                .repeat(__.out("knows").limit(2))
-                .times(2).path().by("id");
+                .repeat(__.out("knows").order().by("id").limit(2))
+                .times(2)
+                .path().by(T.id);
         GraphTraversal<Vertex, Path> outLimitUnfolded = g.V().has("id", "l2-0")
-                .out("knows").limit(2)
-                .out("knows").limit(2)
-                .path().by("id");
-        assertEquals(toListAndPrint("outLimit", outLimit), 
toListAndPrint("outLimitUnfolded", outLimitUnfolded));
+                .out("knows").order().by("id").limit(2)
+                .out("knows").order().by("id").limit(2)
+                .path().by(T.id);
+        
assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("outLimit", 
outLimit), toListAndPrint("outLimitUnfolded", outLimitUnfolded)));
     }
 
     @Test
     public void testRepeatWithBothAndLimit() {
-        GraphTraversal<Vertex, Path> bothLimit = g.V().has("id", "l3-0")
-                .repeat(__.both("knows").limit(3))
-                .times(2).path().by("id");
-        GraphTraversal<Vertex, Path> bothLimitUnfolded = g.V().has("id", 
"l3-0")
-                .both("knows").limit(3)
-                .both("knows").limit(3)
-                .path().by("id");
-        assertEquals(toListAndPrint("bothLimit", bothLimit), 
toListAndPrint("bothLimitUnfolded", bothLimitUnfolded));
+        GraphTraversal<Vertex, Vertex> bothLimit = g.V().has("id", "l3-0")
+                .repeat(__.both("knows").order().by("id").limit(3))
+                .times(2);
+        GraphTraversal<Vertex, Vertex> bothLimitUnfolded = g.V().has("id", 
"l3-0")
+                .both("knows").order().by("id").limit(3)
+                .both("knows").order().by("id").limit(3);
+        
assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("bothLimit", 
bothLimit), toListAndPrint("bothLimitUnfolded", bothLimitUnfolded)));
     }
 
     @Test
     public void testRepeatWithFilterAndLimit() {
-        GraphTraversal<Vertex, Path> filterLimit = g.V().has("id", "l2-0")
-                .repeat(__.out("knows").has("id", P.neq("l4-3")).limit(2))
-                .times(2).path().by("id");
-        GraphTraversal<Vertex, Path> filterLimitUnfolded = g.V().has("id", 
"l2-0")
-                .out("knows").has("id", P.neq("l4-3")).limit(2)
-                .out("knows").has("id", P.neq("l4-3")).limit(2)
-                .path().by("id");
-        assertEquals(toListAndPrint("filterLimit", filterLimit), 
toListAndPrint("filterLimitUnfolded", filterLimitUnfolded));
+        GraphTraversal<Vertex, Vertex> filterLimit = g.V().has("id", "l2-0")
+                .repeat(__.out("knows").has("id", 
P.neq("l4-3")).order().limit(2))
+                .times(2);
+        GraphTraversal<Vertex, Vertex> filterLimitUnfolded = g.V().has("id", 
"l2-0")
+                .out("knows").has("id", P.neq("l4-3")).order().limit(2)
+                .out("knows").has("id", P.neq("l4-3")).order().limit(2);
+        
assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("filterLimit", 
filterLimit), toListAndPrint("filterLimitUnfolded", filterLimitUnfolded)));
     }
 
     @Test
     public void testChainedRepeatLimit() {
-        GraphTraversal<Vertex, Path> chained = g.V().has("id", "l2-0")
-                .repeat(__.limit(1).out("knows")).times(2)
-                .repeat(__.limit(1).in("knows")).times(2)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> chainedUnfolded = g.V().has("id", "l2-0")
-                .limit(1).out("knows")
-                .limit(1).out("knows")
-                .limit(1).in("knows")
-                .limit(1).in("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("chained", chained),  
toListAndPrint("chainedUnfolded", chainedUnfolded));
+        GraphTraversal<Vertex, Vertex> chained = g.V().has("id", "l2-0")
+                .repeat(__.order().by("id").limit(1).out("knows")).times(2)
+                .repeat(__.order().by("id").limit(1).in("knows")).times(2);
+        GraphTraversal<Vertex, Vertex> chainedUnfolded = g.V().has("id", 
"l2-0")
+                .order().by("id").limit(1).out("knows")
+                .order().by("id").limit(1).out("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).in("knows");
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("chained", 
chained),  toListAndPrint("chainedUnfolded", chainedUnfolded)));
     }
 
     @Test
     public void testChainedRepeatLimitIncreasedLimit() {
-        GraphTraversal<Vertex, Path> chained = g.V().has("id", "l2-0")
-                .repeat(__.limit(2).out("knows")).times(2)
-                .repeat(__.limit(3).in("knows")).times(2)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> chainedUnfolded = g.V().has("id", "l2-0")
-                .limit(2).out("knows")
-                .limit(2).out("knows")
-                .limit(3).in("knows")
-                .limit(3).in("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("chained", chained),  
toListAndPrint("chainedUnfolded", chainedUnfolded));
+        GraphTraversal<Vertex, Vertex> chained = g.V().has("id", "l2-0")
+                .repeat(__.order().by("id").limit(2).out("knows")).times(2)
+                .repeat(__.order().by("id").limit(3).in("knows")).times(2);
+        GraphTraversal<Vertex, Vertex> chainedUnfolded = g.V().has("id", 
"l2-0")
+                .order().by("id").limit(2).out("knows")
+                .order().by("id").limit(2).out("knows")
+                .order().by("id").limit(3).in("knows")
+                .order().by("id").limit(3).in("knows");
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("chained", 
chained),  toListAndPrint("chainedUnfolded", chainedUnfolded)));
     }
 
     @Test
     public void testNestedRepeatLimit() {
-        GraphTraversal<Vertex, Path> nested = g.V().has("id", "l3-0")
-                .repeat(__.limit(1).out("knows")
-                        .repeat(__.limit(1).in("knows"))
+        GraphTraversal<Vertex, Vertex> nested = g.V().has("id", "l3-0")
+                .repeat(__.order().by("id").limit(1).out("knows")
+                        .repeat(__.order().by("id").limit(1).in("knows"))
                         .times(2))
-                .times(2)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> nestedUnfolded = g.V().has("id", "l3-0")
-                .limit(1).out("knows")
-                .limit(1).in("knows")
-                .limit(1).in("knows")
-                .limit(1).out("knows")
-                .limit(1).in("knows")
-                .limit(1).in("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("nested", nested), 
toListAndPrint("nestedUnfolded", nestedUnfolded));
-
-        GraphTraversal<Vertex, Path> nested2 = g.V().has("id", 
"l3-0").out("knows").
-                repeat(__.limit(1).out("knows")
-                        .repeat(__.limit(1).in("knows"))
+                .times(2);
+        GraphTraversal<Vertex, Vertex> nestedUnfolded = g.V().has("id", "l3-0")
+                .order().by("id").limit(1).out("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).out("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).in("knows");
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("nested", 
nested), toListAndPrint("nestedUnfolded", nestedUnfolded)));
+
+        GraphTraversal<Vertex, Vertex> nested2 = g.V().has("id", 
"l3-0").out("knows").order().by("id").
+                repeat(__.order().by("id").limit(1).out("knows")
+                        .repeat(__.order().by("id").limit(1).in("knows"))
                         .times(2)).
-                times(2)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> nested2Unfolded = g.V().has("id", 
"l3-0").out("knows")
-                .limit(1).out("knows")
-                .limit(1).in("knows")
-                .limit(1).in("knows")
-                .limit(1).out("knows")
-                .limit(1).in("knows")
-                .limit(1).in("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("nested2", nested2), 
toListAndPrint("nested2Unfolded", nested2Unfolded));
+                times(2);
+        GraphTraversal<Vertex, Vertex> nested2Unfolded = g.V().has("id", 
"l3-0").out("knows").order().by("id")
+                .order().by("id").limit(1).out("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).out("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).in("knows");
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("nested2", 
nested2), toListAndPrint("nested2Unfolded", nested2Unfolded)));
     }
 
     @Test
     public void testNestedRepeatLimitIncreasedLimit() {
-        GraphTraversal<Vertex, Path> nested = g.V().has("id", "l3-0")
-                .repeat(__.limit(2).out("knows")
-                        .repeat(__.limit(3).in("knows"))
+        GraphTraversal<Vertex, Vertex> nested = g.V().has("id", "l3-0")
+                .repeat(__.order().by("id").limit(2).out("knows")
+                        .repeat(__.order().by("id").limit(3).in("knows"))
                         .times(2))
-                .times(2)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> nestedUnfolded = g.V().has("id", "l3-0")
-                .limit(2).out("knows")
-                .limit(3).in("knows")
-                .limit(3).in("knows")
-                .limit(2).out("knows")
-                .limit(3).in("knows")
-                .limit(3).in("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("nested", nested), 
toListAndPrint("nestedUnfolded", nestedUnfolded));
-
-        GraphTraversal<Vertex, Path> nested2 = g.V().has("id", 
"l3-0").out("knows").
-                repeat(__.limit(1).out("knows")
-                        .repeat(__.limit(1).in("knows"))
+                .times(2);
+        GraphTraversal<Vertex, Vertex> nestedUnfolded = g.V().has("id", "l3-0")
+                .order().by("id").limit(2).out("knows")
+                .order().by("id").limit(3).in("knows")
+                .order().by("id").limit(3).in("knows")
+                .order().by("id").limit(2).out("knows")
+                .order().by("id").limit(3).in("knows")
+                .order().by("id").limit(3).in("knows");
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("nested", 
nested), toListAndPrint("nestedUnfolded", nestedUnfolded)));
+
+        GraphTraversal<Vertex, Vertex> nested2 = g.V().has("id", 
"l3-0").out("knows").
+                repeat(__.order().by("id").limit(1).out("knows")
+                        .repeat(__.order().by("id").limit(1).in("knows"))
                         .times(2)).
-                times(2)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> nested2Unfolded = g.V().has("id", 
"l3-0").out("knows")
-                .limit(1).out("knows")
-                .limit(1).in("knows")
-                .limit(1).in("knows")
-                .limit(1).out("knows")
-                .limit(1).in("knows")
-                .limit(1).in("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("nested2", nested2), 
toListAndPrint("nested2Unfolded", nested2Unfolded));
+                times(2);
+        GraphTraversal<Vertex, Vertex> nested2Unfolded = g.V().has("id", 
"l3-0").out("knows")
+                .order().by("id").limit(1).out("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).out("knows")
+                .order().by("id").limit(1).in("knows")
+                .order().by("id").limit(1).in("knows");
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("nested2", 
nested2), toListAndPrint("nested2Unfolded", nested2Unfolded)));
     }
 
     @Test
     public void testTripleNestedRepeatLimit() {
-        GraphTraversal<Vertex, Path> tripleNested = g.V().has("id", "l1-0")
+        GraphTraversal<Vertex, Vertex> tripleNested = g.V().has("id", "l1-0")
                 .repeat(__.limit(1).out("knows")
                         .repeat(__.limit(1).in("knows")
                                 .repeat(__.limit(1).out("knows"))
                                 .times(2))
                         .times(2))
-                .times(2)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> tripleNestedUnfolded = g.V().has("id", 
"l1-0")
+                .times(2);
+        GraphTraversal<Vertex, Vertex> tripleNestedUnfolded = g.V().has("id", 
"l1-0")
                 .limit(1).out("knows")
                 .limit(1).in("knows")
                 .limit(1).out("knows")
@@ -259,22 +245,20 @@ public class TinkerGraphPlayTest {
                 .limit(1).out("knows")
                 .limit(1).in("knows")
                 .limit(1).out("knows")
-                .limit(1).out("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("tripleNested", tripleNested), 
toListAndPrint("tripleNestedUnfolded", tripleNestedUnfolded));
+                .limit(1).out("knows");
+        
assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("tripleNested", 
tripleNested), toListAndPrint("tripleNestedUnfolded", tripleNestedUnfolded)));
     }
 
     @Test
     public void testTripleNestedRepeatLimitIncreasedLimit() {
-        GraphTraversal<Vertex, Path> tripleNested = g.V().has("id", "l1-0")
+        GraphTraversal<Vertex, Vertex> tripleNested = g.V().has("id", "l1-0")
                 .repeat(__.limit(2).out("knows")
                         .repeat(__.limit(3).in("knows")
                                 .repeat(__.limit(4).out("knows"))
                                 .times(2))
                         .times(2))
-                .times(2)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> tripleNestedUnfolded = g.V().has("id", 
"l1-0")
+                .times(2);
+        GraphTraversal<Vertex, Vertex> tripleNestedUnfolded = g.V().has("id", 
"l1-0")
                 .limit(2).out("knows")
                 .limit(3).in("knows")
                 .limit(4).out("knows")
@@ -288,9 +272,8 @@ public class TinkerGraphPlayTest {
                 .limit(4).out("knows")
                 .limit(3).in("knows")
                 .limit(4).out("knows")
-                .limit(4).out("knows")
-                .path().by("id");
-        assertEquals(toListAndPrint("tripleNested", tripleNested), 
toListAndPrint("tripleNestedUnfolded", tripleNestedUnfolded));
+                .limit(4).out("knows");
+        
assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("tripleNested", 
tripleNested), toListAndPrint("tripleNestedUnfolded", tripleNestedUnfolded)));
     }
 
     @Test
@@ -303,7 +286,7 @@ public class TinkerGraphPlayTest {
                 .limit(1).out("knows").aggregate("x")
                 .limit(1).out("knows").aggregate("x")
                 .cap("x");
-        assertEquals(toListAndPrint("aggregate", aggregate), 
toListAndPrint("aggregateUnfolded", aggregateUnfolded));
+        
assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("aggregate", 
aggregate), toListAndPrint("aggregateUnfolded", aggregateUnfolded)));
     }
 
     @Test
@@ -316,33 +299,29 @@ public class TinkerGraphPlayTest {
                 .limit(3).out("knows").aggregate("x")
                 .limit(3).out("knows").aggregate("x")
                 .cap("x");
-        assertEquals(toListAndPrint("aggregate", aggregate), 
toListAndPrint("aggregateUnfolded", aggregateUnfolded));
+        
assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("aggregate", 
aggregate), toListAndPrint("aggregateUnfolded", aggregateUnfolded)));
     }
 
     @Test
     public void testUnionRepeatLimit() {
-        GraphTraversal<Vertex, Path> union = g.V().has("id", "l1-0")
+        GraphTraversal<Vertex, Vertex> union = g.V().has("id", "l1-0")
                 .union(out().limit(1), out().out().limit(1))
-                .repeat(__.limit(1)).times(1)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> unionUnfolded = g.V().has("id", "l1-0")
+                .repeat(__.limit(1)).times(1);
+        GraphTraversal<Vertex, Vertex> unionUnfolded = g.V().has("id", "l1-0")
                 .union(out().limit(1), out().out().limit(1))
-                .limit(1)
-                .path().by("id");
-        assertEquals(toListAndPrint("union", union), 
toListAndPrint("unionUnfolded", unionUnfolded));
+                .limit(1);
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("union", 
union), toListAndPrint("unionUnfolded", unionUnfolded)));
     }
 
     @Test
     public void testUnionRepeatLimitIncreasedLimit() {
-        GraphTraversal<Vertex, Path> union = g.V().has("id", "l1-0")
+        GraphTraversal<Vertex, Vertex> union = g.V().has("id", "l1-0")
                 .union(out().limit(1), out().out().limit(1))
-                .repeat(__.limit(3)).times(1)
-                .path().by("id");
-        GraphTraversal<Vertex, Path> unionUnfolded = g.V().has("id", "l1-0")
+                .repeat(__.limit(3)).times(1);
+        GraphTraversal<Vertex, Vertex> unionUnfolded = g.V().has("id", "l1-0")
                 .union(out().limit(1), out().out().limit(1))
-                .limit(3)
-                .path().by("id");
-        assertEquals(toListAndPrint("union", union), 
toListAndPrint("unionUnfolded", unionUnfolded));
+                .limit(3);
+        assertTrue(CollectionUtils.isEqualCollection(toListAndPrint("union", 
union), toListAndPrint("unionUnfolded", unionUnfolded)));
     }
     
     private List toListAndPrint(String header, GraphTraversal t) {

Reply via email to