📄 testcursorablelinkedlist.java
字号:
/*
* Copyright 1999-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.collections;
import junit.framework.*;
import java.util.*;
/**
* @author Rodney Waldhoff
* @version $Id: TestCursorableLinkedList.java,v 1.6.2.1 2004/05/22 12:14:05 scolebourne Exp $
*/
public class TestCursorableLinkedList extends TestList {
public TestCursorableLinkedList(String testName) {
super(testName);
}
public static Test suite() {
return BulkTest.makeSuite(TestCursorableLinkedList.class);
}
public static void main(String args[]) {
String[] testCaseName = { TestCursorableLinkedList.class.getName() };
junit.textui.TestRunner.main(testCaseName);
}
private CursorableLinkedList list = null;
public void setUp() {
list = new CursorableLinkedList();
}
public List makeEmptyList() {
return new CursorableLinkedList();
}
public void testAdd() {
assertEquals("[]",list.toString());
assertTrue(list.add(new Integer(1)));
assertEquals("[1]",list.toString());
assertTrue(list.add(new Integer(2)));
assertEquals("[1, 2]",list.toString());
assertTrue(list.add(new Integer(3)));
assertEquals("[1, 2, 3]",list.toString());
assertTrue(list.addFirst(new Integer(0)));
assertEquals("[0, 1, 2, 3]",list.toString());
assertTrue(list.addLast(new Integer(4)));
assertEquals("[0, 1, 2, 3, 4]",list.toString());
list.add(0,new Integer(-2));
assertEquals("[-2, 0, 1, 2, 3, 4]",list.toString());
list.add(1,new Integer(-1));
assertEquals("[-2, -1, 0, 1, 2, 3, 4]",list.toString());
list.add(7,new Integer(5));
assertEquals("[-2, -1, 0, 1, 2, 3, 4, 5]",list.toString());
java.util.List list2 = new java.util.LinkedList();
list2.add("A");
list2.add("B");
list2.add("C");
assertTrue(list.addAll(list2));
assertEquals("[-2, -1, 0, 1, 2, 3, 4, 5, A, B, C]",list.toString());
assertTrue(list.addAll(3,list2));
assertEquals("[-2, -1, 0, A, B, C, 1, 2, 3, 4, 5, A, B, C]",list.toString());
}
public void testClear() {
assertEquals(0,list.size());
assertTrue(list.isEmpty());
list.clear();
assertEquals(0,list.size());
assertTrue(list.isEmpty());
list.add("element");
assertEquals(1,list.size());
assertTrue(!list.isEmpty());
list.clear();
assertEquals(0,list.size());
assertTrue(list.isEmpty());
list.add("element1");
list.add("element2");
assertEquals(2,list.size());
assertTrue(!list.isEmpty());
list.clear();
assertEquals(0,list.size());
assertTrue(list.isEmpty());
for(int i=0;i<1000;i++) {
list.add(new Integer(i));
}
assertEquals(1000,list.size());
assertTrue(!list.isEmpty());
list.clear();
assertEquals(0,list.size());
assertTrue(list.isEmpty());
}
public void testContains() {
assertTrue(!list.contains("A"));
assertTrue(list.add("A"));
assertTrue(list.contains("A"));
assertTrue(list.add("B"));
assertTrue(list.contains("A"));
assertTrue(list.addFirst("a"));
assertTrue(list.contains("A"));
assertTrue(list.remove("a"));
assertTrue(list.contains("A"));
assertTrue(list.remove("A"));
assertTrue(!list.contains("A"));
}
public void testContainsAll() {
assertTrue(list.containsAll(list));
java.util.List list2 = new java.util.LinkedList();
assertTrue(list.containsAll(list2));
list2.add("A");
assertTrue(!list.containsAll(list2));
list.add("B");
list.add("A");
assertTrue(list.containsAll(list2));
list2.add("B");
assertTrue(list.containsAll(list2));
list2.add("C");
assertTrue(!list.containsAll(list2));
list.add("C");
assertTrue(list.containsAll(list2));
list2.add("C");
assertTrue(list.containsAll(list2));
assertTrue(list.containsAll(list));
}
public void testCursorNavigation() {
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
CursorableLinkedList.Cursor it = list.cursor();
assertTrue(it.hasNext());
assertTrue(!it.hasPrevious());
assertEquals("1",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("1",it.previous());
assertTrue(it.hasNext());
assertTrue(!it.hasPrevious());
assertEquals("1",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("2",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("2",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("2",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("3",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("4",it.next());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("5",it.next());
assertTrue(!it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("5",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("4",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("3",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("2",it.previous());
assertTrue(it.hasNext());
assertTrue(it.hasPrevious());
assertEquals("1",it.previous());
assertTrue(it.hasNext());
assertTrue(!it.hasPrevious());
it.close();
}
public void testCursorSet() {
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
CursorableLinkedList.Cursor it = list.cursor();
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());
it.close();
}
public void testCursorRemove() {
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
CursorableLinkedList.Cursor it = list.cursor();
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
}
assertEquals("4",it.next());
assertEquals("5",it.next());
it.remove();
assertEquals("[4]",list.toString());
assertEquals("4",it.previous());
it.remove();
assertEquals("[]",list.toString());
it.close();
}
public void testCursorAdd() {
CursorableLinkedList.Cursor it = list.cursor();
it.add("1");
assertEquals("[1]",list.toString());
it.add("3");
assertEquals("[1, 3]",list.toString());
it.add("5");
assertEquals("[1, 3, 5]",list.toString());
assertEquals("5",it.previous());
it.add("4");
assertEquals("[1, 3, 4, 5]",list.toString());
assertEquals("4",it.previous());
assertEquals("3",it.previous());
it.add("2");
assertEquals("[1, 2, 3, 4, 5]",list.toString());
it.close();
}
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));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -