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/20 15:46:56 UTC

[3/4] incubator-tinkerpop git commit: Covered some un-tested code in the IteratorUtils.

Covered some un-tested code in the 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/2474a748
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/2474a748
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/2474a748

Branch: refs/heads/master
Commit: 2474a748e88701ab7e609a28735cc2e3f74cd583
Parents: 4a44b30
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed May 20 09:40:33 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed May 20 09:40:33 2015 -0400

----------------------------------------------------------------------
 .../gremlin/util/iterator/IteratorUtils.java    |  7 +--
 .../util/iterator/IteratorUtilsTest.java        | 56 ++++++++++++++++++--
 2 files changed, 54 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/2474a748/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 421d0b2..3823181 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
@@ -260,12 +260,7 @@ public final class IteratorUtils {
     }
 
     public static final <S> Iterable<S> filter(final Iterable<S> iterable, final Predicate<S> predicate) {
-        return new Iterable<S>() {
-            @Override
-            public Iterator<S> iterator() {
-                return IteratorUtils.filter(iterable.iterator(), predicate);
-            }
-        };
+        return () -> IteratorUtils.filter(iterable.iterator(), predicate);
     }
 
     ///////////////////

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/2474a748/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 e909854..7aacbce 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
@@ -19,9 +19,11 @@
 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.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Modifier;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
@@ -53,6 +55,14 @@ public class IteratorUtilsTest {
     }
 
     @Test
+    public void shouldHavePrivateConstructor() throws Exception {
+        final Constructor<IteratorUtils> constructor = IteratorUtils.class.getDeclaredConstructor();
+        assertTrue(Modifier.isPrivate(constructor.getModifiers()));
+        constructor.setAccessible(true);
+        constructor.newInstance();
+    }
+
+    @Test
     public void shouldIterateToEnd() {
         final Iterator itty = Arrays.asList(1, 2, 3).iterator();
         IteratorUtils.iterate(itty);
@@ -369,7 +379,7 @@ public class IteratorUtilsTest {
         assertEquals(1, m1.get("3").size());
         assertEquals(3, m1.size());
 
-        final Map<String,List<String>> m2 = IteratorUtils.groupBy(iterable.iterator(), i -> i.substring(0,4));
+        final Map<String,List<String>> m2 = IteratorUtils.groupBy(iterable.iterator(), i -> i.substring(0, 4));
         assertEquals("test1", m2.get("test").get(0));
         assertEquals("test2", m2.get("test").get(1));
         assertEquals("test3", m2.get("test").get(2));
@@ -397,6 +407,17 @@ public class IteratorUtilsTest {
         assertIterator(IteratorUtils.map(iterable, s -> "test" + s).iterator(), 3);
     }
 
+    @Test(expected = FastNoSuchElementException.class)
+    public void shouldThrowOnFilterIfNextedPastAvailable() {
+        final List<String> iterable = new ArrayList<>();
+        iterable.add("test1");
+        iterable.add("test2");
+        iterable.add("test3");
+
+        final Iterator<String> filteredItty = IteratorUtils.filter(iterable.iterator(), s -> s.startsWith("dfaa"));
+        filteredItty.next();
+    }
+
     @Test
     public void shouldFilterAllFromIterator() {
         final List<String> iterable = new ArrayList<>();
@@ -418,6 +439,33 @@ public class IteratorUtilsTest {
     }
 
     @Test
+    public void shouldFilterNoneFromIteratorWithoutHasNextCheckFirst() {
+        final List<String> iterable = new ArrayList<>();
+        iterable.add("test1");
+        iterable.add("test2");
+        iterable.add("test3");
+
+        final Iterator<String> filteredItty = IteratorUtils.filter(iterable.iterator(), s -> s.startsWith("test"));
+        assertEquals("test1",  filteredItty.next());
+        assertEquals("test2",  filteredItty.next());
+        assertEquals("test3",  filteredItty.next());
+    }
+
+    @Test
+    public void shouldFilterNoneFromIteratorWithMultipleChecksOfHasNext() {
+        final List<String> iterable = new ArrayList<>();
+        iterable.add("test1");
+        iterable.add("test2");
+        iterable.add("test3");
+
+        final Iterator<String> filteredItty = IteratorUtils.filter(iterable.iterator(), s -> s.startsWith("test"));
+        assertThat(filteredItty.hasNext(), is(true));
+        assertThat(filteredItty.hasNext(), is(true));
+        assertThat(filteredItty.hasNext(), is(true));
+        assertIterator(filteredItty, 3);
+    }
+
+    @Test
     public void shouldFilterSomeFromIterator() {
         final List<String> iterable = new ArrayList<>();
         iterable.add("test1");
@@ -437,6 +485,7 @@ public class IteratorUtilsTest {
         assertIterator(IteratorUtils.filter(iterable, s -> s.startsWith("dfaa")).iterator(), 0);
     }
 
+
     @Test
     public void shouldFilterNoneFromIterable() {
         final List<String> iterable = new ArrayList<>();
@@ -489,7 +538,7 @@ public class IteratorUtilsTest {
         iterable.add("2");
         iterable.add("3");
 
-        assertEquals("test123", IteratorUtils.reduce(iterable, "test", (a,b) -> a + b));
+        assertEquals("test123", IteratorUtils.reduce(iterable, "test", (a, b) -> a + b));
     }
 
     @Test
@@ -537,6 +586,7 @@ public class IteratorUtilsTest {
 
     public <S> void assertIterator(final Iterator<S> itty, final int size) {
         for (int ix = 0; ix < size; ix++) {
+            assertThat(itty.hasNext(), is(true));
             assertEquals("test" + (ix + 1), itty.next());
         }