ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/TreeSubSetTest.java
(Generate patch)

Comparing jsr166/src/test/tck/TreeSubSetTest.java (file contents):
Revision 1.21 by jsr166, Sat Nov 26 05:19:17 2011 UTC vs.
Revision 1.30 by jsr166, Sat Feb 28 20:13:46 2015 UTC

# Line 4 | Line 4
4   * http://creativecommons.org/publicdomain/zero/1.0/
5   */
6  
7 import junit.framework.*;
7   import java.util.Arrays;
8   import java.util.Comparator;
9   import java.util.Iterator;
10   import java.util.NavigableSet;
11 + import java.util.Set;
12   import java.util.SortedSet;
13   import java.util.TreeSet;
14  
15 + import junit.framework.Test;
16 + import junit.framework.TestSuite;
17 +
18   public class TreeSubSetTest extends JSR166TestCase {
19      public static void main(String[] args) {
20          junit.textui.TestRunner.run(suite());
# Line 27 | Line 30 | public class TreeSubSetTest extends JSR1
30      }
31  
32      /**
33 <     * Create a set of given size containing consecutive
33 >     * Returns a new set of given size containing consecutive
34       * Integers 0 ... n.
35       */
36      private NavigableSet<Integer> populatedSet(int n) {
37          TreeSet<Integer> q = new TreeSet<Integer>();
38          assertTrue(q.isEmpty());
39  
40 <        for (int i = n-1; i >= 0; i-=2)
40 >        for (int i = n-1; i >= 0; i -= 2)
41              assertTrue(q.add(new Integer(i)));
42 <        for (int i = (n & 1); i < n; i+=2)
42 >        for (int i = (n & 1); i < n; i += 2)
43              assertTrue(q.add(new Integer(i)));
44          assertTrue(q.add(new Integer(-n)));
45          assertTrue(q.add(new Integer(n)));
# Line 47 | Line 50 | public class TreeSubSetTest extends JSR1
50      }
51  
52      /**
53 <     * Create set of first 5 ints
53 >     * Returns a new set of first 5 ints.
54       */
55      private NavigableSet set5() {
56          TreeSet q = new TreeSet();
# Line 129 | Line 132 | public class TreeSubSetTest extends JSR1
132       * add(null) throws NPE
133       */
134      public void testAddNull() {
135 +        NavigableSet q = set0();
136          try {
133            NavigableSet q = set0();
137              q.add(null);
138              shouldThrow();
139          } catch (NullPointerException success) {}
# Line 157 | Line 160 | public class TreeSubSetTest extends JSR1
160       * Add of non-Comparable throws CCE
161       */
162      public void testAddNonComparable() {
163 +        NavigableSet q = set0();
164          try {
161            NavigableSet q = set0();
162            q.add(new Object());
165              q.add(new Object());
166              q.add(new Object());
167              shouldThrow();
# Line 170 | Line 172 | public class TreeSubSetTest extends JSR1
172       * addAll(null) throws NPE
173       */
174      public void testAddAll1() {
175 +        NavigableSet q = set0();
176          try {
174            NavigableSet q = set0();
177              q.addAll(null);
178              shouldThrow();
179          } catch (NullPointerException success) {}
# Line 181 | Line 183 | public class TreeSubSetTest extends JSR1
183       * addAll of a collection with null elements throws NPE
184       */
185      public void testAddAll2() {
186 +        NavigableSet q = set0();
187 +        Integer[] ints = new Integer[SIZE];
188          try {
185            NavigableSet q = set0();
186            Integer[] ints = new Integer[SIZE];
189              q.addAll(Arrays.asList(ints));
190              shouldThrow();
191          } catch (NullPointerException success) {}
# Line 194 | Line 196 | public class TreeSubSetTest extends JSR1
196       * possibly adding some elements
197       */
198      public void testAddAll3() {
199 +        NavigableSet q = set0();
200 +        Integer[] ints = new Integer[SIZE];
201 +        for (int i = 0; i < SIZE-1; ++i)
202 +            ints[i] = new Integer(i+SIZE);
203          try {
198            NavigableSet q = set0();
199            Integer[] ints = new Integer[SIZE];
200            for (int i = 0; i < SIZE-1; ++i)
201                ints[i] = new Integer(i+SIZE);
204              q.addAll(Arrays.asList(ints));
205              shouldThrow();
206          } catch (NullPointerException success) {}
# Line 235 | Line 237 | public class TreeSubSetTest extends JSR1
237       */
238      public void testRemoveElement() {
239          NavigableSet q = populatedSet(SIZE);
240 <        for (int i = 1; i < SIZE; i+=2) {
240 >        for (int i = 1; i < SIZE; i += 2) {
241              assertTrue(q.contains(i));
242              assertTrue(q.remove(i));
243              assertFalse(q.contains(i));
244              assertTrue(q.contains(i-1));
245          }
246 <        for (int i = 0; i < SIZE; i+=2) {
246 >        for (int i = 0; i < SIZE; i += 2) {
247              assertTrue(q.contains(i));
248              assertTrue(q.remove(i));
249              assertFalse(q.contains(i));
# Line 320 | Line 322 | public class TreeSubSetTest extends JSR1
322              assertTrue(q.removeAll(p));
323              assertEquals(SIZE-i, q.size());
324              for (int j = 0; j < i; ++j) {
325 <                Integer I = (Integer)(p.pollFirst());
326 <                assertFalse(q.contains(I));
325 >                Integer x = (Integer)(p.pollFirst());
326 >                assertFalse(q.contains(x));
327              }
328          }
329      }
# Line 425 | Line 427 | public class TreeSubSetTest extends JSR1
427       */
428      public void testIterator() {
429          NavigableSet q = populatedSet(SIZE);
428        int i = 0;
430          Iterator it = q.iterator();
431 <        while (it.hasNext()) {
431 >        int i;
432 >        for (i = 0; it.hasNext(); i++)
433              assertTrue(q.contains(it.next()));
432            ++i;
433        }
434          assertEquals(i, SIZE);
435 +        assertIteratorExhausted(it);
436      }
437  
438      /**
439       * iterator of empty set has no elements
440       */
441      public void testEmptyIterator() {
442 <        NavigableSet q = set0();
442 <        int i = 0;
443 <        Iterator it = q.iterator();
444 <        while (it.hasNext()) {
445 <            assertTrue(q.contains(it.next()));
446 <            ++i;
447 <        }
448 <        assertEquals(0, i);
442 >        assertIteratorExhausted(set0().iterator());
443      }
444  
445      /**
# Line 485 | Line 479 | public class TreeSubSetTest extends JSR1
479          NavigableSet x = populatedSet(SIZE);
480          NavigableSet y = serialClone(x);
481  
482 <        assertTrue(x != y);
482 >        assertNotSame(x, y);
483          assertEquals(x.size(), y.size());
484          assertEquals(x, y);
485          assertEquals(y, x);
# Line 651 | Line 645 | public class TreeSubSetTest extends JSR1
645       * Add of non-Comparable throws CCE
646       */
647      public void testDescendingAddNonComparable() {
648 +        NavigableSet q = dset0();
649          try {
655            NavigableSet q = dset0();
656            q.add(new Object());
650              q.add(new Object());
651              q.add(new Object());
652              shouldThrow();
# Line 664 | Line 657 | public class TreeSubSetTest extends JSR1
657       * addAll(null) throws NPE
658       */
659      public void testDescendingAddAll1() {
660 +        NavigableSet q = dset0();
661          try {
668            NavigableSet q = dset0();
662              q.addAll(null);
663              shouldThrow();
664          } catch (NullPointerException success) {}
# Line 675 | Line 668 | public class TreeSubSetTest extends JSR1
668       * addAll of a collection with null elements throws NPE
669       */
670      public void testDescendingAddAll2() {
671 +        NavigableSet q = dset0();
672 +        Integer[] ints = new Integer[SIZE];
673          try {
679            NavigableSet q = dset0();
680            Integer[] ints = new Integer[SIZE];
674              q.addAll(Arrays.asList(ints));
675              shouldThrow();
676          } catch (NullPointerException success) {}
# Line 688 | Line 681 | public class TreeSubSetTest extends JSR1
681       * possibly adding some elements
682       */
683      public void testDescendingAddAll3() {
684 +        NavigableSet q = dset0();
685 +        Integer[] ints = new Integer[SIZE];
686 +        for (int i = 0; i < SIZE-1; ++i)
687 +            ints[i] = new Integer(i+SIZE);
688          try {
692            NavigableSet q = dset0();
693            Integer[] ints = new Integer[SIZE];
694            for (int i = 0; i < SIZE-1; ++i)
695                ints[i] = new Integer(i+SIZE);
689              q.addAll(Arrays.asList(ints));
690              shouldThrow();
691          } catch (NullPointerException success) {}
# Line 729 | Line 722 | public class TreeSubSetTest extends JSR1
722       */
723      public void testDescendingRemoveElement() {
724          NavigableSet q = populatedSet(SIZE);
725 <        for (int i = 1; i < SIZE; i+=2) {
725 >        for (int i = 1; i < SIZE; i += 2) {
726              assertTrue(q.remove(new Integer(i)));
727          }
728 <        for (int i = 0; i < SIZE; i+=2) {
728 >        for (int i = 0; i < SIZE; i += 2) {
729              assertTrue(q.remove(new Integer(i)));
730              assertFalse(q.remove(new Integer(i+1)));
731          }
# Line 808 | Line 801 | public class TreeSubSetTest extends JSR1
801              assertTrue(q.removeAll(p));
802              assertEquals(SIZE-i, q.size());
803              for (int j = 0; j < i; ++j) {
804 <                Integer I = (Integer)(p.pollFirst());
805 <                assertFalse(q.contains(I));
804 >                Integer x = (Integer)(p.pollFirst());
805 >                assertFalse(q.contains(x));
806              }
807          }
808      }
# Line 974 | Line 967 | public class TreeSubSetTest extends JSR1
967          NavigableSet x = dset5();
968          NavigableSet y = serialClone(x);
969  
970 <        assertTrue(x != y);
970 >        assertNotSame(x, y);
971          assertEquals(x.size(), y.size());
972          assertEquals(x.toString(), y.toString());
973          assertEquals(x, y);
# Line 1105 | Line 1098 | public class TreeSubSetTest extends JSR1
1098          assertEquals(4, set.size());
1099      }
1100  
1101 +    /**
1102 +     * addAll is idempotent
1103 +     */
1104 +    public void testAddAll_idempotent() throws Exception {
1105 +        Set x = populatedSet(SIZE);
1106 +        Set y = new TreeSet(x);
1107 +        y.addAll(x);
1108 +        assertEquals(x, y);
1109 +        assertEquals(y, x);
1110 +    }
1111 +
1112   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines