You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/05/19 20:35:09 UTC

incubator-tinkerpop git commit: Added more tests of IteratorUtils.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 8b3a0d096 -> 283a12950


Added more tests of IteratorUtils.


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

Branch: refs/heads/master
Commit: 283a12950a5fc3f18fbb870f53b89f734eb0897c
Parents: 8b3a0d0
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue May 19 14:34:53 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue May 19 14:34:53 2015 -0400

----------------------------------------------------------------------
 .../gremlin/util/iterator/IteratorUtils.java    |  6 +-
 .../util/iterator/IteratorUtilsTest.java        | 63 ++++++++++++++++++++
 2 files changed, 65 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/283a1295/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtils.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtils.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtils.java
index 352b105..421d0b2 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtils.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtils.java
@@ -41,9 +41,7 @@ import java.util.stream.Stream;
  */
 public final class IteratorUtils {
 
-    private IteratorUtils() {
-
-    }
+    private IteratorUtils() {}
 
     public static final <S> Iterator<S> of(final S a) {
         return new SingleIterator<>(a);
@@ -88,7 +86,7 @@ public final class IteratorUtils {
         return fill(iterator, new HashSet<>());
     }
 
-    public static <S> Iterator<S> limit(final Iterator<S> iterator, int limit) {
+    public static <S> Iterator<S> limit(final Iterator<S> iterator, final int limit) {
         return new Iterator<S>() {
             private int count = 0;
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/283a1295/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtilsTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtilsTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtilsTest.java
index 6f3640f..e909854 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtilsTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/iterator/IteratorUtilsTest.java
@@ -18,15 +18,22 @@
  */
 package org.apache.tinkerpop.gremlin.util.iterator;
 
+import org.apache.tinkerpop.gremlin.process.traversal.util.FastNoSuchElementException;
+import org.hamcrest.CoreMatchers;
 import org.junit.Test;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
+import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -46,6 +53,62 @@ public class IteratorUtilsTest {
     }
 
     @Test
+    public void shouldIterateToEnd() {
+        final Iterator itty = Arrays.asList(1, 2, 3).iterator();
+        IteratorUtils.iterate(itty);
+        assertThat(itty.hasNext(), is(false));
+    }
+
+    @Test
+    public void shouldNotFailToIterateIfIteratorIsEmpty() {
+        final Iterator itty = new ArrayList().iterator();
+        IteratorUtils.iterate(itty);
+        assertThat(itty.hasNext(), is(false));
+    }
+
+    @Test
+    public void shouldConvertIteratorToListAndSort() {
+        final Iterator<Integer> itty = Arrays.asList(1, 2, 3).iterator();
+        final List<Integer> list = IteratorUtils.list(itty, Comparator.<Integer>reverseOrder());
+        assertEquals(3, list.get(0).intValue());
+        assertEquals(2, list.get(1).intValue());
+        assertEquals(1, list.get(2).intValue());
+    }
+
+    @Test
+    public void shouldIterateToSet() {
+        final Iterator<Integer> itty = Arrays.asList(1, 2, 3, 3, 2, 1).iterator();
+        final Set<Integer> set = IteratorUtils.set(itty);
+        assertEquals(3, set.size());
+        assertThat(set, hasItems(1, 2, 3));
+    }
+
+    @Test(expected = FastNoSuchElementException.class)
+    public void shouldThrowOnLimitIfIteratorExceeded() {
+        final Iterator<Integer> itty = Arrays.asList(1, 2, 3).iterator();
+        final Iterator<Integer> limitedItty = IteratorUtils.limit(itty, 1);
+        limitedItty.next();
+        limitedItty.next();
+    }
+
+    @Test
+    public void shouldFlatMapIterator() {
+        final Iterator<Iterator<Integer>> itty = Arrays.asList(Arrays.asList(1, 2, 3).iterator(), new ArrayList<Integer>().iterator(), Arrays.asList(4, 5, 6).iterator()).iterator();
+        final List<Integer> list = IteratorUtils.list(IteratorUtils.flatMap(itty, x -> IteratorUtils.map(x, i -> i * 10)));
+        assertEquals(6, list.size());
+        assertThat(list, hasItems(10, 20, 30, 40, 50, 60));
+    }
+
+    @Test(expected = FastNoSuchElementException.class)
+    public void shouldThrowOnFlatMapIfIteratorExceeded() {
+        final Iterator<Iterator<Integer>> itty = Arrays.asList(Arrays.asList(1).iterator(), new ArrayList<Integer>().iterator(), Arrays.asList(4).iterator()).iterator();
+        final Iterator<Integer> limitedItty = IteratorUtils.flatMap(itty, x -> IteratorUtils.map(x, i -> i * 10));
+        limitedItty.next();
+        limitedItty.next();
+        limitedItty.next();
+    }
+
+    @Test
     public void shouldConvertIterableToIterator() {
         final List<String> iterable = new ArrayList<>();
         iterable.add("test1");