@Test public void testSanity() { final ArrayList<Iterator<Integer>> iterators = new ArrayList<>(); iterators.add(Arrays.asList(1, 3, 5, 7, 9).iterator()); iterators.add(Arrays.asList(2, 8).iterator()); iterators.add(Arrays.asList(4, 6, 8).iterator()); OrderedMergeIterator<Integer> iter = new OrderedMergeIterator<Integer>( Ordering.natural(), iterators.iterator() ); Assert.assertEquals(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 8, 9), Lists.newArrayList(iter)); }
@Test public void testScrewsUpOnOutOfOrderBeginningOfList() { final ArrayList<Iterator<Integer>> iterators = new ArrayList<>(); iterators.add(Arrays.asList(1, 3, 5, 7, 9).iterator()); iterators.add(Arrays.asList(4, 6).iterator()); iterators.add(Arrays.asList(2, 8).iterator()); OrderedMergeIterator<Integer> iter = new OrderedMergeIterator<Integer>( Ordering.natural(), iterators.iterator() ); Assert.assertEquals(Arrays.asList(1, 3, 4, 2, 5, 6, 7, 8, 9), Lists.newArrayList(iter)); }
@Test public void testScrewsUpOnOutOfOrderInList() { final ArrayList<Iterator<Integer>> iterators = new ArrayList<>(); iterators.add(Arrays.asList(1, 3, 5, 4, 7, 9).iterator()); iterators.add(Arrays.asList(2, 8).iterator()); iterators.add(Arrays.asList(4, 6).iterator()); OrderedMergeIterator<Integer> iter = new OrderedMergeIterator<Integer>( Ordering.natural(), iterators.iterator() ); Assert.assertEquals(Arrays.asList(1, 2, 3, 4, 5, 4, 6, 7, 8, 9), Lists.newArrayList(iter)); }
@Test(expected = UnsupportedOperationException.class) public void testRemove() { OrderedMergeIterator<Integer> iter = new OrderedMergeIterator<>( Ordering.natural(), Collections.emptyIterator() ); iter.remove(); } }
@Test(expected = NoSuchElementException.class) public void testNoElementInNext() { OrderedMergeIterator<Integer> iter = new OrderedMergeIterator<>( Ordering.natural(), Collections.emptyIterator() ); iter.next(); }
OrderedMergeIterator<Integer> iter = new OrderedMergeIterator<Integer>( Ordering.natural(), iterators.iterator()