--- jsr166/src/test/tck/TreeSetTest.java 2011/11/26 05:42:14 1.25 +++ jsr166/src/test/tck/TreeSetTest.java 2015/02/28 20:13:46 1.37 @@ -4,7 +4,6 @@ * http://creativecommons.org/publicdomain/zero/1.0/ */ -import junit.framework.*; import java.util.Arrays; import java.util.BitSet; import java.util.Collection; @@ -17,6 +16,9 @@ import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; +import junit.framework.Test; +import junit.framework.TestSuite; + public class TreeSetTest extends JSR166TestCase { public static void main(String[] args) { junit.textui.TestRunner.run(suite()); @@ -37,15 +39,15 @@ public class TreeSetTest extends JSR166T static final int SIZE = 20; /** - * Create a set of given size containing consecutive + * Returns a new set of given size containing consecutive * Integers 0 ... n. */ private TreeSet populatedSet(int n) { TreeSet q = new TreeSet(); assertTrue(q.isEmpty()); - for (int i = n-1; i >= 0; i-=2) + for (int i = n-1; i >= 0; i -= 2) assertTrue(q.add(new Integer(i))); - for (int i = (n & 1); i < n; i+=2) + for (int i = (n & 1); i < n; i += 2) assertTrue(q.add(new Integer(i))); assertFalse(q.isEmpty()); assertEquals(n, q.size()); @@ -53,7 +55,7 @@ public class TreeSetTest extends JSR166T } /** - * Create set of first 5 ints + * Returns a new set of first 5 ints. */ private TreeSet set5() { TreeSet q = new TreeSet(); @@ -79,7 +81,7 @@ public class TreeSetTest extends JSR166T */ public void testConstructor3() { try { - TreeSet q = new TreeSet((Collection)null); + new TreeSet((Collection)null); shouldThrow(); } catch (NullPointerException success) {} } @@ -90,7 +92,7 @@ public class TreeSetTest extends JSR166T public void testConstructor4() { try { Integer[] ints = new Integer[SIZE]; - TreeSet q = new TreeSet(Arrays.asList(ints)); + new TreeSet(Arrays.asList(ints)); shouldThrow(); } catch (NullPointerException success) {} } @@ -103,7 +105,7 @@ public class TreeSetTest extends JSR166T Integer[] ints = new Integer[SIZE]; for (int i = 0; i < SIZE-1; ++i) ints[i] = new Integer(i); - TreeSet q = new TreeSet(Arrays.asList(ints)); + new TreeSet(Arrays.asList(ints)); shouldThrow(); } catch (NullPointerException success) {} } @@ -168,8 +170,8 @@ public class TreeSetTest extends JSR166T * add(null) throws NPE if nonempty */ public void testAddNull() { + TreeSet q = populatedSet(SIZE); try { - TreeSet q = populatedSet(SIZE); q.add(null); shouldThrow(); } catch (NullPointerException success) {} @@ -197,9 +199,8 @@ public class TreeSetTest extends JSR166T * Add of non-Comparable throws CCE */ public void testAddNonComparable() { + TreeSet q = new TreeSet(); try { - TreeSet q = new TreeSet(); - q.add(new Object()); q.add(new Object()); q.add(new Object()); shouldThrow(); @@ -210,8 +211,8 @@ public class TreeSetTest extends JSR166T * addAll(null) throws NPE */ public void testAddAll1() { + TreeSet q = new TreeSet(); try { - TreeSet q = new TreeSet(); q.addAll(null); shouldThrow(); } catch (NullPointerException success) {} @@ -221,9 +222,9 @@ public class TreeSetTest extends JSR166T * addAll of a collection with null elements throws NPE */ public void testAddAll2() { + TreeSet q = new TreeSet(); + Integer[] ints = new Integer[SIZE]; try { - TreeSet q = new TreeSet(); - Integer[] ints = new Integer[SIZE]; q.addAll(Arrays.asList(ints)); shouldThrow(); } catch (NullPointerException success) {} @@ -234,11 +235,11 @@ public class TreeSetTest extends JSR166T * possibly adding some elements */ public void testAddAll3() { + TreeSet q = new TreeSet(); + Integer[] ints = new Integer[SIZE]; + for (int i = 0; i < SIZE-1; ++i) + ints[i] = new Integer(i); try { - TreeSet q = new TreeSet(); - Integer[] ints = new Integer[SIZE]; - for (int i = 0; i < SIZE-1; ++i) - ints[i] = new Integer(i); q.addAll(Arrays.asList(ints)); shouldThrow(); } catch (NullPointerException success) {} @@ -286,13 +287,13 @@ public class TreeSetTest extends JSR166T */ public void testRemoveElement() { TreeSet q = populatedSet(SIZE); - for (int i = 1; i < SIZE; i+=2) { + for (int i = 1; i < SIZE; i += 2) { assertTrue(q.contains(i)); assertTrue(q.remove(i)); assertFalse(q.contains(i)); assertTrue(q.contains(i-1)); } - for (int i = 0; i < SIZE; i+=2) { + for (int i = 0; i < SIZE; i += 2) { assertTrue(q.contains(i)); assertTrue(q.remove(i)); assertFalse(q.contains(i)); @@ -371,8 +372,8 @@ public class TreeSetTest extends JSR166T assertTrue(q.removeAll(p)); assertEquals(SIZE-i, q.size()); for (int j = 0; j < i; ++j) { - Integer I = (Integer)(p.pollFirst()); - assertFalse(q.contains(I)); + Integer x = (Integer)(p.pollFirst()); + assertFalse(q.contains(x)); } } } @@ -476,27 +477,19 @@ public class TreeSetTest extends JSR166T */ public void testIterator() { TreeSet q = populatedSet(SIZE); - int i = 0; Iterator it = q.iterator(); - while (it.hasNext()) { + int i; + for (i = 0; it.hasNext(); i++) assertTrue(q.contains(it.next())); - ++i; - } assertEquals(i, SIZE); + assertIteratorExhausted(it); } /** * iterator of empty set has no elements */ public void testEmptyIterator() { - TreeSet q = new TreeSet(); - int i = 0; - Iterator it = q.iterator(); - while (it.hasNext()) { - assertTrue(q.contains(it.next())); - ++i; - } - assertEquals(0, i); + assertIteratorExhausted(new TreeSet().iterator()); } /** @@ -536,7 +529,7 @@ public class TreeSetTest extends JSR166T NavigableSet x = populatedSet(SIZE); NavigableSet y = serialClone(x); - assertTrue(x != y); + assertNotSame(x, y); assertEquals(x.size(), y.size()); assertEquals(x, y); assertEquals(y, x); @@ -691,6 +684,17 @@ public class TreeSetTest extends JSR166T 0, setSize - 1, true); } + /** + * addAll is idempotent + */ + public void testAddAll_idempotent() throws Exception { + Set x = populatedSet(SIZE); + Set y = new TreeSet(x); + y.addAll(x); + assertEquals(x, y); + assertEquals(y, x); + } + static NavigableSet newSet(Class cl) throws Exception { NavigableSet result = (NavigableSet) cl.newInstance(); assertEquals(0, result.size()); @@ -725,7 +729,7 @@ public class TreeSetTest extends JSR166T // Add entries till we're back to original size while (set.size() < size) { int element = min + rnd.nextInt(rangeSize); - assertTrue(element >= min && element<= max); + assertTrue(element >= min && element <= max); put(set, element); } } @@ -750,7 +754,7 @@ public class TreeSetTest extends JSR166T // Add entries till we're back to original size while (set.size() < size) { int element = min - 5 + rnd.nextInt(rangeSize + 10); - if (element >= min && element<= max) { + if (element >= min && element <= max) { put(set, element); } else { try {