📄 iteratorstest.java
字号:
} public void testSIThree() { ArrayList ab = new ArrayList(); ab.add("a"); ab.add("b"); ArrayList c = new ArrayList(); c.add("c"); ArrayList de = new ArrayList(); de.add("d"); de.add("e"); Iterators.Sequence it = new Iterators.Sequence(new Iterator[] { ab.iterator(), c.iterator(), de.iterator() }); assertIteration(it,new Object[] { "a", "b", "c", "d", "e" }); } public void testSIFour() { ArrayList ab = new ArrayList(); ab.add("a"); ab.add("b"); ArrayList empty = new ArrayList(); ArrayList cde = new ArrayList(); cde.add("c"); cde.add("d"); cde.add("e"); assertIteration(new Iterators.Sequence(new Iterator[] { empty.iterator(), ab.iterator(), cde.iterator(), }), new Object[] { "a", "b", "c", "d", "e" }); assertIteration(new Iterators.Sequence(new Iterator[] { ab.iterator(), empty.iterator(), cde.iterator() }), new Object[] { "a", "b", "c", "d", "e" }); assertIteration(new Iterators.Sequence(new Iterator[] { ab.iterator(), cde.iterator(), empty.iterator() }), new Object[] { "a", "b", "c", "d", "e" }); assertIteration(new Iterators.Sequence(new Iterator[] { empty.iterator(), empty.iterator(), ab.iterator(), empty.iterator(), empty.iterator(), cde.iterator(), empty.iterator(), empty.iterator() }), new Object[] { "a", "b", "c", "d", "e" }); } public void testSIFive() { ArrayList ab = new ArrayList(); ab.add("a"); ab.add("b"); ArrayList cd = new ArrayList(); cd.add("c"); cd.add("d"); Iterators.Sequence it = new Iterators.Sequence(new Iterator[] { ab.iterator(), cd.iterator() }); it.next(); it.next(); it.remove(); ArrayList a = new ArrayList(); a.add("a"); assertEquals(a,ab); it.next(); it.remove(); ArrayList d = new ArrayList(); d.add("d"); assertEquals(d,cd); } public void testSISix() { ArrayList empty = new ArrayList(); ArrayList ab = new ArrayList(); ab.add("a"); ab.add("b"); ArrayList cd = new ArrayList(); cd.add("c"); cd.add("d"); Iterators.Sequence it = new Iterators.Sequence(new Iterator[] { ab.iterator(), empty.iterator(), empty.iterator(), cd.iterator() }); it.next(); it.next(); it.remove(); ArrayList a = new ArrayList(); a.add("a"); assertEquals(a,ab); it.next(); it.remove(); ArrayList d = new ArrayList(); d.add("d"); assertEquals(d,cd); } public void assertIteration(Iterator it, Object[] values) { assertIllegalState(it); // illegal < start for (int i = 0; i < values.length; ++i) { if (!it.hasNext()) fail(); assertEquals(it.next(),values[i]); } assertFalse(it.hasNext()); } public void assertIllegalState(Iterator it) { boolean threw = false; try { it.remove(); } catch (IllegalStateException e) { threw = true; } assertTrue(threw); } public void assertUnsupportedOperation(Iterator it) { boolean threw = false; try { it.remove(); } catch (UnsupportedOperationException e) { threw = true; } assertTrue(threw); } public void testArrayIterators() { assertIteration(new Integer[] { }); assertIteration(new Integer[] { new Integer(0) }); assertIteration(new Integer[] { new Integer(0), new Integer(1) }); assertIteration(new Integer[] { new Integer(0), new Integer(1), new Integer(2) }); assertIteration(new Integer[] { new Integer(0), new Integer(1), new Integer(2), new Integer(3) }); Object[] xs = new Object[] { "a", "b", "c" }; assertNotNull(xs[1]); Iterator it = new Iterators.Array(xs); it.next(); it.next(); it.remove(); assertNull(xs[1]); Object[] ys = new Object[] { "a" }; assertNotNull(ys[0]); it = new Iterators.Array(ys); boolean threw = false; try { it.remove(); } catch (IllegalStateException e) { threw = true; } assertTrue(threw); threw = false; it.next(); it.remove(); try { it.remove(); } catch (IllegalStateException e) { threw = true; } assertTrue(threw); } public void assertIteration(Object[] objs) { Iterator it = new Iterators.Array(objs); for (int i = 0; i < objs.length; ++i) { assertEquals(objs[i],it.next()); } assertFalse(it.hasNext()); boolean threw = false; try { it.next(); } catch (NoSuchElementException e) { threw = true; } assertTrue(threw); } public void testSliceIterator() { Object[] xs = new Object[] { }; assertSliceIterator(xs,0,0); Object[] ys = new Object[] { "A" }; assertSliceIterator(ys,0,1); Object[] zs = new Object[] { "A", "B", "C", "D" }; assertSliceIterator(zs,0,4); assertSliceIterator(zs,2,2); assertSliceIterator(zs,0,2); assertSliceIterator(zs,2,1); } public void assertSliceIterator(Object[] objs, int start, int length) { Iterator it = new Iterators.ArraySlice(objs,start,length); for (int i = 0; i < length; ++i) { assertEquals(it.next(),objs[start+i]); } assertFalse(it.hasNext()); try { it.next(); fail(); } catch (NoSuchElementException e) { succeed(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -