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");