--- jsr166/src/test/tck/CopyOnWriteArraySetTest.java 2003/09/14 20:42:40 1.3 +++ jsr166/src/test/tck/CopyOnWriteArraySetTest.java 2009/11/16 04:57:10 1.9 @@ -1,8 +1,9 @@ /* - * Written by members of JCP JSR-166 Expert Group and released to the - * public domain. Use, modify, and redistribute this code in any way - * without acknowledgement. Other contributors include Andrew Wright, - * Jeffrey Hayes, Pat Fischer, Mike Judd. + * Written by Doug Lea with assistance from members of JCP JSR-166 + * Expert Group and released to the public domain, as explained at + * http://creativecommons.org/licenses/publicdomain + * Other contributors include Andrew Wright, Jeffrey Hayes, + * Pat Fisher, Mike Judd. */ import junit.framework.*; @@ -11,11 +12,9 @@ import java.util.concurrent.*; import java.io.*; public class CopyOnWriteArraySetTest extends JSR166TestCase { - public static void main(String[] args) { - junit.textui.TestRunner.run (suite()); + junit.textui.TestRunner.run (suite()); } - public static Test suite() { return new TestSuite(CopyOnWriteArraySetTest.class); } @@ -23,32 +22,38 @@ public class CopyOnWriteArraySetTest ext static CopyOnWriteArraySet populatedSet(int n){ CopyOnWriteArraySet a = new CopyOnWriteArraySet(); assertTrue(a.isEmpty()); - for (int i = 0; i < n; ++i) + for (int i = 0; i < n; ++i) a.add(new Integer(i)); assertFalse(a.isEmpty()); assertEquals(n, a.size()); return a; } + /** + * Default-constructed set is empty + */ public void testConstructor() { CopyOnWriteArraySet a = new CopyOnWriteArraySet(); assertTrue(a.isEmpty()); } + /** + * Collection-constructed set holds all of its elements + */ public void testConstructor3() { Integer[] ints = new Integer[SIZE]; for (int i = 0; i < SIZE-1; ++i) ints[i] = new Integer(i); CopyOnWriteArraySet a = new CopyOnWriteArraySet(Arrays.asList(ints)); - for (int i = 0; i < SIZE; ++i) + for (int i = 0; i < SIZE; ++i) assertTrue(a.contains(ints[i])); } - + /** - * addAll correctly adds each element from the given collection + * addAll adds each element from the given collection */ - public void testAddAll(){ + public void testAddAll() { CopyOnWriteArraySet full = populatedSet(3); Vector v = new Vector(); v.add(three); @@ -59,10 +64,10 @@ public class CopyOnWriteArraySetTest ext } /** - * addAllAbsent adds each element from the given collection that did not - * already exist in the List + * addAll adds each element from the given collection that did not + * already exist in the set */ - public void testAddAll2(){ + public void testAddAll2() { CopyOnWriteArraySet full = populatedSet(3); Vector v = new Vector(); v.add(three); @@ -73,41 +78,45 @@ public class CopyOnWriteArraySetTest ext } /** - * addIfAbsent will not add the element if it already exists in the list + * add will not add the element if it already exists in the set */ - public void testAdd2(){ + public void testAdd2() { CopyOnWriteArraySet full = populatedSet(3); full.add(one); assertEquals(3, full.size()); } /** - * addIfAbsent correctly adds the element when it does not exist in the list + * add adds the element when it does not exist + * in the set */ - public void testAdd3(){ + public void testAdd3() { CopyOnWriteArraySet full = populatedSet(3); full.add(three); assertTrue(full.contains(three)); } /** - * clear correctly removes all elements from the list + * clear removes all elements from the set */ - public void testClear(){ + public void testClear() { CopyOnWriteArraySet full = populatedSet(3); full.clear(); assertEquals(0, full.size()); } /** - * contains returns the correct values + * contains returns true for added elements */ - public void testContains(){ + public void testContains() { CopyOnWriteArraySet full = populatedSet(3); assertTrue(full.contains(one)); assertFalse(full.contains(five)); } + /** + * Sets with equal elements are equal + */ public void testEquals() { CopyOnWriteArraySet a = populatedSet(3); CopyOnWriteArraySet b = populatedSet(3); @@ -123,11 +132,11 @@ public class CopyOnWriteArraySetTest ext assertEquals(a.hashCode(), b.hashCode()); } - + /** - * containsAll returns the correct values + * containsAll returns true for collections with subset of elements */ - public void testContainsAll(){ + public void testContainsAll() { CopyOnWriteArraySet full = populatedSet(3); Vector v = new Vector(); v.add(one); @@ -138,9 +147,9 @@ public class CopyOnWriteArraySetTest ext } /** - * isEmpty returns the correct values + * isEmpty is true when empty, else false */ - public void testIsEmpty(){ + public void testIsEmpty() { CopyOnWriteArraySet empty = new CopyOnWriteArraySet(); CopyOnWriteArraySet full = populatedSet(3); assertTrue(empty.isEmpty()); @@ -148,41 +157,47 @@ public class CopyOnWriteArraySetTest ext } /** - * iterator() returns an iterator containing the elements of the list + * iterator() returns an iterator containing the elements of the set */ - public void testIterator(){ + public void testIterator() { CopyOnWriteArraySet full = populatedSet(3); Iterator i = full.iterator(); int j; - for(j = 0; i.hasNext(); j++) + for (j = 0; i.hasNext(); j++) assertEquals(j, ((Integer)i.next()).intValue()); assertEquals(3, j); } + /** + * iterator remove is unsupported + */ public void testIteratorRemove () { CopyOnWriteArraySet full = populatedSet(3); Iterator it = full.iterator(); it.next(); try { it.remove(); - fail("should throw"); + shouldThrow(); } catch (UnsupportedOperationException success) {} } - public void testToString(){ + /** + * toString holds toString of elements + */ + public void testToString() { CopyOnWriteArraySet full = populatedSet(3); String s = full.toString(); for (int i = 0; i < 3; ++i) { assertTrue(s.indexOf(String.valueOf(i)) >= 0); } - } + } /** - * removeAll correctly removes all elements from the given collection + * removeAll removes all elements from the given collection */ - public void testRemoveAll(){ + public void testRemoveAll() { CopyOnWriteArraySet full = populatedSet(3); Vector v = new Vector(); v.add(one); @@ -192,7 +207,10 @@ public class CopyOnWriteArraySetTest ext } - public void testRemove(){ + /** + * remove removes an element + */ + public void testRemove() { CopyOnWriteArraySet full = populatedSet(3); full.remove(one); assertFalse(full.contains(one)); @@ -200,9 +218,9 @@ public class CopyOnWriteArraySetTest ext } /** - * size returns the correct values + * size returns the number of elements */ - public void testSize(){ + public void testSize() { CopyOnWriteArraySet empty = new CopyOnWriteArraySet(); CopyOnWriteArraySet full = populatedSet(3); assertEquals(3, full.size()); @@ -210,9 +228,9 @@ public class CopyOnWriteArraySetTest ext } /** - * toArray returns an Object array containing all elements from the list + * toArray returns an Object array containing all elements from the set */ - public void testToArray(){ + public void testToArray() { CopyOnWriteArraySet full = populatedSet(3); Object[] o = full.toArray(); assertEquals(3, o.length); @@ -222,9 +240,10 @@ public class CopyOnWriteArraySetTest ext } /** - * toArray returns an Integer array containing all elements from the list + * toArray returns an Integer array containing all elements from + * the set */ - public void testToArray2(){ + public void testToArray2() { CopyOnWriteArraySet full = populatedSet(3); Integer[] i = new Integer[3]; i = (Integer[])full.toArray(i); @@ -235,23 +254,23 @@ public class CopyOnWriteArraySetTest ext } - - // Exception tests - /** - * toArray throws an ArrayStoreException when the given array - * can not store the objects inside the list + * toArray throws an ArrayStoreException when the given array can + * not store the objects inside the set */ - public void testToArray_ArrayStoreException(){ - try{ + public void testToArray_ArrayStoreException() { + try { CopyOnWriteArraySet c = new CopyOnWriteArraySet(); c.add("zfasdfsdf"); c.add("asdadasd"); c.toArray(new Long[5]); - fail("Object[] toArray(Object[]) should throw ArrayStoreException"); - }catch(ArrayStoreException e){} + shouldThrow(); + } catch (ArrayStoreException e){} } + /** + * A deserialized serialized set is equal + */ public void testSerialization() { CopyOnWriteArraySet q = populatedSet(SIZE); @@ -267,9 +286,8 @@ public class CopyOnWriteArraySetTest ext assertEquals(q.size(), r.size()); assertTrue(q.equals(r)); assertTrue(r.equals(q)); - } catch(Exception e){ - e.printStackTrace(); - fail("unexpected exception"); + } catch (Exception e){ + unexpectedException(); } }