private static final void testMaxSplitDiff(NumberSequenceIterator[] iters) { long minSplitSize = Long.MAX_VALUE; long maxSplitSize = Long.MIN_VALUE; for (NumberSequenceIterator iter : iters) { long diff; if (iter.getTo() < iter.getCurrent()) { diff = 0; } else { diff = iter.getTo() - iter.getCurrent(); } if (diff < 0) { diff = Long.MAX_VALUE; } minSplitSize = Math.min(minSplitSize, diff); maxSplitSize = Math.max(maxSplitSize, diff); } assertTrue(maxSplitSize == minSplitSize || maxSplitSize-1 == minSplitSize); }
private static final void testSplitting(NumberSequenceIterator iter, int numSplits) { NumberSequenceIterator[] splits = iter.split(numSplits); assertEquals(numSplits, splits.length); // test start and end of range assertEquals(iter.getCurrent(), splits[0].getCurrent()); assertEquals(iter.getTo(), splits[numSplits-1].getTo()); // test continuous range for (int i = 1; i < splits.length; i++) { assertEquals(splits[i-1].getTo() + 1, splits[i].getCurrent()); } testMaxSplitDiff(splits); }