📄 testcursorablelinkedlist.java
字号:
assertEquals(true, c1.nextIndexValid);
assertEquals(1, c1.nextIndex);
assertEquals(null, c1.current);
assertEquals("C", c1.next.value);
assertEquals("[A, C]", list.toString());
try {
c1.set("Z");
fail();
} catch (IllegalStateException ex) {}
}
//-----------------------------------------------------------------------
public void testInternalState_CursorNextNextPreviousSetByIterator() {
list.add("A");
list.add("B");
list.add("C");
CursorableLinkedList.Cursor c1 = list.cursor();
assertEquals("A", c1.next());
assertEquals("B", c1.next());
assertEquals("B", c1.previous());
c1.set("Z");
assertEquals(true, c1.nextIndexValid);
assertEquals(1, c1.nextIndex);
assertEquals("Z", c1.current.value);
assertEquals("Z", c1.next.value);
assertEquals("[A, Z, C]", list.toString());
c1.remove(); // works ok
assertEquals("[A, C]", list.toString());
try {
c1.remove();
fail();
} catch (IllegalStateException ex) {}
}
public void testInternalState_CursorNextNextSetByIterator() {
list.add("A");
list.add("B");
list.add("C");
CursorableLinkedList.Cursor c1 = list.cursor();
assertEquals("A", c1.next());
assertEquals("B", c1.next());
c1.set("Z");
assertEquals(true, c1.nextIndexValid);
assertEquals(2, c1.nextIndex);
assertEquals("Z", c1.current.value);
assertEquals("C", c1.next.value);
assertEquals("[A, Z, C]", list.toString());
c1.remove(); // works ok
assertEquals("[A, C]", list.toString());
try {
c1.remove();
fail();
} catch (IllegalStateException ex) {}
}
//-----------------------------------------------------------------------
public void testEqualsAndHashCode() {
assertTrue(list.equals(list));
assertEquals(list.hashCode(),list.hashCode());
list.add("A");
assertTrue(list.equals(list));
assertEquals(list.hashCode(),list.hashCode());
CursorableLinkedList list2 = new CursorableLinkedList();
assertTrue(!list.equals(list2));
assertTrue(!list2.equals(list));
java.util.List list3 = new java.util.LinkedList();
assertTrue(!list.equals(list3));
assertTrue(!list3.equals(list));
assertTrue(list2.equals(list3));
assertTrue(list3.equals(list2));
assertEquals(list2.hashCode(),list3.hashCode());
list2.add("A");
assertTrue(list.equals(list2));
assertTrue(list2.equals(list));
assertTrue(!list2.equals(list3));
assertTrue(!list3.equals(list2));
list3.add("A");
assertTrue(list2.equals(list3));
assertTrue(list3.equals(list2));
assertEquals(list2.hashCode(),list3.hashCode());
list.add("B");
assertTrue(list.equals(list));
assertTrue(!list.equals(list2));
assertTrue(!list2.equals(list));
assertTrue(!list.equals(list3));
assertTrue(!list3.equals(list));
list2.add("B");
list3.add("B");
assertTrue(list.equals(list));
assertTrue(list.equals(list2));
assertTrue(list2.equals(list));
assertTrue(list2.equals(list3));
assertTrue(list3.equals(list2));
assertEquals(list2.hashCode(),list3.hashCode());
list.add("C");
list2.add("C");
list3.add("C");
assertTrue(list.equals(list));
assertTrue(list.equals(list2));
assertTrue(list2.equals(list));
assertTrue(list2.equals(list3));
assertTrue(list3.equals(list2));
assertEquals(list.hashCode(),list2.hashCode());
assertEquals(list2.hashCode(),list3.hashCode());
list.add("D");
list2.addFirst("D");
assertTrue(list.equals(list));
assertTrue(!list.equals(list2));
assertTrue(!list2.equals(list));
}
public void testGet() {
try {
list.get(0);
fail("shouldn't get here");
} catch(IndexOutOfBoundsException e) {
// expected
}
assertTrue(list.add("A"));
assertEquals("A",list.get(0));
assertTrue(list.add("B"));
assertEquals("A",list.get(0));
assertEquals("B",list.get(1));
try {
list.get(-1);
fail("shouldn't get here");
} catch(IndexOutOfBoundsException e) {
// expected
}
try {
list.get(2);
fail("shouldn't get here");
} catch(IndexOutOfBoundsException e) {
// expected
}
}
public void testIndexOf() {
assertEquals(-1,list.indexOf("A"));
assertEquals(-1,list.lastIndexOf("A"));
list.add("A");
assertEquals(0,list.indexOf("A"));
assertEquals(0,list.lastIndexOf("A"));
assertEquals(-1,list.indexOf("B"));
assertEquals(-1,list.lastIndexOf("B"));
list.add("B");
assertEquals(0,list.indexOf("A"));
assertEquals(0,list.lastIndexOf("A"));
assertEquals(1,list.indexOf("B"));
assertEquals(1,list.lastIndexOf("B"));
list.addFirst("B");
assertEquals(1,list.indexOf("A"));
assertEquals(1,list.lastIndexOf("A"));
assertEquals(0,list.indexOf("B"));
assertEquals(2,list.lastIndexOf("B"));
}
public void testIsEmpty() {
assertTrue(list.isEmpty());
list.add("element");
assertTrue(!list.isEmpty());
list.remove("element");
assertTrue(list.isEmpty());
list.add("element");
assertTrue(!list.isEmpty());
list.clear();
assertTrue(list.isEmpty());
}
public void testIterator() {
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
Iterator it = list.iterator();
assertTrue(it.hasNext());
assertEquals("1",it.next());
assertTrue(it.hasNext());
assertEquals("2",it.next());
assertTrue(it.hasNext());
assertEquals("3",it.next());
assertTrue(it.hasNext());
assertEquals("4",it.next());
assertTrue(it.hasNext());
assertEquals("5",it.next());
assertTrue(!it.hasNext());
it = list.iterator();
assertTrue(it.hasNext());
assertEquals("1",it.next());
it.remove();
assertEquals("[2, 3, 4, 5]",list.toString());
assertTrue(it.hasNext());
assertEquals("2",it.next());
it.remove();
assertEquals("[3, 4, 5]",list.toString());
assertTrue(it.hasNext());
assertEquals("3",it.next());
it.remove();
assertEquals("[4, 5]",list.toString());
assertTrue(it.hasNext());
assertEquals("4",it.next());
it.remove();
assertEquals("[5]",list.toString());
assertTrue(it.hasNext());
assertEquals("5",it.next());
it.remove();
assertEquals("[]",list.toString());
assertTrue(!it.hasNext());
}
public void testListIteratorNavigation() {
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
ListIterator it = list.listIterator();
assertTrue(it.hasNext());
assertTrue(!it.hasPrevious());
assertEquals(-1,it.previousIndex());
assertEquals(0,it.nextIndex());
assertEquals("1",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(0,it.previousIndex());
assertEquals(1,it.nextIndex());
assertEquals("1",it.previous());
assertTrue(it.hasNext());
assertTrue(!it.hasPrevious());
assertEquals(-1,it.previousIndex());
assertEquals(0,it.nextIndex());
assertEquals("1",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(0,it.previousIndex());
assertEquals(1,it.nextIndex());
assertEquals("2",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(1,it.previousIndex());
assertEquals(2,it.nextIndex());
assertEquals("2",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(0,it.previousIndex());
assertEquals(1,it.nextIndex());
assertEquals("2",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(1,it.previousIndex());
assertEquals(2,it.nextIndex());
assertEquals("3",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(2,it.previousIndex());
assertEquals(3,it.nextIndex());
assertEquals("4",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(3,it.previousIndex());
assertEquals(4,it.nextIndex());
assertEquals("5",it.next());
assertTrue(!it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(4,it.previousIndex());
assertEquals(5,it.nextIndex());
assertEquals("5",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(3,it.previousIndex());
assertEquals(4,it.nextIndex());
assertEquals("4",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(2,it.previousIndex());
assertEquals(3,it.nextIndex());
assertEquals("3",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(1,it.previousIndex());
assertEquals(2,it.nextIndex());
assertEquals("2",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals(0,it.previousIndex());
assertEquals(1,it.nextIndex());
assertEquals("1",it.previous());
assertTrue(it.hasNext());
assertTrue(!it.hasPrevious());
assertEquals(-1,it.previousIndex());
assertEquals(0,it.nextIndex());
}
public void testListIteratorSet() {
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
ListIterator it = list.listIterator();
assertEquals("1",it.next());
it.set("a");
assertEquals("a",it.previous());
it.set("A");
assertEquals("A",it.next());
assertEquals("2",it.next());
it.set("B");
assertEquals("3",it.next());
assertEquals("4",it.next());
it.set("D");
assertEquals("5",it.next());
it.set("E");
assertEquals("[A, B, 3, D, E]",list.toString());
}
public void testListIteratorRemove() {
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
ListIterator it = list.listIterator();
try {
it.remove();
} catch(IllegalStateException e) {
// expected
}
assertEquals("1",it.next());
assertEquals("2",it.next());
assertEquals("[1, 2, 3, 4, 5]",list.toString());
it.remove();
assertEquals("[1, 3, 4, 5]",list.toString());
assertEquals("3",it.next());
assertEquals("3",it.previous());
assertEquals("1",it.previous());
it.remove();
assertEquals("[3, 4, 5]",list.toString());
assertTrue(!it.hasPrevious());
assertEquals("3",it.next());
it.remove();
assertEquals("[4, 5]",list.toString());
try {
it.remove();
} catch(IllegalStateException e) {
// expected
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -