4 |
|
* http://creativecommons.org/publicdomain/zero/1.0/ |
5 |
|
*/ |
6 |
|
|
7 |
– |
import junit.framework.*; |
8 |
– |
import java.util.Arrays; |
7 |
|
import java.util.ArrayDeque; |
8 |
+ |
import java.util.Arrays; |
9 |
|
import java.util.Collection; |
10 |
|
import java.util.Deque; |
11 |
|
import java.util.Iterator; |
13 |
|
import java.util.Queue; |
14 |
|
import java.util.Random; |
15 |
|
|
16 |
+ |
import junit.framework.Test; |
17 |
+ |
import junit.framework.TestSuite; |
18 |
+ |
|
19 |
|
public class ArrayDequeTest extends JSR166TestCase { |
20 |
|
public static void main(String[] args) { |
21 |
< |
junit.textui.TestRunner.run(suite()); |
21 |
> |
main(suite(), args); |
22 |
|
} |
23 |
|
|
24 |
|
public static Test suite() { |
51 |
|
*/ |
52 |
|
public void testConstructor3() { |
53 |
|
try { |
54 |
< |
ArrayDeque q = new ArrayDeque((Collection)null); |
54 |
> |
new ArrayDeque((Collection)null); |
55 |
|
shouldThrow(); |
56 |
|
} catch (NullPointerException success) {} |
57 |
|
} |
62 |
|
public void testConstructor4() { |
63 |
|
try { |
64 |
|
Integer[] ints = new Integer[SIZE]; |
65 |
< |
ArrayDeque q = new ArrayDeque(Arrays.asList(ints)); |
65 |
> |
new ArrayDeque(Arrays.asList(ints)); |
66 |
|
shouldThrow(); |
67 |
|
} catch (NullPointerException success) {} |
68 |
|
} |
75 |
|
Integer[] ints = new Integer[SIZE]; |
76 |
|
for (int i = 0; i < SIZE-1; ++i) |
77 |
|
ints[i] = new Integer(i); |
78 |
< |
ArrayDeque q = new ArrayDeque(Arrays.asList(ints)); |
78 |
> |
new ArrayDeque(Arrays.asList(ints)); |
79 |
|
shouldThrow(); |
80 |
|
} catch (NullPointerException success) {} |
81 |
|
} |
393 |
|
*/ |
394 |
|
public void testRemoveElement() { |
395 |
|
ArrayDeque q = populatedDeque(SIZE); |
396 |
< |
for (int i = 1; i < SIZE; i+=2) { |
396 |
> |
for (int i = 1; i < SIZE; i += 2) { |
397 |
|
assertTrue(q.contains(i)); |
398 |
|
assertTrue(q.remove(i)); |
399 |
|
assertFalse(q.contains(i)); |
400 |
|
assertTrue(q.contains(i-1)); |
401 |
|
} |
402 |
< |
for (int i = 0; i < SIZE; i+=2) { |
402 |
> |
for (int i = 0; i < SIZE; i += 2) { |
403 |
|
assertTrue(q.contains(i)); |
404 |
|
assertTrue(q.remove(i)); |
405 |
|
assertFalse(q.contains(i)); |
532 |
|
*/ |
533 |
|
public void testRemoveFirstOccurrence() { |
534 |
|
ArrayDeque q = populatedDeque(SIZE); |
535 |
< |
for (int i = 1; i < SIZE; i+=2) { |
535 |
> |
for (int i = 1; i < SIZE; i += 2) { |
536 |
|
assertTrue(q.removeFirstOccurrence(new Integer(i))); |
537 |
|
} |
538 |
< |
for (int i = 0; i < SIZE; i+=2) { |
538 |
> |
for (int i = 0; i < SIZE; i += 2) { |
539 |
|
assertTrue(q.removeFirstOccurrence(new Integer(i))); |
540 |
|
assertFalse(q.removeFirstOccurrence(new Integer(i+1))); |
541 |
|
} |
547 |
|
*/ |
548 |
|
public void testRemoveLastOccurrence() { |
549 |
|
ArrayDeque q = populatedDeque(SIZE); |
550 |
< |
for (int i = 1; i < SIZE; i+=2) { |
550 |
> |
for (int i = 1; i < SIZE; i += 2) { |
551 |
|
assertTrue(q.removeLastOccurrence(new Integer(i))); |
552 |
|
} |
553 |
< |
for (int i = 0; i < SIZE; i+=2) { |
553 |
> |
for (int i = 0; i < SIZE; i += 2) { |
554 |
|
assertTrue(q.removeLastOccurrence(new Integer(i))); |
555 |
|
assertFalse(q.removeLastOccurrence(new Integer(i+1))); |
556 |
|
} |
742 |
|
*/ |
743 |
|
public void testIterator() { |
744 |
|
ArrayDeque q = populatedDeque(SIZE); |
743 |
– |
int i = 0; |
745 |
|
Iterator it = q.iterator(); |
746 |
< |
while (it.hasNext()) { |
746 |
> |
int i; |
747 |
> |
for (i = 0; it.hasNext(); i++) |
748 |
|
assertTrue(q.contains(it.next())); |
747 |
– |
++i; |
748 |
– |
} |
749 |
|
assertEquals(i, SIZE); |
750 |
+ |
assertIteratorExhausted(it); |
751 |
+ |
} |
752 |
+ |
|
753 |
+ |
/** |
754 |
+ |
* iterator of empty collection has no elements |
755 |
+ |
*/ |
756 |
+ |
public void testEmptyIterator() { |
757 |
+ |
Deque c = new ArrayDeque(); |
758 |
+ |
assertIteratorExhausted(c.iterator()); |
759 |
+ |
assertIteratorExhausted(c.descendingIterator()); |
760 |
|
} |
761 |
|
|
762 |
|
/** |
900 |
|
assertTrue(y.isEmpty()); |
901 |
|
} |
902 |
|
|
903 |
+ |
/** |
904 |
+ |
* remove(null), contains(null) always return false |
905 |
+ |
*/ |
906 |
+ |
public void testNeverContainsNull() { |
907 |
+ |
Deque<?>[] qs = { |
908 |
+ |
new ArrayDeque<Object>(), |
909 |
+ |
populatedDeque(2), |
910 |
+ |
}; |
911 |
+ |
|
912 |
+ |
for (Deque<?> q : qs) { |
913 |
+ |
assertFalse(q.contains(null)); |
914 |
+ |
assertFalse(q.remove(null)); |
915 |
+ |
assertFalse(q.removeFirstOccurrence(null)); |
916 |
+ |
assertFalse(q.removeLastOccurrence(null)); |
917 |
+ |
} |
918 |
+ |
} |
919 |
+ |
|
920 |
|
} |