From 879f53add0eb030ba6eee502d11b919d9ae25997 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 31 Jul 2016 17:14:35 +0100 Subject: Throw error if iterables are of different lengths --- src/main/java/org/zwobble/couscous/util/ExtraLists.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/main') diff --git a/src/main/java/org/zwobble/couscous/util/ExtraLists.java b/src/main/java/org/zwobble/couscous/util/ExtraLists.java index 147fe00..aa1f35f 100644 --- a/src/main/java/org/zwobble/couscous/util/ExtraLists.java +++ b/src/main/java/org/zwobble/couscous/util/ExtraLists.java @@ -108,16 +108,23 @@ public class ExtraLists { Iterable iterable2, BiFunction function) { - // TODO: error handling when iterables are different lengths Iterator iterator1 = iterable1.iterator(); Iterator iterator2 = iterable2.iterator(); ImmutableList.Builder result = ImmutableList.builder(); - while (iterator1.hasNext()) { + while (iterator1.hasNext() && iterator2.hasNext()) { result.add(function.apply(iterator1.next(), iterator2.next())); } + if (iterator1.hasNext()) { + throw new RuntimeException("iterable1 longer than iterable2"); + } + + if (iterator2.hasNext()) { + throw new RuntimeException("iterable2 longer than iterable1"); + } + return result.build(); } -- cgit v1.2.3