|
|
@@ -10,6 +10,7 @@ import java.io.BufferedReader;
|
|
|
import java.io.StringReader;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
import java.util.ListIterator;
|
|
|
@@ -174,6 +175,23 @@ public class IteratorUtilsTest {
|
|
|
.function(new IteratorParams(), this::range2greater)
|
|
|
.run();
|
|
|
}
|
|
|
+ @Test
|
|
|
+ public void testFilter_Lazy() {
|
|
|
+ List<Integer> generated = new ArrayList<>();
|
|
|
+
|
|
|
+ Iterator<Integer> iterator = IteratorUtils.map(Arrays.asList(7, 8, 3, 4, 5, 6).iterator(), v -> {
|
|
|
+ generated.add(v);
|
|
|
+ return v;
|
|
|
+ });
|
|
|
+
|
|
|
+ Iterator<Integer> filtered = IteratorUtils.filter(iterator, v -> true);
|
|
|
+
|
|
|
+ assertTrue(generated.isEmpty());
|
|
|
+ assertTrue(filtered.hasNext());
|
|
|
+ assertEquals(Collections.singletonList(7), generated);
|
|
|
+ assertEquals(7, filtered.next().intValue());
|
|
|
+ assertEquals(Collections.singletonList(7), generated);
|
|
|
+ }
|
|
|
|
|
|
@Test
|
|
|
public void testLimit_Iterator() {
|