13 |
|
import java.util.NoSuchElementException; |
14 |
|
|
15 |
|
import junit.framework.Test; |
16 |
– |
import junit.framework.TestSuite; |
16 |
|
|
17 |
|
public class LinkedListTest extends JSR166TestCase { |
18 |
|
public static void main(String[] args) { |
20 |
|
} |
21 |
|
|
22 |
|
public static Test suite() { |
23 |
< |
return new TestSuite(LinkedListTest.class); |
23 |
> |
class Implementation implements CollectionImplementation { |
24 |
> |
public Class<?> klazz() { return LinkedList.class; } |
25 |
> |
public Collection emptyCollection() { return new LinkedList(); } |
26 |
> |
public Object makeElement(int i) { return i; } |
27 |
> |
public boolean isConcurrent() { return false; } |
28 |
> |
public boolean permitsNulls() { return true; } |
29 |
> |
} |
30 |
> |
class SubListImplementation extends Implementation { |
31 |
> |
public Collection emptyCollection() { |
32 |
> |
return new LinkedList().subList(0, 0); |
33 |
> |
} |
34 |
> |
} |
35 |
> |
return newTestSuite( |
36 |
> |
LinkedListTest.class, |
37 |
> |
CollectionTest.testSuite(new Implementation()), |
38 |
> |
CollectionTest.testSuite(new SubListImplementation())); |
39 |
|
} |
40 |
|
|
41 |
|
/** |
42 |
|
* Returns a new queue of given size containing consecutive |
43 |
< |
* Integers 0 ... n. |
43 |
> |
* Integers 0 ... n - 1. |
44 |
|
*/ |
45 |
|
private LinkedList<Integer> populatedQueue(int n) { |
46 |
< |
LinkedList<Integer> q = new LinkedList<Integer>(); |
46 |
> |
LinkedList<Integer> q = new LinkedList<>(); |
47 |
|
assertTrue(q.isEmpty()); |
48 |
|
for (int i = 0; i < n; ++i) |
49 |
|
assertTrue(q.offer(new Integer(i))); |
50 |
|
assertFalse(q.isEmpty()); |
51 |
|
assertEquals(n, q.size()); |
52 |
+ |
assertEquals((Integer) 0, q.peekFirst()); |
53 |
+ |
assertEquals((Integer) (n - 1), q.peekLast()); |
54 |
|
return q; |
55 |
|
} |
56 |
|
|
259 |
|
assertTrue(q.contains(i)); |
260 |
|
assertTrue(q.remove((Integer)i)); |
261 |
|
assertFalse(q.contains(i)); |
262 |
< |
assertTrue(q.contains(i-1)); |
262 |
> |
assertTrue(q.contains(i - 1)); |
263 |
|
} |
264 |
|
for (int i = 0; i < SIZE; i += 2) { |
265 |
|
assertTrue(q.contains(i)); |
266 |
|
assertTrue(q.remove((Integer)i)); |
267 |
|
assertFalse(q.contains(i)); |
268 |
< |
assertFalse(q.remove((Integer)(i+1))); |
269 |
< |
assertFalse(q.contains(i+1)); |
268 |
> |
assertFalse(q.remove((Integer)(i + 1))); |
269 |
> |
assertFalse(q.contains(i + 1)); |
270 |
|
} |
271 |
|
assertTrue(q.isEmpty()); |
272 |
|
} |
635 |
|
} |
636 |
|
for (int i = 0; i < SIZE; i += 2) { |
637 |
|
assertTrue(q.removeFirstOccurrence(new Integer(i))); |
638 |
< |
assertFalse(q.removeFirstOccurrence(new Integer(i+1))); |
638 |
> |
assertFalse(q.removeFirstOccurrence(new Integer(i + 1))); |
639 |
|
} |
640 |
|
assertTrue(q.isEmpty()); |
641 |
|
} |
650 |
|
} |
651 |
|
for (int i = 0; i < SIZE; i += 2) { |
652 |
|
assertTrue(q.removeLastOccurrence(new Integer(i))); |
653 |
< |
assertFalse(q.removeLastOccurrence(new Integer(i+1))); |
653 |
> |
assertFalse(q.removeLastOccurrence(new Integer(i + 1))); |
654 |
|
} |
655 |
|
assertTrue(q.isEmpty()); |
656 |
|
} |