@Test public void testFilterUneven() { LinkedList<Integer> expected = new LinkedList<>(); for (Integer curr : list) { if (curr % 2 != 0) expected.add(curr); } assertEqualality(expected, new IteratorFilter<>(list, object -> object % 2 != 0)); }
private void assertEqualality(LinkedList<Integer> expectedList, IteratorFilter<Integer> iteratorFilter) { Iterator<Integer> expectedIterator = expectedList.iterator(); Iterator<Integer> filterIterator = iteratorFilter.iterator(); while (expectedIterator.hasNext() && filterIterator.hasNext()) { Integer expected = expectedIterator.next(); Integer filtered = filterIterator.next(); assertEquals(expected, filtered); } assertEquals(expectedIterator.hasNext(), filterIterator.hasNext()); } }
@Test public void testFilterEven() { LinkedList<Integer> expected = new LinkedList<>(); for (Integer curr : list) { if (curr % 2 == 0) expected.add(curr); } assertEqualality(expected, new IteratorFilter<>(list, object -> object % 2 == 0)); }
@Test public void testUseFilterTwoTimes() { IteratorFilter<Integer> filter = new IteratorFilter<>(list, object -> true); assertEqualality(list, filter); assertEqualality(list, filter); }