--- jsr166/src/test/tck/ConcurrentSkipListSubMapTest.java 2006/04/20 20:35:00 1.5 +++ jsr166/src/test/tck/ConcurrentSkipListSubMapTest.java 2021/01/26 13:33:05 1.27 @@ -1,172 +1,179 @@ /* * 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 + * http://creativecommons.org/publicdomain/zero/1.0/ */ -import junit.framework.*; -import java.util.*; -import java.util.concurrent.*; -import java.io.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; +import java.util.NavigableMap; +import java.util.Set; +import java.util.SortedMap; +import java.util.concurrent.ConcurrentNavigableMap; +import java.util.concurrent.ConcurrentSkipListMap; + +import junit.framework.Test; +import junit.framework.TestSuite; public class ConcurrentSkipListSubMapTest extends JSR166TestCase { public static void main(String[] args) { - junit.textui.TestRunner.run (suite()); + main(suite(), args); } public static Test suite() { - return new TestSuite(ConcurrentSkipListSubMapTest.class); + return new TestSuite(ConcurrentSkipListSubMapTest.class); } /** - * Create a map from Integers 1-5 to Strings "A"-"E". + * Returns a new map from Items 1-5 to Strings "A"-"E". */ - private static ConcurrentNavigableMap map5() { - ConcurrentSkipListMap map = new ConcurrentSkipListMap(); + private static ConcurrentNavigableMap map5() { + ConcurrentSkipListMapmap = new ConcurrentSkipListMap(); assertTrue(map.isEmpty()); - map.put(zero, "Z"); - map.put(one, "A"); - map.put(five, "E"); - map.put(three, "C"); - map.put(two, "B"); - map.put(four, "D"); - map.put(seven, "F"); + map.put(zero, "Z"); + map.put(one, "A"); + map.put(five, "E"); + map.put(three, "C"); + map.put(two, "B"); + map.put(four, "D"); + map.put(seven, "F"); assertFalse(map.isEmpty()); - assertEquals(7, map.size()); + mustEqual(7, map.size()); return map.subMap(one, true, seven, false); } /** - * Create a map from Integers -5 to -1 to Strings "A"-"E". + * Returns a new map from Items -5 to -1 to Strings "A"-"E". */ - private static ConcurrentNavigableMap dmap5() { - ConcurrentSkipListMap map = new ConcurrentSkipListMap(); + private static ConcurrentNavigableMap dmap5() { + ConcurrentSkipListMapmap = new ConcurrentSkipListMap(); assertTrue(map.isEmpty()); - map.put(m1, "A"); - map.put(m5, "E"); - map.put(m3, "C"); - map.put(m2, "B"); - map.put(m4, "D"); + map.put(minusOne, "A"); + map.put(minusFive, "E"); + map.put(minusThree, "C"); + map.put(minusTwo, "B"); + map.put(minusFour, "D"); assertFalse(map.isEmpty()); - assertEquals(5, map.size()); - return map.descendingMap(); + mustEqual(5, map.size()); + return map.descendingMap(); } - private static ConcurrentNavigableMap map0() { - ConcurrentSkipListMap map = new ConcurrentSkipListMap(); + private static ConcurrentNavigableMap map0() { + ConcurrentSkipListMapmap = new ConcurrentSkipListMap(); assertTrue(map.isEmpty()); return map.tailMap(one, true); } - private static ConcurrentNavigableMap dmap0() { - ConcurrentSkipListMap map = new ConcurrentSkipListMap(); + private static ConcurrentNavigableMap dmap0() { + ConcurrentSkipListMapmap = new ConcurrentSkipListMap(); assertTrue(map.isEmpty()); return map; } /** - * clear removes all pairs + * clear removes all pairs */ public void testClear() { - ConcurrentNavigableMap map = map5(); - map.clear(); - assertEquals(map.size(), 0); + ConcurrentNavigableMap map = map5(); + map.clear(); + mustEqual(0, map.size()); } - /** - * Maps with same contents are equal + * Maps with same contents are equal */ public void testEquals() { - ConcurrentNavigableMap map1 = map5(); - ConcurrentNavigableMap map2 = map5(); - assertEquals(map1, map2); - assertEquals(map2, map1); - map1.clear(); + ConcurrentNavigableMap map1 = map5(); + ConcurrentNavigableMap map2 = map5(); + mustEqual(map1, map2); + mustEqual(map2, map1); + map1.clear(); assertFalse(map1.equals(map2)); assertFalse(map2.equals(map1)); } /** - * containsKey returns true for contained key + * containsKey returns true for contained key */ public void testContainsKey() { - ConcurrentNavigableMap map = map5(); - assertTrue(map.containsKey(one)); + ConcurrentNavigableMap map = map5(); + assertTrue(map.containsKey(one)); assertFalse(map.containsKey(zero)); } /** - * containsValue returns true for held values + * containsValue returns true for held values */ public void testContainsValue() { - ConcurrentNavigableMap map = map5(); - assertTrue(map.containsValue("A")); + ConcurrentNavigableMap map = map5(); + assertTrue(map.containsValue("A")); assertFalse(map.containsValue("Z")); } /** - * get returns the correct element at the given key, - * or null if not present + * get returns the correct element at the given key, + * or null if not present */ public void testGet() { - ConcurrentNavigableMap map = map5(); - assertEquals("A", (String)map.get(one)); - ConcurrentNavigableMap empty = map0(); + ConcurrentNavigableMap map = map5(); + mustEqual("A", map.get(one)); + ConcurrentNavigableMap empty = map0(); assertNull(empty.get(one)); } /** - * isEmpty is true of empty map and false for non-empty + * isEmpty is true of empty map and false for non-empty */ public void testIsEmpty() { - ConcurrentNavigableMap empty = map0(); - ConcurrentNavigableMap map = map5(); - assertTrue(empty.isEmpty()); + ConcurrentNavigableMap empty = map0(); + ConcurrentNavigableMap map = map5(); + assertTrue(empty.isEmpty()); assertFalse(map.isEmpty()); } /** - * firstKey returns first key + * firstKey returns first key */ public void testFirstKey() { - ConcurrentNavigableMap map = map5(); - assertEquals(one, map.firstKey()); + ConcurrentNavigableMap map = map5(); + mustEqual(one, map.firstKey()); } /** - * lastKey returns last key + * lastKey returns last key */ public void testLastKey() { - ConcurrentNavigableMap map = map5(); - assertEquals(five, map.lastKey()); + ConcurrentNavigableMap map = map5(); + mustEqual(five, map.lastKey()); } - /** - * keySet returns a Set containing all the keys + * keySet returns a Set containing all the keys */ public void testKeySet() { - ConcurrentNavigableMap map = map5(); - Set s = map.keySet(); - assertEquals(5, s.size()); - assertTrue(s.contains(one)); - assertTrue(s.contains(two)); - assertTrue(s.contains(three)); - assertTrue(s.contains(four)); - assertTrue(s.contains(five)); + ConcurrentNavigableMap map = map5(); + Set s = map.keySet(); + mustEqual(5, s.size()); + mustContain(s, one); + mustContain(s, two); + mustContain(s, three); + mustContain(s, four); + mustContain(s, five); } /** - * keySet is ordered + * keySet is ordered */ public void testKeySetOrder() { - ConcurrentNavigableMap map = map5(); - Set s = map.keySet(); - Iterator i = s.iterator(); - Integer last = (Integer)i.next(); - assertEquals(last, one); + ConcurrentNavigableMap map = map5(); + Set s = map.keySet(); + Iterator i = s.iterator(); + Item last = i.next(); + mustEqual(last, one); while (i.hasNext()) { - Integer k = (Integer)i.next(); + Item k = i.next(); assertTrue(last.compareTo(k) < 0); last = k; } @@ -176,70 +183,69 @@ public class ConcurrentSkipListSubMapTes * values collection contains all values */ public void testValues() { - ConcurrentNavigableMap map = map5(); - Collection s = map.values(); - assertEquals(5, s.size()); - assertTrue(s.contains("A")); - assertTrue(s.contains("B")); - assertTrue(s.contains("C")); - assertTrue(s.contains("D")); - assertTrue(s.contains("E")); + ConcurrentNavigableMap map = map5(); + Collection s = map.values(); + mustEqual(5, s.size()); + assertTrue(s.contains("A")); + assertTrue(s.contains("B")); + assertTrue(s.contains("C")); + assertTrue(s.contains("D")); + assertTrue(s.contains("E")); } /** - * keySet.toArray returns contains all keys + * keySet.toArray returns contains all keys */ public void testKeySetToArray() { - ConcurrentNavigableMap map = map5(); - Set s = map.keySet(); + ConcurrentNavigableMap map = map5(); + Set s = map.keySet(); Object[] ar = s.toArray(); assertTrue(s.containsAll(Arrays.asList(ar))); - assertEquals(5, ar.length); - ar[0] = m10; + mustEqual(5, ar.length); + ar[0] = minusTen; assertFalse(s.containsAll(Arrays.asList(ar))); } /** - * descendingkeySet.toArray returns contains all keys + * descendingkeySet.toArray returns contains all keys */ public void testDescendingKeySetToArray() { - ConcurrentNavigableMap map = map5(); - Set s = map.descendingKeySet(); - Object[] ar = s.toArray(); - assertEquals(5, ar.length); + ConcurrentNavigableMap map = map5(); + Set s = map.descendingKeySet(); + Item[] ar = s.toArray(new Item[0]); + mustEqual(5, ar.length); assertTrue(s.containsAll(Arrays.asList(ar))); - ar[0] = m10; + ar[0] = minusTen; assertFalse(s.containsAll(Arrays.asList(ar))); } /** - * Values.toArray contains all values + * Values.toArray contains all values */ public void testValuesToArray() { - ConcurrentNavigableMap map = map5(); - Collection v = map.values(); - Object[] ar = v.toArray(); - ArrayList s = new ArrayList(Arrays.asList(ar)); - assertEquals(5, ar.length); - assertTrue(s.contains("A")); - assertTrue(s.contains("B")); - assertTrue(s.contains("C")); - assertTrue(s.contains("D")); - assertTrue(s.contains("E")); + ConcurrentNavigableMap map = map5(); + Collection v = map.values(); + String[] ar = v.toArray(new String[0]); + ArrayList s = new ArrayList(Arrays.asList(ar)); + mustEqual(5, ar.length); + assertTrue(s.contains("A")); + assertTrue(s.contains("B")); + assertTrue(s.contains("C")); + assertTrue(s.contains("D")); + assertTrue(s.contains("E")); } - /** * entrySet contains all pairs */ public void testEntrySet() { - ConcurrentNavigableMap map = map5(); - Set s = map.entrySet(); - assertEquals(5, s.size()); - Iterator it = s.iterator(); + ConcurrentNavigableMap map = map5(); + Set> s = map.entrySet(); + mustEqual(5, s.size()); + Iterator> it = s.iterator(); while (it.hasNext()) { - Map.Entry e = (Map.Entry) it.next(); - assertTrue( + Map.Entry e = it.next(); + assertTrue( (e.getKey().equals(one) && e.getValue().equals("A")) || (e.getKey().equals(two) && e.getValue().equals("B")) || (e.getKey().equals(three) && e.getValue().equals("C")) || @@ -249,203 +255,195 @@ public class ConcurrentSkipListSubMapTes } /** - * putAll adds all key-value pairs from the given map + * putAll adds all key-value pairs from the given map */ public void testPutAll() { - ConcurrentNavigableMap empty = map0(); - ConcurrentNavigableMap map = map5(); - empty.putAll(map); - assertEquals(5, empty.size()); - assertTrue(empty.containsKey(one)); - assertTrue(empty.containsKey(two)); - assertTrue(empty.containsKey(three)); - assertTrue(empty.containsKey(four)); - assertTrue(empty.containsKey(five)); + ConcurrentNavigableMap empty = map0(); + ConcurrentNavigableMap map = map5(); + empty.putAll(map); + mustEqual(5, empty.size()); + assertTrue(empty.containsKey(one)); + assertTrue(empty.containsKey(two)); + assertTrue(empty.containsKey(three)); + assertTrue(empty.containsKey(four)); + assertTrue(empty.containsKey(five)); } /** - * putIfAbsent works when the given key is not present + * putIfAbsent works when the given key is not present */ public void testPutIfAbsent() { - ConcurrentNavigableMap map = map5(); - map.putIfAbsent(six, "Z"); + ConcurrentNavigableMap map = map5(); + map.putIfAbsent(six, "Z"); assertTrue(map.containsKey(six)); } /** - * putIfAbsent does not add the pair if the key is already present + * putIfAbsent does not add the pair if the key is already present */ public void testPutIfAbsent2() { - ConcurrentNavigableMap map = map5(); - assertEquals("A", map.putIfAbsent(one, "Z")); + ConcurrentNavigableMap map = map5(); + mustEqual("A", map.putIfAbsent(one, "Z")); } /** - * replace fails when the given key is not present + * replace fails when the given key is not present */ public void testReplace() { - ConcurrentNavigableMap map = map5(); - assertNull(map.replace(six, "Z")); + ConcurrentNavigableMap map = map5(); + assertNull(map.replace(six, "Z")); assertFalse(map.containsKey(six)); } /** - * replace succeeds if the key is already present + * replace succeeds if the key is already present */ public void testReplace2() { - ConcurrentNavigableMap map = map5(); + ConcurrentNavigableMap map = map5(); assertNotNull(map.replace(one, "Z")); - assertEquals("Z", map.get(one)); + mustEqual("Z", map.get(one)); } - /** * replace value fails when the given key not mapped to expected value */ public void testReplaceValue() { - ConcurrentNavigableMap map = map5(); - assertEquals("A", map.get(one)); - assertFalse(map.replace(one, "Z", "Z")); - assertEquals("A", map.get(one)); + ConcurrentNavigableMap map = map5(); + mustEqual("A", map.get(one)); + assertFalse(map.replace(one, "Z", "Z")); + mustEqual("A", map.get(one)); } /** * replace value succeeds when the given key mapped to expected value */ public void testReplaceValue2() { - ConcurrentNavigableMap map = map5(); - assertEquals("A", map.get(one)); - assertTrue(map.replace(one, "A", "Z")); - assertEquals("Z", map.get(one)); + ConcurrentNavigableMap map = map5(); + mustEqual("A", map.get(one)); + assertTrue(map.replace(one, "A", "Z")); + mustEqual("Z", map.get(one)); } - /** - * remove removes the correct key-value pair from the map + * remove removes the correct key-value pair from the map */ public void testRemove() { - ConcurrentNavigableMap map = map5(); - map.remove(five); - assertEquals(4, map.size()); - assertFalse(map.containsKey(five)); + ConcurrentNavigableMap map = map5(); + map.remove(five); + mustEqual(4, map.size()); + assertFalse(map.containsKey(five)); } /** * remove(key,value) removes only if pair present */ public void testRemove2() { - ConcurrentNavigableMap map = map5(); - assertTrue(map.containsKey(five)); - assertEquals("E", map.get(five)); - map.remove(five, "E"); - assertEquals(4, map.size()); - assertFalse(map.containsKey(five)); - map.remove(four, "A"); - assertEquals(4, map.size()); - assertTrue(map.containsKey(four)); - + ConcurrentNavigableMap map = map5(); + assertTrue(map.containsKey(five)); + mustEqual("E", map.get(five)); + map.remove(five, "E"); + mustEqual(4, map.size()); + assertFalse(map.containsKey(five)); + map.remove(four, "A"); + mustEqual(4, map.size()); + assertTrue(map.containsKey(four)); } /** * lowerEntry returns preceding entry. */ public void testLowerEntry() { - ConcurrentNavigableMap map = map5(); - Map.Entry e1 = map.lowerEntry(three); - assertEquals(two, e1.getKey()); + ConcurrentNavigableMap map = map5(); + Map.Entry e1 = map.lowerEntry(three); + mustEqual(two, e1.getKey()); - Map.Entry e2 = map.lowerEntry(six); - assertEquals(five, e2.getKey()); + Map.Entry e2 = map.lowerEntry(six); + mustEqual(five, e2.getKey()); - Map.Entry e3 = map.lowerEntry(one); + Map.Entry e3 = map.lowerEntry(one); assertNull(e3); - Map.Entry e4 = map.lowerEntry(zero); + Map.Entry e4 = map.lowerEntry(zero); assertNull(e4); - } /** * higherEntry returns next entry. */ public void testHigherEntry() { - ConcurrentNavigableMap map = map5(); - Map.Entry e1 = map.higherEntry(three); - assertEquals(four, e1.getKey()); + ConcurrentNavigableMap map = map5(); + Map.Entry e1 = map.higherEntry(three); + mustEqual(four, e1.getKey()); - Map.Entry e2 = map.higherEntry(zero); - assertEquals(one, e2.getKey()); + Map.Entry e2 = map.higherEntry(zero); + mustEqual(one, e2.getKey()); - Map.Entry e3 = map.higherEntry(five); + Map.Entry e3 = map.higherEntry(five); assertNull(e3); - Map.Entry e4 = map.higherEntry(six); + Map.Entry e4 = map.higherEntry(six); assertNull(e4); - } /** * floorEntry returns preceding entry. */ public void testFloorEntry() { - ConcurrentNavigableMap map = map5(); - Map.Entry e1 = map.floorEntry(three); - assertEquals(three, e1.getKey()); + ConcurrentNavigableMap map = map5(); + Map.Entry e1 = map.floorEntry(three); + mustEqual(three, e1.getKey()); - Map.Entry e2 = map.floorEntry(six); - assertEquals(five, e2.getKey()); + Map.Entry e2 = map.floorEntry(six); + mustEqual(five, e2.getKey()); - Map.Entry e3 = map.floorEntry(one); - assertEquals(one, e3.getKey()); + Map.Entry e3 = map.floorEntry(one); + mustEqual(one, e3.getKey()); - Map.Entry e4 = map.floorEntry(zero); + Map.Entry e4 = map.floorEntry(zero); assertNull(e4); - } /** * ceilingEntry returns next entry. */ public void testCeilingEntry() { - ConcurrentNavigableMap map = map5(); - Map.Entry e1 = map.ceilingEntry(three); - assertEquals(three, e1.getKey()); + ConcurrentNavigableMap map = map5(); + Map.Entry e1 = map.ceilingEntry(three); + mustEqual(three, e1.getKey()); - Map.Entry e2 = map.ceilingEntry(zero); - assertEquals(one, e2.getKey()); + Map.Entry e2 = map.ceilingEntry(zero); + mustEqual(one, e2.getKey()); - Map.Entry e3 = map.ceilingEntry(five); - assertEquals(five, e3.getKey()); + Map.Entry e3 = map.ceilingEntry(five); + mustEqual(five, e3.getKey()); - Map.Entry e4 = map.ceilingEntry(six); + Map.Entry e4 = map.ceilingEntry(six); assertNull(e4); - } /** * pollFirstEntry returns entries in order */ public void testPollFirstEntry() { - ConcurrentNavigableMap map = map5(); - Map.Entry e = map.pollFirstEntry(); - assertEquals(one, e.getKey()); - assertEquals("A", e.getValue()); + ConcurrentNavigableMap map = map5(); + Map.Entry e = map.pollFirstEntry(); + mustEqual(one, e.getKey()); + mustEqual("A", e.getValue()); e = map.pollFirstEntry(); - assertEquals(two, e.getKey()); + mustEqual(two, e.getKey()); map.put(one, "A"); e = map.pollFirstEntry(); - assertEquals(one, e.getKey()); - assertEquals("A", e.getValue()); + mustEqual(one, e.getKey()); + mustEqual("A", e.getValue()); e = map.pollFirstEntry(); - assertEquals(three, e.getKey()); + mustEqual(three, e.getKey()); map.remove(four); e = map.pollFirstEntry(); - assertEquals(five, e.getKey()); + mustEqual(five, e.getKey()); try { e.setValue("A"); shouldThrow(); - } catch (Exception ok) { - } + } catch (UnsupportedOperationException success) {} e = map.pollFirstEntry(); assertNull(e); } @@ -454,50 +452,49 @@ public class ConcurrentSkipListSubMapTes * pollLastEntry returns entries in order */ public void testPollLastEntry() { - ConcurrentNavigableMap map = map5(); - Map.Entry e = map.pollLastEntry(); - assertEquals(five, e.getKey()); - assertEquals("E", e.getValue()); + ConcurrentNavigableMap map = map5(); + Map.Entry e = map.pollLastEntry(); + mustEqual(five, e.getKey()); + mustEqual("E", e.getValue()); e = map.pollLastEntry(); - assertEquals(four, e.getKey()); + mustEqual(four, e.getKey()); map.put(five, "E"); e = map.pollLastEntry(); - assertEquals(five, e.getKey()); - assertEquals("E", e.getValue()); + mustEqual(five, e.getKey()); + mustEqual("E", e.getValue()); e = map.pollLastEntry(); - assertEquals(three, e.getKey()); + mustEqual(three, e.getKey()); map.remove(two); e = map.pollLastEntry(); - assertEquals(one, e.getKey()); + mustEqual(one, e.getKey()); try { e.setValue("E"); shouldThrow(); - } catch (Exception ok) { - } + } catch (UnsupportedOperationException success) {} e = map.pollLastEntry(); assertNull(e); } /** - * size returns the correct values + * size returns the correct values */ public void testSize() { - ConcurrentNavigableMap map = map5(); - ConcurrentNavigableMap empty = map0(); - assertEquals(0, empty.size()); - assertEquals(5, map.size()); + ConcurrentNavigableMap map = map5(); + ConcurrentNavigableMap empty = map0(); + mustEqual(0, empty.size()); + mustEqual(5, map.size()); } /** * toString contains toString of elements */ public void testToString() { - ConcurrentNavigableMap map = map5(); + ConcurrentNavigableMap map = map5(); String s = map.toString(); for (int i = 1; i <= 5; ++i) { - assertTrue(s.indexOf(String.valueOf(i)) >= 0); + assertTrue(s.contains(String.valueOf(i))); } - } + } // Exception tests @@ -506,10 +503,10 @@ public class ConcurrentSkipListSubMapTes */ public void testGet_NullPointerException() { try { - ConcurrentNavigableMap c = map5(); + ConcurrentNavigableMap c = map5(); c.get(null); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -517,10 +514,10 @@ public class ConcurrentSkipListSubMapTes */ public void testContainsKey_NullPointerException() { try { - ConcurrentNavigableMap c = map5(); + ConcurrentNavigableMap c = map5(); c.containsKey(null); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -528,22 +525,21 @@ public class ConcurrentSkipListSubMapTes */ public void testContainsValue_NullPointerException() { try { - ConcurrentNavigableMap c = map0(); + ConcurrentNavigableMap c = map0(); c.containsValue(null); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } - /** * put(null,x) throws NPE */ public void testPut1_NullPointerException() { try { - ConcurrentNavigableMap c = map5(); + ConcurrentNavigableMap c = map5(); c.put(null, "whatever"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -551,10 +547,10 @@ public class ConcurrentSkipListSubMapTes */ public void testPutIfAbsent1_NullPointerException() { try { - ConcurrentNavigableMap c = map5(); + ConcurrentNavigableMap c = map5(); c.putIfAbsent(null, "whatever"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -562,10 +558,10 @@ public class ConcurrentSkipListSubMapTes */ public void testReplace_NullPointerException() { try { - ConcurrentNavigableMap c = map5(); - c.replace(null, "whatever"); + ConcurrentNavigableMap c = map5(); + c.replace(null, "A"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -573,10 +569,10 @@ public class ConcurrentSkipListSubMapTes */ public void testReplaceValue_NullPointerException() { try { - ConcurrentNavigableMap c = map5(); - c.replace(null, one, "whatever"); + ConcurrentNavigableMap c = map5(); + c.replace(null, "A", "B"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -584,10 +580,10 @@ public class ConcurrentSkipListSubMapTes */ public void testRemove1_NullPointerException() { try { - ConcurrentNavigableMap c = map5(); + ConcurrentNavigableMap c = map5(); c.remove(null); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -595,277 +591,262 @@ public class ConcurrentSkipListSubMapTes */ public void testRemove2_NullPointerException() { try { - ConcurrentNavigableMap c = map5(); + ConcurrentNavigableMap c = map5(); c.remove(null, "whatever"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** - * A deserialized map equals original + * A deserialized/reserialized map equals original */ - public void testSerialization() { - ConcurrentNavigableMap q = map5(); - - try { - ByteArrayOutputStream bout = new ByteArrayOutputStream(10000); - ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(bout)); - out.writeObject(q); - out.close(); + public void testSerialization() throws Exception { + NavigableMap x = map5(); + NavigableMap y = serialClone(x); - ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()); - ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(bin)); - ConcurrentNavigableMap r = (ConcurrentNavigableMap)in.readObject(); - assertEquals(q.size(), r.size()); - assertTrue(q.equals(r)); - assertTrue(r.equals(q)); - } catch(Exception e){ - e.printStackTrace(); - unexpectedException(); - } + assertNotSame(x, y); + mustEqual(x.size(), y.size()); + mustEqual(x.toString(), y.toString()); + mustEqual(x, y); + mustEqual(y, x); } - - /** * subMap returns map with keys in requested range */ public void testSubMapContents() { - ConcurrentNavigableMap map = map5(); - SortedMap sm = map.subMap(two, four); - assertEquals(two, sm.firstKey()); - assertEquals(three, sm.lastKey()); - assertEquals(2, sm.size()); + ConcurrentNavigableMap map = map5(); + SortedMap sm = map.subMap(two, four); + mustEqual(two, sm.firstKey()); + mustEqual(three, sm.lastKey()); + mustEqual(2, sm.size()); assertFalse(sm.containsKey(one)); assertTrue(sm.containsKey(two)); assertTrue(sm.containsKey(three)); assertFalse(sm.containsKey(four)); assertFalse(sm.containsKey(five)); - Iterator i = sm.keySet().iterator(); - Object k; - k = (Integer)(i.next()); - assertEquals(two, k); - k = (Integer)(i.next()); - assertEquals(three, k); + Iterator i = sm.keySet().iterator(); + Item k; + k = (Item)(i.next()); + mustEqual(two, k); + k = (Item)(i.next()); + mustEqual(three, k); assertFalse(i.hasNext()); - Iterator j = sm.keySet().iterator(); + Iterator j = sm.keySet().iterator(); j.next(); j.remove(); assertFalse(map.containsKey(two)); - assertEquals(4, map.size()); - assertEquals(1, sm.size()); - assertEquals(three, sm.firstKey()); - assertEquals(three, sm.lastKey()); - assertTrue(sm.remove(three) != null); + mustEqual(4, map.size()); + mustEqual(1, sm.size()); + mustEqual(three, sm.firstKey()); + mustEqual(three, sm.lastKey()); + mustEqual("C", sm.remove(three)); assertTrue(sm.isEmpty()); - assertEquals(3, map.size()); + mustEqual(3, map.size()); } public void testSubMapContents2() { - ConcurrentNavigableMap map = map5(); - SortedMap sm = map.subMap(two, three); - assertEquals(1, sm.size()); - assertEquals(two, sm.firstKey()); - assertEquals(two, sm.lastKey()); + ConcurrentNavigableMap map = map5(); + SortedMap sm = map.subMap(two, three); + mustEqual(1, sm.size()); + mustEqual(two, sm.firstKey()); + mustEqual(two, sm.lastKey()); assertFalse(sm.containsKey(one)); assertTrue(sm.containsKey(two)); assertFalse(sm.containsKey(three)); assertFalse(sm.containsKey(four)); assertFalse(sm.containsKey(five)); - Iterator i = sm.keySet().iterator(); - Object k; - k = (Integer)(i.next()); - assertEquals(two, k); + Iterator i = sm.keySet().iterator(); + Item k; + k = (Item)(i.next()); + mustEqual(two, k); assertFalse(i.hasNext()); - Iterator j = sm.keySet().iterator(); + Iterator j = sm.keySet().iterator(); j.next(); j.remove(); assertFalse(map.containsKey(two)); - assertEquals(4, map.size()); - assertEquals(0, sm.size()); + mustEqual(4, map.size()); + mustEqual(0, sm.size()); assertTrue(sm.isEmpty()); - assertTrue(sm.remove(three) == null); - assertEquals(4, map.size()); + assertSame(sm.remove(three), null); + mustEqual(4, map.size()); } /** * headMap returns map with keys in requested range */ public void testHeadMapContents() { - ConcurrentNavigableMap map = map5(); - SortedMap sm = map.headMap(four); + ConcurrentNavigableMap map = map5(); + SortedMap sm = map.headMap(four); assertTrue(sm.containsKey(one)); assertTrue(sm.containsKey(two)); assertTrue(sm.containsKey(three)); assertFalse(sm.containsKey(four)); assertFalse(sm.containsKey(five)); - Iterator i = sm.keySet().iterator(); + Iterator i = sm.keySet().iterator(); Object k; - k = (Integer)(i.next()); - assertEquals(one, k); - k = (Integer)(i.next()); - assertEquals(two, k); - k = (Integer)(i.next()); - assertEquals(three, k); + k = (Item)(i.next()); + mustEqual(one, k); + k = (Item)(i.next()); + mustEqual(two, k); + k = (Item)(i.next()); + mustEqual(three, k); assertFalse(i.hasNext()); sm.clear(); assertTrue(sm.isEmpty()); - assertEquals(2, map.size()); - assertEquals(four, map.firstKey()); + mustEqual(2, map.size()); + mustEqual(four, map.firstKey()); } /** * headMap returns map with keys in requested range */ public void testTailMapContents() { - ConcurrentNavigableMap map = map5(); - SortedMap sm = map.tailMap(two); + ConcurrentNavigableMap map = map5(); + SortedMap sm = map.tailMap(two); assertFalse(sm.containsKey(one)); assertTrue(sm.containsKey(two)); assertTrue(sm.containsKey(three)); assertTrue(sm.containsKey(four)); assertTrue(sm.containsKey(five)); - Iterator i = sm.keySet().iterator(); - Object k; - k = (Integer)(i.next()); - assertEquals(two, k); - k = (Integer)(i.next()); - assertEquals(three, k); - k = (Integer)(i.next()); - assertEquals(four, k); - k = (Integer)(i.next()); - assertEquals(five, k); + Iterator i = sm.keySet().iterator(); + Item k = i.next(); + mustEqual(two, k); + k = i.next(); + mustEqual(three, k); + k = i.next(); + mustEqual(four, k); + k = i.next(); + mustEqual(five, k); assertFalse(i.hasNext()); - Iterator ei = sm.entrySet().iterator(); - Map.Entry e; - e = (Map.Entry)(ei.next()); - assertEquals(two, e.getKey()); - assertEquals("B", e.getValue()); - e = (Map.Entry)(ei.next()); - assertEquals(three, e.getKey()); - assertEquals("C", e.getValue()); - e = (Map.Entry)(ei.next()); - assertEquals(four, e.getKey()); - assertEquals("D", e.getValue()); - e = (Map.Entry)(ei.next()); - assertEquals(five, e.getKey()); - assertEquals("E", e.getValue()); + Iterator> ei = sm.entrySet().iterator(); + Map.Entry e; + e = (ei.next()); + mustEqual(two, e.getKey()); + mustEqual("B", e.getValue()); + e = (ei.next()); + mustEqual(three, e.getKey()); + mustEqual("C", e.getValue()); + e = (ei.next()); + mustEqual(four, e.getKey()); + mustEqual("D", e.getValue()); + e = (ei.next()); + mustEqual(five, e.getKey()); + mustEqual("E", e.getValue()); assertFalse(i.hasNext()); - SortedMap ssm = sm.tailMap(four); - assertEquals(four, ssm.firstKey()); - assertEquals(five, ssm.lastKey()); - assertTrue(ssm.remove(four) != null); - assertEquals(1, ssm.size()); - assertEquals(3, sm.size()); - assertEquals(4, map.size()); + SortedMap ssm = sm.tailMap(four); + mustEqual(four, ssm.firstKey()); + mustEqual(five, ssm.lastKey()); + mustEqual("D", ssm.remove(four)); + mustEqual(1, ssm.size()); + mustEqual(3, sm.size()); + mustEqual(4, map.size()); } /** - * clear removes all pairs + * clear removes all pairs */ public void testDescendingClear() { - ConcurrentNavigableMap map = dmap5(); - map.clear(); - assertEquals(map.size(), 0); + ConcurrentNavigableMap map = dmap5(); + map.clear(); + mustEqual(0, map.size()); } - /** - * Maps with same contents are equal + * Maps with same contents are equal */ public void testDescendingEquals() { - ConcurrentNavigableMap map1 = dmap5(); - ConcurrentNavigableMap map2 = dmap5(); - assertEquals(map1, map2); - assertEquals(map2, map1); - map1.clear(); + ConcurrentNavigableMap map1 = dmap5(); + ConcurrentNavigableMap map2 = dmap5(); + mustEqual(map1, map2); + mustEqual(map2, map1); + map1.clear(); assertFalse(map1.equals(map2)); assertFalse(map2.equals(map1)); } /** - * containsKey returns true for contained key + * containsKey returns true for contained key */ public void testDescendingContainsKey() { - ConcurrentNavigableMap map = dmap5(); - assertTrue(map.containsKey(m1)); + ConcurrentNavigableMap map = dmap5(); + assertTrue(map.containsKey(minusOne)); assertFalse(map.containsKey(zero)); } /** - * containsValue returns true for held values + * containsValue returns true for held values */ public void testDescendingContainsValue() { - ConcurrentNavigableMap map = dmap5(); - assertTrue(map.containsValue("A")); + ConcurrentNavigableMap map = dmap5(); + assertTrue(map.containsValue("A")); assertFalse(map.containsValue("Z")); } /** - * get returns the correct element at the given key, - * or null if not present + * get returns the correct element at the given key, + * or null if not present */ public void testDescendingGet() { - ConcurrentNavigableMap map = dmap5(); - assertEquals("A", (String)map.get(m1)); - ConcurrentNavigableMap empty = dmap0(); - assertNull(empty.get(m1)); + ConcurrentNavigableMap map = dmap5(); + mustEqual("A", map.get(minusOne)); + ConcurrentNavigableMap empty = dmap0(); + assertNull(empty.get(minusOne)); } /** - * isEmpty is true of empty map and false for non-empty + * isEmpty is true of empty map and false for non-empty */ public void testDescendingIsEmpty() { - ConcurrentNavigableMap empty = dmap0(); - ConcurrentNavigableMap map = dmap5(); - assertTrue(empty.isEmpty()); + ConcurrentNavigableMap empty = dmap0(); + ConcurrentNavigableMap map = dmap5(); + assertTrue(empty.isEmpty()); assertFalse(map.isEmpty()); } /** - * firstKey returns first key + * firstKey returns first key */ public void testDescendingFirstKey() { - ConcurrentNavigableMap map = dmap5(); - assertEquals(m1, map.firstKey()); + ConcurrentNavigableMap map = dmap5(); + mustEqual(minusOne, map.firstKey()); } /** - * lastKey returns last key + * lastKey returns last key */ public void testDescendingLastKey() { - ConcurrentNavigableMap map = dmap5(); - assertEquals(m5, map.lastKey()); + ConcurrentNavigableMap map = dmap5(); + mustEqual(minusFive, map.lastKey()); } - /** - * keySet returns a Set containing all the keys + * keySet returns a Set containing all the keys */ public void testDescendingKeySet() { - ConcurrentNavigableMap map = dmap5(); - Set s = map.keySet(); - assertEquals(5, s.size()); - assertTrue(s.contains(m1)); - assertTrue(s.contains(m2)); - assertTrue(s.contains(m3)); - assertTrue(s.contains(m4)); - assertTrue(s.contains(m5)); + ConcurrentNavigableMap map = dmap5(); + Set s = map.keySet(); + mustEqual(5, s.size()); + mustContain(s, minusOne); + mustContain(s, minusTwo); + mustContain(s, minusThree); + mustContain(s, minusFour); + mustContain(s, minusFive); } /** - * keySet is ordered + * keySet is ordered */ public void testDescendingKeySetOrder() { - ConcurrentNavigableMap map = dmap5(); - Set s = map.keySet(); - Iterator i = s.iterator(); - Integer last = (Integer)i.next(); - assertEquals(last, m1); + ConcurrentNavigableMap map = dmap5(); + Set s = map.keySet(); + Iterator i = s.iterator(); + Item last = i.next(); + mustEqual(last, minusOne); while (i.hasNext()) { - Integer k = (Integer)i.next(); + Item k = i.next(); assertTrue(last.compareTo(k) > 0); last = k; } @@ -875,276 +856,267 @@ public class ConcurrentSkipListSubMapTes * values collection contains all values */ public void testDescendingValues() { - ConcurrentNavigableMap map = dmap5(); - Collection s = map.values(); - assertEquals(5, s.size()); - assertTrue(s.contains("A")); - assertTrue(s.contains("B")); - assertTrue(s.contains("C")); - assertTrue(s.contains("D")); - assertTrue(s.contains("E")); + ConcurrentNavigableMap map = dmap5(); + Collection s = map.values(); + mustEqual(5, s.size()); + assertTrue(s.contains("A")); + assertTrue(s.contains("B")); + assertTrue(s.contains("C")); + assertTrue(s.contains("D")); + assertTrue(s.contains("E")); } /** - * keySet.toArray returns contains all keys + * keySet.toArray returns contains all keys */ public void testDescendingAscendingKeySetToArray() { - ConcurrentNavigableMap map = dmap5(); - Set s = map.keySet(); - Object[] ar = s.toArray(); + ConcurrentNavigableMap map = dmap5(); + Set s = map.keySet(); + Item[] ar = s.toArray(new Item[0]); assertTrue(s.containsAll(Arrays.asList(ar))); - assertEquals(5, ar.length); - ar[0] = m10; + mustEqual(5, ar.length); + ar[0] = minusTen; assertFalse(s.containsAll(Arrays.asList(ar))); } /** - * descendingkeySet.toArray returns contains all keys + * descendingkeySet.toArray returns contains all keys */ public void testDescendingDescendingKeySetToArray() { - ConcurrentNavigableMap map = dmap5(); - Set s = map.descendingKeySet(); - Object[] ar = s.toArray(); - assertEquals(5, ar.length); + ConcurrentNavigableMap map = dmap5(); + Set s = map.descendingKeySet(); + Item[] ar = s.toArray(new Item[0]); + mustEqual(5, ar.length); assertTrue(s.containsAll(Arrays.asList(ar))); - ar[0] = m10; + ar[0] = minusTen; assertFalse(s.containsAll(Arrays.asList(ar))); } /** - * Values.toArray contains all values + * Values.toArray contains all values */ public void testDescendingValuesToArray() { - ConcurrentNavigableMap map = dmap5(); - Collection v = map.values(); - Object[] ar = v.toArray(); - ArrayList s = new ArrayList(Arrays.asList(ar)); - assertEquals(5, ar.length); - assertTrue(s.contains("A")); - assertTrue(s.contains("B")); - assertTrue(s.contains("C")); - assertTrue(s.contains("D")); - assertTrue(s.contains("E")); + ConcurrentNavigableMap map = dmap5(); + Collection v = map.values(); + String[] ar = v.toArray(new String[0]); + ArrayList s = new ArrayList(Arrays.asList(ar)); + mustEqual(5, ar.length); + assertTrue(s.contains("A")); + assertTrue(s.contains("B")); + assertTrue(s.contains("C")); + assertTrue(s.contains("D")); + assertTrue(s.contains("E")); } - /** * entrySet contains all pairs */ public void testDescendingEntrySet() { - ConcurrentNavigableMap map = dmap5(); - Set s = map.entrySet(); - assertEquals(5, s.size()); - Iterator it = s.iterator(); + ConcurrentNavigableMap map = dmap5(); + Set> s = map.entrySet(); + mustEqual(5, s.size()); + Iterator> it = s.iterator(); while (it.hasNext()) { - Map.Entry e = (Map.Entry) it.next(); - assertTrue( - (e.getKey().equals(m1) && e.getValue().equals("A")) || - (e.getKey().equals(m2) && e.getValue().equals("B")) || - (e.getKey().equals(m3) && e.getValue().equals("C")) || - (e.getKey().equals(m4) && e.getValue().equals("D")) || - (e.getKey().equals(m5) && e.getValue().equals("E"))); + Map.Entry e = it.next(); + assertTrue( + (e.getKey().equals(minusOne) && e.getValue().equals("A")) || + (e.getKey().equals(minusTwo) && e.getValue().equals("B")) || + (e.getKey().equals(minusThree) && e.getValue().equals("C")) || + (e.getKey().equals(minusFour) && e.getValue().equals("D")) || + (e.getKey().equals(minusFive) && e.getValue().equals("E"))); } } /** - * putAll adds all key-value pairs from the given map + * putAll adds all key-value pairs from the given map */ public void testDescendingPutAll() { - ConcurrentNavigableMap empty = dmap0(); - ConcurrentNavigableMap map = dmap5(); - empty.putAll(map); - assertEquals(5, empty.size()); - assertTrue(empty.containsKey(m1)); - assertTrue(empty.containsKey(m2)); - assertTrue(empty.containsKey(m3)); - assertTrue(empty.containsKey(m4)); - assertTrue(empty.containsKey(m5)); + ConcurrentNavigableMap empty = dmap0(); + ConcurrentNavigableMap map = dmap5(); + empty.putAll(map); + mustEqual(5, empty.size()); + assertTrue(empty.containsKey(minusOne)); + assertTrue(empty.containsKey(minusTwo)); + assertTrue(empty.containsKey(minusThree)); + assertTrue(empty.containsKey(minusFour)); + assertTrue(empty.containsKey(minusFive)); } /** - * putIfAbsent works when the given key is not present + * putIfAbsent works when the given key is not present */ public void testDescendingPutIfAbsent() { - ConcurrentNavigableMap map = dmap5(); - map.putIfAbsent(six, "Z"); + ConcurrentNavigableMap map = dmap5(); + map.putIfAbsent(six, "Z"); assertTrue(map.containsKey(six)); } /** - * putIfAbsent does not add the pair if the key is already present + * putIfAbsent does not add the pair if the key is already present */ public void testDescendingPutIfAbsent2() { - ConcurrentNavigableMap map = dmap5(); - assertEquals("A", map.putIfAbsent(m1, "Z")); + ConcurrentNavigableMap map = dmap5(); + mustEqual("A", map.putIfAbsent(minusOne, "Z")); } /** - * replace fails when the given key is not present + * replace fails when the given key is not present */ public void testDescendingReplace() { - ConcurrentNavigableMap map = dmap5(); - assertNull(map.replace(six, "Z")); + ConcurrentNavigableMap map = dmap5(); + assertNull(map.replace(six, "Z")); assertFalse(map.containsKey(six)); } /** - * replace succeeds if the key is already present + * replace succeeds if the key is already present */ public void testDescendingReplace2() { - ConcurrentNavigableMap map = dmap5(); - assertNotNull(map.replace(m1, "Z")); - assertEquals("Z", map.get(m1)); + ConcurrentNavigableMap map = dmap5(); + assertNotNull(map.replace(minusOne, "Z")); + mustEqual("Z", map.get(minusOne)); } - /** * replace value fails when the given key not mapped to expected value */ public void testDescendingReplaceValue() { - ConcurrentNavigableMap map = dmap5(); - assertEquals("A", map.get(m1)); - assertFalse(map.replace(m1, "Z", "Z")); - assertEquals("A", map.get(m1)); + ConcurrentNavigableMap map = dmap5(); + mustEqual("A", map.get(minusOne)); + assertFalse(map.replace(minusOne, "Z", "Z")); + mustEqual("A", map.get(minusOne)); } /** * replace value succeeds when the given key mapped to expected value */ public void testDescendingReplaceValue2() { - ConcurrentNavigableMap map = dmap5(); - assertEquals("A", map.get(m1)); - assertTrue(map.replace(m1, "A", "Z")); - assertEquals("Z", map.get(m1)); + ConcurrentNavigableMap map = dmap5(); + mustEqual("A", map.get(minusOne)); + assertTrue(map.replace(minusOne, "A", "Z")); + mustEqual("Z", map.get(minusOne)); } - /** - * remove removes the correct key-value pair from the map + * remove removes the correct key-value pair from the map */ public void testDescendingRemove() { - ConcurrentNavigableMap map = dmap5(); - map.remove(m5); - assertEquals(4, map.size()); - assertFalse(map.containsKey(m5)); + ConcurrentNavigableMap map = dmap5(); + map.remove(minusFive); + mustEqual(4, map.size()); + assertFalse(map.containsKey(minusFive)); } /** * remove(key,value) removes only if pair present */ public void testDescendingRemove2() { - ConcurrentNavigableMap map = dmap5(); - assertTrue(map.containsKey(m5)); - assertEquals("E", map.get(m5)); - map.remove(m5, "E"); - assertEquals(4, map.size()); - assertFalse(map.containsKey(m5)); - map.remove(m4, "A"); - assertEquals(4, map.size()); - assertTrue(map.containsKey(m4)); - + ConcurrentNavigableMap map = dmap5(); + assertTrue(map.containsKey(minusFive)); + mustEqual("E", map.get(minusFive)); + map.remove(minusFive, "E"); + mustEqual(4, map.size()); + assertFalse(map.containsKey(minusFive)); + map.remove(minusFour, "A"); + mustEqual(4, map.size()); + assertTrue(map.containsKey(minusFour)); } /** * lowerEntry returns preceding entry. */ public void testDescendingLowerEntry() { - ConcurrentNavigableMap map = dmap5(); - Map.Entry e1 = map.lowerEntry(m3); - assertEquals(m2, e1.getKey()); + ConcurrentNavigableMap map = dmap5(); + Map.Entry e1 = map.lowerEntry(minusThree); + mustEqual(minusTwo, e1.getKey()); - Map.Entry e2 = map.lowerEntry(m6); - assertEquals(m5, e2.getKey()); + Map.Entry e2 = map.lowerEntry(minusSix); + mustEqual(minusFive, e2.getKey()); - Map.Entry e3 = map.lowerEntry(m1); + Map.Entry e3 = map.lowerEntry(minusOne); assertNull(e3); - Map.Entry e4 = map.lowerEntry(zero); + Map.Entry e4 = map.lowerEntry(zero); assertNull(e4); - } /** * higherEntry returns next entry. */ public void testDescendingHigherEntry() { - ConcurrentNavigableMap map = dmap5(); - Map.Entry e1 = map.higherEntry(m3); - assertEquals(m4, e1.getKey()); + ConcurrentNavigableMap map = dmap5(); + Map.Entry e1 = map.higherEntry(minusThree); + mustEqual(minusFour, e1.getKey()); - Map.Entry e2 = map.higherEntry(zero); - assertEquals(m1, e2.getKey()); + Map.Entry e2 = map.higherEntry(zero); + mustEqual(minusOne, e2.getKey()); - Map.Entry e3 = map.higherEntry(m5); + Map.Entry e3 = map.higherEntry(minusFive); assertNull(e3); - Map.Entry e4 = map.higherEntry(m6); + Map.Entry e4 = map.higherEntry(minusSix); assertNull(e4); - } /** * floorEntry returns preceding entry. */ public void testDescendingFloorEntry() { - ConcurrentNavigableMap map = dmap5(); - Map.Entry e1 = map.floorEntry(m3); - assertEquals(m3, e1.getKey()); + ConcurrentNavigableMap map = dmap5(); + Map.Entry e1 = map.floorEntry(minusThree); + mustEqual(minusThree, e1.getKey()); - Map.Entry e2 = map.floorEntry(m6); - assertEquals(m5, e2.getKey()); + Map.Entry e2 = map.floorEntry(minusSix); + mustEqual(minusFive, e2.getKey()); - Map.Entry e3 = map.floorEntry(m1); - assertEquals(m1, e3.getKey()); + Map.Entry e3 = map.floorEntry(minusOne); + mustEqual(minusOne, e3.getKey()); - Map.Entry e4 = map.floorEntry(zero); + Map.Entry e4 = map.floorEntry(zero); assertNull(e4); - } /** * ceilingEntry returns next entry. */ public void testDescendingCeilingEntry() { - ConcurrentNavigableMap map = dmap5(); - Map.Entry e1 = map.ceilingEntry(m3); - assertEquals(m3, e1.getKey()); + ConcurrentNavigableMap map = dmap5(); + Map.Entry e1 = map.ceilingEntry(minusThree); + mustEqual(minusThree, e1.getKey()); - Map.Entry e2 = map.ceilingEntry(zero); - assertEquals(m1, e2.getKey()); + Map.Entry e2 = map.ceilingEntry(zero); + mustEqual(minusOne, e2.getKey()); - Map.Entry e3 = map.ceilingEntry(m5); - assertEquals(m5, e3.getKey()); + Map.Entry e3 = map.ceilingEntry(minusFive); + mustEqual(minusFive, e3.getKey()); - Map.Entry e4 = map.ceilingEntry(m6); + Map.Entry e4 = map.ceilingEntry(minusSix); assertNull(e4); - } /** * pollFirstEntry returns entries in order */ public void testDescendingPollFirstEntry() { - ConcurrentNavigableMap map = dmap5(); - Map.Entry e = map.pollFirstEntry(); - assertEquals(m1, e.getKey()); - assertEquals("A", e.getValue()); + ConcurrentNavigableMap map = dmap5(); + Map.Entry e = map.pollFirstEntry(); + mustEqual(minusOne, e.getKey()); + mustEqual("A", e.getValue()); e = map.pollFirstEntry(); - assertEquals(m2, e.getKey()); - map.put(m1, "A"); + mustEqual(minusTwo, e.getKey()); + map.put(minusOne, "A"); e = map.pollFirstEntry(); - assertEquals(m1, e.getKey()); - assertEquals("A", e.getValue()); + mustEqual(minusOne, e.getKey()); + mustEqual("A", e.getValue()); e = map.pollFirstEntry(); - assertEquals(m3, e.getKey()); - map.remove(m4); + mustEqual(minusThree, e.getKey()); + map.remove(minusFour); e = map.pollFirstEntry(); - assertEquals(m5, e.getKey()); + mustEqual(minusFive, e.getKey()); try { e.setValue("A"); shouldThrow(); - } catch (Exception ok) { - } + } catch (UnsupportedOperationException success) {} e = map.pollFirstEntry(); assertNull(e); } @@ -1153,73 +1125,72 @@ public class ConcurrentSkipListSubMapTes * pollLastEntry returns entries in order */ public void testDescendingPollLastEntry() { - ConcurrentNavigableMap map = dmap5(); - Map.Entry e = map.pollLastEntry(); - assertEquals(m5, e.getKey()); - assertEquals("E", e.getValue()); + ConcurrentNavigableMap map = dmap5(); + Map.Entry e = map.pollLastEntry(); + mustEqual(minusFive, e.getKey()); + mustEqual("E", e.getValue()); e = map.pollLastEntry(); - assertEquals(m4, e.getKey()); - map.put(m5, "E"); + mustEqual(minusFour, e.getKey()); + map.put(minusFive, "E"); e = map.pollLastEntry(); - assertEquals(m5, e.getKey()); - assertEquals("E", e.getValue()); + mustEqual(minusFive, e.getKey()); + mustEqual("E", e.getValue()); e = map.pollLastEntry(); - assertEquals(m3, e.getKey()); - map.remove(m2); + mustEqual(minusThree, e.getKey()); + map.remove(minusTwo); e = map.pollLastEntry(); - assertEquals(m1, e.getKey()); + mustEqual(minusOne, e.getKey()); try { e.setValue("E"); shouldThrow(); - } catch (Exception ok) { - } + } catch (UnsupportedOperationException success) {} e = map.pollLastEntry(); assertNull(e); } /** - * size returns the correct values + * size returns the correct values */ public void testDescendingSize() { - ConcurrentNavigableMap map = dmap5(); - ConcurrentNavigableMap empty = dmap0(); - assertEquals(0, empty.size()); - assertEquals(5, map.size()); + ConcurrentNavigableMap map = dmap5(); + ConcurrentNavigableMap empty = dmap0(); + mustEqual(0, empty.size()); + mustEqual(5, map.size()); } /** * toString contains toString of elements */ public void testDescendingToString() { - ConcurrentNavigableMap map = dmap5(); + ConcurrentNavigableMap map = dmap5(); String s = map.toString(); for (int i = 1; i <= 5; ++i) { - assertTrue(s.indexOf(String.valueOf(i)) >= 0); + assertTrue(s.contains(String.valueOf(i))); } - } + } // Exception testDescendings /** - * get(null) of nm1mpty map throws NPE + * get(null) of empty map throws NPE */ public void testDescendingGet_NullPointerException() { try { - ConcurrentNavigableMap c = dmap5(); + ConcurrentNavigableMap c = dmap5(); c.get(null); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** - * containsKey(null) of nm1mpty map throws NPE + * containsKey(null) of empty map throws NPE */ public void testDescendingContainsKey_NullPointerException() { try { - ConcurrentNavigableMap c = dmap5(); + ConcurrentNavigableMap c = dmap5(); c.containsKey(null); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -1227,22 +1198,21 @@ public class ConcurrentSkipListSubMapTes */ public void testDescendingContainsValue_NullPointerException() { try { - ConcurrentNavigableMap c = dmap0(); + ConcurrentNavigableMap c = dmap0(); c.containsValue(null); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } - /** * put(null,x) throws NPE */ public void testDescendingPut1_NullPointerException() { try { - ConcurrentNavigableMap c = dmap5(); + ConcurrentNavigableMap c = dmap5(); c.put(null, "whatever"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -1250,10 +1220,10 @@ public class ConcurrentSkipListSubMapTes */ public void testDescendingPutIfAbsent1_NullPointerException() { try { - ConcurrentNavigableMap c = dmap5(); + ConcurrentNavigableMap c = dmap5(); c.putIfAbsent(null, "whatever"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -1261,10 +1231,10 @@ public class ConcurrentSkipListSubMapTes */ public void testDescendingReplace_NullPointerException() { try { - ConcurrentNavigableMap c = dmap5(); + ConcurrentNavigableMap c = dmap5(); c.replace(null, "whatever"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -1272,10 +1242,10 @@ public class ConcurrentSkipListSubMapTes */ public void testDescendingReplaceValue_NullPointerException() { try { - ConcurrentNavigableMap c = dmap5(); - c.replace(null, m1, "whatever"); + ConcurrentNavigableMap c = dmap5(); + c.replace(null, "A", "B"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -1283,10 +1253,10 @@ public class ConcurrentSkipListSubMapTes */ public void testDescendingRemove1_NullPointerException() { try { - ConcurrentNavigableMap c = dmap5(); + ConcurrentNavigableMap c = dmap5(); c.remove(null); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** @@ -1294,171 +1264,158 @@ public class ConcurrentSkipListSubMapTes */ public void testDescendingRemove2_NullPointerException() { try { - ConcurrentNavigableMap c = dmap5(); + ConcurrentNavigableMap c = dmap5(); c.remove(null, "whatever"); shouldThrow(); - } catch(NullPointerException e){} + } catch (NullPointerException success) {} } /** - * A deserialized map equals original + * A deserialized/reserialized map equals original */ - public void testDescendingSerialization() { - ConcurrentNavigableMap q = dmap5(); + public void testDescendingSerialization() throws Exception { + NavigableMap x = dmap5(); + NavigableMap y = serialClone(x); - try { - ByteArrayOutputStream bout = new ByteArrayOutputStream(10000); - ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(bout)); - out.writeObject(q); - out.close(); - - ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()); - ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(bin)); - ConcurrentNavigableMap r = (ConcurrentNavigableMap)in.readObject(); - assertEquals(q.size(), r.size()); - assertTrue(q.equals(r)); - assertTrue(r.equals(q)); - } catch(Exception e){ - e.printStackTrace(); - unexpectedException(); - } + assertNotSame(x, y); + mustEqual(x.size(), y.size()); + mustEqual(x.toString(), y.toString()); + mustEqual(x, y); + mustEqual(y, x); } - - /** * subMap returns map with keys in requested range */ public void testDescendingSubMapContents() { - ConcurrentNavigableMap map = dmap5(); - SortedMap sm = map.subMap(m2, m4); - assertEquals(m2, sm.firstKey()); - assertEquals(m3, sm.lastKey()); - assertEquals(2, sm.size()); - assertFalse(sm.containsKey(m1)); - assertTrue(sm.containsKey(m2)); - assertTrue(sm.containsKey(m3)); - assertFalse(sm.containsKey(m4)); - assertFalse(sm.containsKey(m5)); - Iterator i = sm.keySet().iterator(); - Object k; - k = (Integer)(i.next()); - assertEquals(m2, k); - k = (Integer)(i.next()); - assertEquals(m3, k); + ConcurrentNavigableMap map = dmap5(); + SortedMap sm = map.subMap(minusTwo, minusFour); + mustEqual(minusTwo, sm.firstKey()); + mustEqual(minusThree, sm.lastKey()); + mustEqual(2, sm.size()); + assertFalse(sm.containsKey(minusOne)); + assertTrue(sm.containsKey(minusTwo)); + assertTrue(sm.containsKey(minusThree)); + assertFalse(sm.containsKey(minusFour)); + assertFalse(sm.containsKey(minusFive)); + Iterator i = sm.keySet().iterator(); + Item k; + k = (Item)(i.next()); + mustEqual(minusTwo, k); + k = (Item)(i.next()); + mustEqual(minusThree, k); assertFalse(i.hasNext()); - Iterator j = sm.keySet().iterator(); + Iterator j = sm.keySet().iterator(); j.next(); j.remove(); - assertFalse(map.containsKey(m2)); - assertEquals(4, map.size()); - assertEquals(1, sm.size()); - assertEquals(m3, sm.firstKey()); - assertEquals(m3, sm.lastKey()); - assertTrue(sm.remove(m3) != null); + assertFalse(map.containsKey(minusTwo)); + mustEqual(4, map.size()); + mustEqual(1, sm.size()); + mustEqual(minusThree, sm.firstKey()); + mustEqual(minusThree, sm.lastKey()); + mustEqual("C", sm.remove(minusThree)); assertTrue(sm.isEmpty()); - assertEquals(3, map.size()); + mustEqual(3, map.size()); } public void testDescendingSubMapContents2() { - ConcurrentNavigableMap map = dmap5(); - SortedMap sm = map.subMap(m2, m3); - assertEquals(1, sm.size()); - assertEquals(m2, sm.firstKey()); - assertEquals(m2, sm.lastKey()); - assertFalse(sm.containsKey(m1)); - assertTrue(sm.containsKey(m2)); - assertFalse(sm.containsKey(m3)); - assertFalse(sm.containsKey(m4)); - assertFalse(sm.containsKey(m5)); - Iterator i = sm.keySet().iterator(); - Object k; - k = (Integer)(i.next()); - assertEquals(m2, k); + ConcurrentNavigableMap map = dmap5(); + SortedMap sm = map.subMap(minusTwo, minusThree); + mustEqual(1, sm.size()); + mustEqual(minusTwo, sm.firstKey()); + mustEqual(minusTwo, sm.lastKey()); + assertFalse(sm.containsKey(minusOne)); + assertTrue(sm.containsKey(minusTwo)); + assertFalse(sm.containsKey(minusThree)); + assertFalse(sm.containsKey(minusFour)); + assertFalse(sm.containsKey(minusFive)); + Iterator i = sm.keySet().iterator(); + Item k; + k = (Item)(i.next()); + mustEqual(minusTwo, k); assertFalse(i.hasNext()); - Iterator j = sm.keySet().iterator(); + Iterator j = sm.keySet().iterator(); j.next(); j.remove(); - assertFalse(map.containsKey(m2)); - assertEquals(4, map.size()); - assertEquals(0, sm.size()); + assertFalse(map.containsKey(minusTwo)); + mustEqual(4, map.size()); + mustEqual(0, sm.size()); assertTrue(sm.isEmpty()); - assertTrue(sm.remove(m3) == null); - assertEquals(4, map.size()); + assertSame(sm.remove(minusThree), null); + mustEqual(4, map.size()); } /** * headMap returns map with keys in requested range */ public void testDescendingHeadMapContents() { - ConcurrentNavigableMap map = dmap5(); - SortedMap sm = map.headMap(m4); - assertTrue(sm.containsKey(m1)); - assertTrue(sm.containsKey(m2)); - assertTrue(sm.containsKey(m3)); - assertFalse(sm.containsKey(m4)); - assertFalse(sm.containsKey(m5)); - Iterator i = sm.keySet().iterator(); - Object k; - k = (Integer)(i.next()); - assertEquals(m1, k); - k = (Integer)(i.next()); - assertEquals(m2, k); - k = (Integer)(i.next()); - assertEquals(m3, k); + ConcurrentNavigableMap map = dmap5(); + SortedMap sm = map.headMap(minusFour); + assertTrue(sm.containsKey(minusOne)); + assertTrue(sm.containsKey(minusTwo)); + assertTrue(sm.containsKey(minusThree)); + assertFalse(sm.containsKey(minusFour)); + assertFalse(sm.containsKey(minusFive)); + Iterator i = sm.keySet().iterator(); + Item k; + k = (Item)(i.next()); + mustEqual(minusOne, k); + k = (Item)(i.next()); + mustEqual(minusTwo, k); + k = (Item)(i.next()); + mustEqual(minusThree, k); assertFalse(i.hasNext()); sm.clear(); assertTrue(sm.isEmpty()); - assertEquals(2, map.size()); - assertEquals(m4, map.firstKey()); + mustEqual(2, map.size()); + mustEqual(minusFour, map.firstKey()); } /** * headMap returns map with keys in requested range */ public void testDescendingTailMapContents() { - ConcurrentNavigableMap map = dmap5(); - SortedMap sm = map.tailMap(m2); - assertFalse(sm.containsKey(m1)); - assertTrue(sm.containsKey(m2)); - assertTrue(sm.containsKey(m3)); - assertTrue(sm.containsKey(m4)); - assertTrue(sm.containsKey(m5)); - Iterator i = sm.keySet().iterator(); - Object k; - k = (Integer)(i.next()); - assertEquals(m2, k); - k = (Integer)(i.next()); - assertEquals(m3, k); - k = (Integer)(i.next()); - assertEquals(m4, k); - k = (Integer)(i.next()); - assertEquals(m5, k); + ConcurrentNavigableMap map = dmap5(); + SortedMap sm = map.tailMap(minusTwo); + assertFalse(sm.containsKey(minusOne)); + assertTrue(sm.containsKey(minusTwo)); + assertTrue(sm.containsKey(minusThree)); + assertTrue(sm.containsKey(minusFour)); + assertTrue(sm.containsKey(minusFive)); + Iterator i = sm.keySet().iterator(); + Item k = i.next(); + mustEqual(minusTwo, k); + k = (i.next()); + mustEqual(minusThree, k); + k = (i.next()); + mustEqual(minusFour, k); + k = (i.next()); + mustEqual(minusFive, k); assertFalse(i.hasNext()); - Iterator ei = sm.entrySet().iterator(); - Map.Entry e; - e = (Map.Entry)(ei.next()); - assertEquals(m2, e.getKey()); - assertEquals("B", e.getValue()); - e = (Map.Entry)(ei.next()); - assertEquals(m3, e.getKey()); - assertEquals("C", e.getValue()); - e = (Map.Entry)(ei.next()); - assertEquals(m4, e.getKey()); - assertEquals("D", e.getValue()); - e = (Map.Entry)(ei.next()); - assertEquals(m5, e.getKey()); - assertEquals("E", e.getValue()); + Iterator> ei = sm.entrySet().iterator(); + Map.Entry e; + e = (ei.next()); + mustEqual(minusTwo, e.getKey()); + mustEqual("B", e.getValue()); + e = (ei.next()); + mustEqual(minusThree, e.getKey()); + mustEqual("C", e.getValue()); + e = (ei.next()); + mustEqual(minusFour, e.getKey()); + mustEqual("D", e.getValue()); + e = (ei.next()); + mustEqual(minusFive, e.getKey()); + mustEqual("E", e.getValue()); assertFalse(i.hasNext()); - SortedMap ssm = sm.tailMap(m4); - assertEquals(m4, ssm.firstKey()); - assertEquals(m5, ssm.lastKey()); - assertTrue(ssm.remove(m4) != null); - assertEquals(1, ssm.size()); - assertEquals(3, sm.size()); - assertEquals(4, map.size()); + SortedMap ssm = sm.tailMap(minusFour); + mustEqual(minusFour, ssm.firstKey()); + mustEqual(minusFive, ssm.lastKey()); + mustEqual("D", ssm.remove(minusFour)); + mustEqual(1, ssm.size()); + mustEqual(3, sm.size()); + mustEqual(4, map.size()); } - + }