summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/funcutils
diff options
context:
space:
mode:
Diffstat (limited to 'base/src/main/java/bjc/utils/funcutils')
-rw-r--r--base/src/main/java/bjc/utils/funcutils/IteratorUtils.java33
-rw-r--r--base/src/main/java/bjc/utils/funcutils/TestUtils.java18
2 files changed, 46 insertions, 5 deletions
diff --git a/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java b/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java
new file mode 100644
index 0000000..55e5985
--- /dev/null
+++ b/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java
@@ -0,0 +1,33 @@
+package bjc.utils.funcutils;
+
+import java.util.Iterator;
+
+/**
+ * Utility methods for dealing with iterators.
+ *
+ * @author bjculkin
+ *
+ */
+public class IteratorUtils {
+ /**
+ * Convert an iterator to an iterable.
+ *
+ * @param itr
+ * The iterator to convert.
+ * @return An iterable that gives back that iterator.
+ */
+ public static <E> Iterable<E> I(Iterator<E> itr) {
+ return () -> itr;
+ }
+
+ /**
+ * Convert an iterable to an iterator.
+ *
+ * @param itr
+ * The iterable to convert.
+ * @return The iterator from that iterable
+ */
+ public static <E> Iterator<E> I(Iterable<E> itr) {
+ return itr.iterator();
+ }
+}
diff --git a/base/src/main/java/bjc/utils/funcutils/TestUtils.java b/base/src/main/java/bjc/utils/funcutils/TestUtils.java
index 124389e..586d366 100644
--- a/base/src/main/java/bjc/utils/funcutils/TestUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/TestUtils.java
@@ -38,20 +38,28 @@ public class TestUtils {
* The values to expect from the iterator.
*/
@SafeVarargs
- public static <T> void assertIteratorEquals(Iterator<T> src, boolean hasMore, T... vals) {
+ public static <T> void assertIteratorEquals(boolean hasMore, Iterator<T> src, T... vals) {
+ /*
+ * @NOTE
+ *
+ * Even though it's awkward, the boolean has to come first.
+ * Otherwise, there are cases where the compiler will get
+ * confused as to what the right value for T is, and be unable
+ * to pick an overload.
+ */
assertIteratorEquals(src, vals);
-
+
assertEquals(hasMore, src.hasNext());
}
-
+
@SafeVarargs
public static <T> void assertListEquals(List<T> src, T... exps) {
assertEquals(exps.length, src.size());
-
+
int i = 0;
for (T act : src) {
T exp = exps[i++];
-
+
assertEquals(exp, act);
}
}