18f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle/* 28f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Written by Doug Lea with assistance from members of JCP JSR-166 38f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Expert Group and released to the public domain, as explained at 48f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * http://creativecommons.org/publicdomain/zero/1.0/ 58f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 68f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 78f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravlepackage jsr166; 88f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 98e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.ArrayList; 108e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.Arrays; 118e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.Collection; 128e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.Iterator; 138e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.Map; 148e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.NavigableMap; 158e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.Set; 168e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport java.util.SortedMap; 178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.concurrent.ConcurrentNavigableMap; 188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravleimport java.util.concurrent.ConcurrentSkipListMap; 198e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath 208e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport junit.framework.Test; 218e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamathimport junit.framework.TestSuite; 228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravlepublic class ConcurrentSkipListSubMapTest extends JSR166TestCase { 248e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // android-note: Removed because the CTS runner does a bad job of 258e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // retrying tests that have suite() declarations. 268e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // 278e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // public static void main(String[] args) { 288e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // main(suite(), args); 298e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // } 308e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // public static Test suite() { 31e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak // return new TestSuite(ConcurrentSkipListSubMapTest.class); 328e9a0e92906742b17eb08d7fb83cca91965f9b8eNarayan Kamath // } 338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Returns a new map from Integers 1-5 to Strings "A"-"E". 368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle private static ConcurrentNavigableMap map5() { 388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentSkipListMap map = new ConcurrentSkipListMap(); 398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.isEmpty()); 408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(zero, "Z"); 418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(one, "A"); 428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(five, "E"); 438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(three, "C"); 448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(two, "B"); 458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(four, "D"); 468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(seven, "F"); 478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.isEmpty()); 488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(7, map.size()); 498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle return map.subMap(one, true, seven, false); 508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Returns a new map from Integers -5 to -1 to Strings "A"-"E". 548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle private static ConcurrentNavigableMap dmap5() { 568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentSkipListMap map = new ConcurrentSkipListMap(); 578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.isEmpty()); 588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(m1, "A"); 598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(m5, "E"); 608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(m3, "C"); 618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(m2, "B"); 628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(m4, "D"); 638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.isEmpty()); 648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, map.size()); 658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle return map.descendingMap(); 668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle private static ConcurrentNavigableMap map0() { 698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentSkipListMap map = new ConcurrentSkipListMap(); 708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.isEmpty()); 718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle return map.tailMap(one, true); 728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle private static ConcurrentNavigableMap dmap0() { 758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentSkipListMap map = new ConcurrentSkipListMap(); 768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.isEmpty()); 778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle return map; 788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * clear removes all pairs 828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testClear() { 848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.clear(); 868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, map.size()); 878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Maps with same contents are equal 918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testEquals() { 938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map1 = map5(); 948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map2 = map5(); 958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(map1, map2); 968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(map2, map1); 978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map1.clear(); 988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map1.equals(map2)); 998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map2.equals(map1)); 1008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsKey returns true for contained key 1048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testContainsKey() { 1068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsKey(one)); 1088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(zero)); 1098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsValue returns true for held values 1138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testContainsValue() { 1158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsValue("A")); 1178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsValue("Z")); 1188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * get returns the correct element at the given key, 1228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * or null if not present 1238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testGet() { 1258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", (String)map.get(one)); 1278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap empty = map0(); 1288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(empty.get(one)); 1298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * isEmpty is true of empty map and false for non-empty 1338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testIsEmpty() { 1358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap empty = map0(); 1368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.isEmpty()); 1388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.isEmpty()); 1398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * firstKey returns first key 1438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testFirstKey() { 1458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(one, map.firstKey()); 1478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * lastKey returns last key 1518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testLastKey() { 1538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, map.lastKey()); 1558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * keySet returns a Set containing all the keys 1598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testKeySet() { 1618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.keySet(); 1638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, s.size()); 1648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(one)); 1658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(two)); 1668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(three)); 1678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(four)); 1688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(five)); 1698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * keySet is ordered 1738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testKeySetOrder() { 1758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.keySet(); 1778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = s.iterator(); 1788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer last = (Integer)i.next(); 1798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(last, one); 1808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle while (i.hasNext()) { 1818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer k = (Integer)i.next(); 1828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(last.compareTo(k) < 0); 1838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle last = k; 1848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 1868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 1878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 1888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * values collection contains all values 1898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 1908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testValues() { 1918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 1928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Collection s = map.values(); 1938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, s.size()); 1948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("A")); 1958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("B")); 1968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("C")); 1978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("D")); 1988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("E")); 1998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * keySet.toArray returns contains all keys 2038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testKeySetToArray() { 2058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 2068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.keySet(); 2078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object[] ar = s.toArray(); 2088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.containsAll(Arrays.asList(ar))); 2098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, ar.length); 2108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ar[0] = m10; 2118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(s.containsAll(Arrays.asList(ar))); 2128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * descendingkeySet.toArray returns contains all keys 2168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingKeySetToArray() { 2188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 2198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.descendingKeySet(); 2208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object[] ar = s.toArray(); 2218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, ar.length); 2228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.containsAll(Arrays.asList(ar))); 2238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ar[0] = m10; 2248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(s.containsAll(Arrays.asList(ar))); 2258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Values.toArray contains all values 2298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testValuesToArray() { 2318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 2328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Collection v = map.values(); 2338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object[] ar = v.toArray(); 2348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayList s = new ArrayList(Arrays.asList(ar)); 2358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, ar.length); 2368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("A")); 2378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("B")); 2388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("C")); 2398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("D")); 2408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("E")); 2418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * entrySet contains all pairs 2458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testEntrySet() { 2478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 2488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.entrySet(); 2498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, s.size()); 2508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = s.iterator(); 2518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle while (it.hasNext()) { 2528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e = (Map.Entry) it.next(); 2538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue( 2548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(one) && e.getValue().equals("A")) || 2558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(two) && e.getValue().equals("B")) || 2568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(three) && e.getValue().equals("C")) || 2578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(four) && e.getValue().equals("D")) || 2588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(five) && e.getValue().equals("E"))); 2598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * putAll adds all key-value pairs from the given map 2648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPutAll() { 2668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap empty = map0(); 2678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 2688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle empty.putAll(map); 2698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, empty.size()); 2708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(one)); 2718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(two)); 2728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(three)); 2738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(four)); 2748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(five)); 2758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * putIfAbsent works when the given key is not present 2798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPutIfAbsent() { 2818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 2828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.putIfAbsent(six, "Z"); 2838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsKey(six)); 2848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * putIfAbsent does not add the pair if the key is already present 2888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPutIfAbsent2() { 2908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 2918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", map.putIfAbsent(one, "Z")); 2928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 2938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 2948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 2958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace fails when the given key is not present 2968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 2978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testReplace() { 2988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 2998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(map.replace(six, "Z")); 3008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(six)); 3018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace succeeds if the key is already present 3058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testReplace2() { 3078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 3088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNotNull(map.replace(one, "Z")); 3098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("Z", map.get(one)); 3108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace value fails when the given key not mapped to expected value 3148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testReplaceValue() { 3168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 3178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", map.get(one)); 3188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.replace(one, "Z", "Z")); 3198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", map.get(one)); 3208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace value succeeds when the given key mapped to expected value 3248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testReplaceValue2() { 3268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 3278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", map.get(one)); 3288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.replace(one, "A", "Z")); 3298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("Z", map.get(one)); 3308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove removes the correct key-value pair from the map 3348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemove() { 3368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 3378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(five); 3388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 3398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(five)); 3408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove(key,value) removes only if pair present 3448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemove2() { 3468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 3478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsKey(five)); 3488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("E", map.get(five)); 3498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(five, "E"); 3508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 3518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(five)); 3528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(four, "A"); 3538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 3548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsKey(four)); 3558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * lowerEntry returns preceding entry. 3598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testLowerEntry() { 3618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 3628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e1 = map.lowerEntry(three); 3638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, e1.getKey()); 3648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e2 = map.lowerEntry(six); 3668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, e2.getKey()); 3678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e3 = map.lowerEntry(one); 3698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e3); 3708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e4 = map.lowerEntry(zero); 3728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e4); 3738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * higherEntry returns next entry. 3778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testHigherEntry() { 3798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 3808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e1 = map.higherEntry(three); 3818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(four, e1.getKey()); 3828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e2 = map.higherEntry(zero); 3848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(one, e2.getKey()); 3858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e3 = map.higherEntry(five); 3878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e3); 3888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e4 = map.higherEntry(six); 3908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e4); 3918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 3928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 3938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 3948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * floorEntry returns preceding entry. 3958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 3968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testFloorEntry() { 3978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 3988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e1 = map.floorEntry(three); 3998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, e1.getKey()); 4008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e2 = map.floorEntry(six); 4028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, e2.getKey()); 4038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e3 = map.floorEntry(one); 4058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(one, e3.getKey()); 4068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e4 = map.floorEntry(zero); 4088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e4); 4098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * ceilingEntry returns next entry. 4138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testCeilingEntry() { 4158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 4168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e1 = map.ceilingEntry(three); 4178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, e1.getKey()); 4188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e2 = map.ceilingEntry(zero); 4208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(one, e2.getKey()); 4218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e3 = map.ceilingEntry(five); 4238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, e3.getKey()); 4248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e4 = map.ceilingEntry(six); 4268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e4); 4278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * pollFirstEntry returns entries in order 4318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPollFirstEntry() { 4338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 4348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e = map.pollFirstEntry(); 4358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(one, e.getKey()); 4368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", e.getValue()); 4378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 4388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, e.getKey()); 4398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(one, "A"); 4408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 4418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(one, e.getKey()); 4428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", e.getValue()); 4438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 4448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, e.getKey()); 4458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(four); 4468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 4478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, e.getKey()); 4488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 4498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e.setValue("A"); 4508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 4518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (UnsupportedOperationException success) {} 4528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 4538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e); 4548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * pollLastEntry returns entries in order 4588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPollLastEntry() { 4608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 4618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e = map.pollLastEntry(); 4628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, e.getKey()); 4638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("E", e.getValue()); 4648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 4658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(four, e.getKey()); 4668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(five, "E"); 4678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 4688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, e.getKey()); 4698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("E", e.getValue()); 4708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 4718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, e.getKey()); 4728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(two); 4738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 4748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(one, e.getKey()); 4758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 4768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e.setValue("E"); 4778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 4788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (UnsupportedOperationException success) {} 4798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 4808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e); 4818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * size returns the correct values 4858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testSize() { 4878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 4888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap empty = map0(); 4898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, empty.size()); 4908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, map.size()); 4918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 4928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 4938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 4948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toString contains toString of elements 4958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 4968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testToString() { 4978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 4988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle String s = map.toString(); 4998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 1; i <= 5; ++i) { 5008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(String.valueOf(i))); 5018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle // Exception tests 5058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * get(null) of nonempty map throws NPE 5088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testGet_NullPointerException() { 5108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map5(); 5128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.get(null); 5138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 5158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsKey(null) of nonempty map throws NPE 5198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testContainsKey_NullPointerException() { 5218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map5(); 5238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.containsKey(null); 5248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 5268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsValue(null) throws NPE 5308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testContainsValue_NullPointerException() { 5328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map0(); 5348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.containsValue(null); 5358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 5378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * put(null,x) throws NPE 5418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPut1_NullPointerException() { 5438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map5(); 5458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.put(null, "whatever"); 5468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 5488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * putIfAbsent(null, x) throws NPE 5528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testPutIfAbsent1_NullPointerException() { 5548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map5(); 5568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.putIfAbsent(null, "whatever"); 5578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 5598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace(null, x) throws NPE 5638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testReplace_NullPointerException() { 5658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map5(); 5678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.replace(null, "whatever"); 5688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 5708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace(null, x, y) throws NPE 5748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testReplaceValue_NullPointerException() { 5768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map5(); 5788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.replace(null, one, "whatever"); 5798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 5818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove(null) throws NPE 5858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemove1_NullPointerException() { 5878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map5(); 5898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.remove(null); 5908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 5918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 5928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 5938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 5948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 5958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove(null, x) throws NPE 5968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 5978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testRemove2_NullPointerException() { 5988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 5998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = map5(); 6008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.remove(null, "whatever"); 6018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 6028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 6038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 6068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * A deserialized map equals original 6078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 6088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testSerialization() throws Exception { 6098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle NavigableMap x = map5(); 6108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle NavigableMap y = serialClone(x); 6118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNotSame(x, y); 6138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.size(), y.size()); 6148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.toString(), y.toString()); 6158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x, y); 6168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(y, x); 6178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 6208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * subMap returns map with keys in requested range 6218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 6228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testSubMapContents() { 6238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 6248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap sm = map.subMap(two, four); 6258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, sm.firstKey()); 6268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, sm.lastKey()); 6278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(2, sm.size()); 6288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(one)); 6298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(two)); 6308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(three)); 6318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(four)); 6328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(five)); 6338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = sm.keySet().iterator(); 6348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object k; 6358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 6368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, k); 6378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 6388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, k); 6398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 6408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator j = sm.keySet().iterator(); 6418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle j.next(); 6428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle j.remove(); 6438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(two)); 6448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 6458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(1, sm.size()); 6468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, sm.firstKey()); 6478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, sm.lastKey()); 6488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("C", sm.remove(three)); 6498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.isEmpty()); 6508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(3, map.size()); 6518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testSubMapContents2() { 6548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 6558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap sm = map.subMap(two, three); 6568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(1, sm.size()); 6578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, sm.firstKey()); 6588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, sm.lastKey()); 6598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(one)); 6608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(two)); 6618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(three)); 6628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(four)); 6638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(five)); 6648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = sm.keySet().iterator(); 6658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object k; 6668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 6678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, k); 6688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 6698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator j = sm.keySet().iterator(); 6708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle j.next(); 6718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle j.remove(); 6728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(two)); 6738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 6748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, sm.size()); 6758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.isEmpty()); 6768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(sm.remove(three), null); 6778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 6788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 6798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 6808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 6818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * headMap returns map with keys in requested range 6828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 6838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testHeadMapContents() { 6848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 6858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap sm = map.headMap(four); 6868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(one)); 6878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(two)); 6888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(three)); 6898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(four)); 6908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(five)); 6918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = sm.keySet().iterator(); 6928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object k; 6938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 6948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(one, k); 6958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 6968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, k); 6978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 6988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, k); 6998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 7008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle sm.clear(); 7018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.isEmpty()); 7028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(2, map.size()); 7038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(four, map.firstKey()); 7048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * headMap returns map with keys in requested range 7088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testTailMapContents() { 7108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = map5(); 7118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap sm = map.tailMap(two); 7128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(one)); 7138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(two)); 7148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(three)); 7158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(four)); 7168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(five)); 7178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = sm.keySet().iterator(); 7188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object k; 7198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 7208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, k); 7218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 7228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, k); 7238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 7248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(four, k); 7258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 7268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, k); 7278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 7288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator ei = sm.entrySet().iterator(); 7308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e; 7318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = (Map.Entry)(ei.next()); 7328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(two, e.getKey()); 7338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("B", e.getValue()); 7348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = (Map.Entry)(ei.next()); 7358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(three, e.getKey()); 7368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("C", e.getValue()); 7378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = (Map.Entry)(ei.next()); 7388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(four, e.getKey()); 7398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("D", e.getValue()); 7408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = (Map.Entry)(ei.next()); 7418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, e.getKey()); 7428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("E", e.getValue()); 7438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 7448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap ssm = sm.tailMap(four); 7468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(four, ssm.firstKey()); 7478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(five, ssm.lastKey()); 7488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("D", ssm.remove(four)); 7498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(1, ssm.size()); 7508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(3, sm.size()); 7518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 7528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * clear removes all pairs 7568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingClear() { 7588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 7598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.clear(); 7608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, map.size()); 7618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Maps with same contents are equal 7658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingEquals() { 7678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map1 = dmap5(); 7688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map2 = dmap5(); 7698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(map1, map2); 7708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(map2, map1); 7718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map1.clear(); 7728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map1.equals(map2)); 7738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map2.equals(map1)); 7748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsKey returns true for contained key 7788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingContainsKey() { 7808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 7818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsKey(m1)); 7828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(zero)); 7838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsValue returns true for held values 7878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingContainsValue() { 7898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 7908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsValue("A")); 7918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsValue("Z")); 7928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 7938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 7948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 7958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * get returns the correct element at the given key, 7968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * or null if not present 7978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 7988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingGet() { 7998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", (String)map.get(m1)); 8018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap empty = dmap0(); 8028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(empty.get(m1)); 8038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * isEmpty is true of empty map and false for non-empty 8078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingIsEmpty() { 8098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap empty = dmap0(); 8108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.isEmpty()); 8128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.isEmpty()); 8138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * firstKey returns first key 8178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingFirstKey() { 8198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m1, map.firstKey()); 8218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * lastKey returns last key 8258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingLastKey() { 8278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, map.lastKey()); 8298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * keySet returns a Set containing all the keys 8338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingKeySet() { 8358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.keySet(); 8378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, s.size()); 8388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(m1)); 8398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(m2)); 8408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(m3)); 8418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(m4)); 8428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(m5)); 8438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * keySet is ordered 8478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingKeySetOrder() { 8498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.keySet(); 8518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = s.iterator(); 8528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer last = (Integer)i.next(); 8538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(last, m1); 8548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle while (i.hasNext()) { 8558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Integer k = (Integer)i.next(); 8568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(last.compareTo(k) > 0); 8578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle last = k; 8588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * values collection contains all values 8638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingValues() { 8658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Collection s = map.values(); 8678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, s.size()); 8688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("A")); 8698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("B")); 8708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("C")); 8718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("D")); 8728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("E")); 8738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * keySet.toArray returns contains all keys 8778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingAscendingKeySetToArray() { 8798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.keySet(); 8818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object[] ar = s.toArray(); 8828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.containsAll(Arrays.asList(ar))); 8838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, ar.length); 8848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ar[0] = m10; 8858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(s.containsAll(Arrays.asList(ar))); 8868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 8878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 8888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 8898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * descendingkeySet.toArray returns contains all keys 8908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 8918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingDescendingKeySetToArray() { 8928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 8938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.descendingKeySet(); 8948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object[] ar = s.toArray(); 8958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, ar.length); 8968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.containsAll(Arrays.asList(ar))); 8978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ar[0] = m10; 8988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(s.containsAll(Arrays.asList(ar))); 8998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * Values.toArray contains all values 9038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingValuesToArray() { 9058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 9068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Collection v = map.values(); 9078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object[] ar = v.toArray(); 9088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ArrayList s = new ArrayList(Arrays.asList(ar)); 9098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, ar.length); 9108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("A")); 9118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("B")); 9128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("C")); 9138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("D")); 9148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains("E")); 9158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * entrySet contains all pairs 9198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingEntrySet() { 9218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 9228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Set s = map.entrySet(); 9238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, s.size()); 9248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator it = s.iterator(); 9258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle while (it.hasNext()) { 9268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e = (Map.Entry) it.next(); 9278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue( 9288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(m1) && e.getValue().equals("A")) || 9298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(m2) && e.getValue().equals("B")) || 9308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(m3) && e.getValue().equals("C")) || 9318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(m4) && e.getValue().equals("D")) || 9328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle (e.getKey().equals(m5) && e.getValue().equals("E"))); 9338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * putAll adds all key-value pairs from the given map 9388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingPutAll() { 9408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap empty = dmap0(); 9418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 9428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle empty.putAll(map); 9438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, empty.size()); 9448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(m1)); 9458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(m2)); 9468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(m3)); 9478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(m4)); 9488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(empty.containsKey(m5)); 9498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * putIfAbsent works when the given key is not present 9538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingPutIfAbsent() { 9558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 9568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.putIfAbsent(six, "Z"); 9578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsKey(six)); 9588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * putIfAbsent does not add the pair if the key is already present 9628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingPutIfAbsent2() { 9648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 9658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", map.putIfAbsent(m1, "Z")); 9668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace fails when the given key is not present 9708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingReplace() { 9728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 9738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(map.replace(six, "Z")); 9748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(six)); 9758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace succeeds if the key is already present 9798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingReplace2() { 9818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 9828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNotNull(map.replace(m1, "Z")); 9838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("Z", map.get(m1)); 9848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace value fails when the given key not mapped to expected value 9888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingReplaceValue() { 9908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 9918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", map.get(m1)); 9928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.replace(m1, "Z", "Z")); 9938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", map.get(m1)); 9948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 9958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 9968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 9978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace value succeeds when the given key mapped to expected value 9988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 9998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingReplaceValue2() { 10008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 10018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", map.get(m1)); 10028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.replace(m1, "A", "Z")); 10038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("Z", map.get(m1)); 10048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 10058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 10078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove removes the correct key-value pair from the map 10088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 10098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingRemove() { 10108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 10118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(m5); 10128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 10138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(m5)); 10148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 10158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 10178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove(key,value) removes only if pair present 10188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 10198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingRemove2() { 10208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 10218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsKey(m5)); 10228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("E", map.get(m5)); 10238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(m5, "E"); 10248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 10258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(m5)); 10268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(m4, "A"); 10278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 10288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(map.containsKey(m4)); 10298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 10308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 10328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * lowerEntry returns preceding entry. 10338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 10348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingLowerEntry() { 10358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 10368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e1 = map.lowerEntry(m3); 10378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, e1.getKey()); 10388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e2 = map.lowerEntry(m6); 10408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, e2.getKey()); 10418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e3 = map.lowerEntry(m1); 10438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e3); 10448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e4 = map.lowerEntry(zero); 10468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e4); 10478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 10488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 10508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * higherEntry returns next entry. 10518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 10528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingHigherEntry() { 10538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 10548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e1 = map.higherEntry(m3); 10558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m4, e1.getKey()); 10568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e2 = map.higherEntry(zero); 10588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m1, e2.getKey()); 10598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e3 = map.higherEntry(m5); 10618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e3); 10628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e4 = map.higherEntry(m6); 10648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e4); 10658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 10668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 10688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * floorEntry returns preceding entry. 10698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 10708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingFloorEntry() { 10718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 10728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e1 = map.floorEntry(m3); 10738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, e1.getKey()); 10748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e2 = map.floorEntry(m6); 10768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, e2.getKey()); 10778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e3 = map.floorEntry(m1); 10798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m1, e3.getKey()); 10808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e4 = map.floorEntry(zero); 10828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e4); 10838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 10848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 10868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * ceilingEntry returns next entry. 10878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 10888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingCeilingEntry() { 10898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 10908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e1 = map.ceilingEntry(m3); 10918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, e1.getKey()); 10928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e2 = map.ceilingEntry(zero); 10948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m1, e2.getKey()); 10958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e3 = map.ceilingEntry(m5); 10978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, e3.getKey()); 10988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 10998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e4 = map.ceilingEntry(m6); 11008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e4); 11018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 11028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 11038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 11048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * pollFirstEntry returns entries in order 11058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 11068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingPollFirstEntry() { 11078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 11088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e = map.pollFirstEntry(); 11098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m1, e.getKey()); 11108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", e.getValue()); 11118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 11128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, e.getKey()); 11138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(m1, "A"); 11148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 11158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m1, e.getKey()); 11168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("A", e.getValue()); 11178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 11188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, e.getKey()); 11198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(m4); 11208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 11218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, e.getKey()); 11228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 11238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e.setValue("A"); 11248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 11258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (UnsupportedOperationException success) {} 11268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollFirstEntry(); 11278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e); 11288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 11298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 11308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 11318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * pollLastEntry returns entries in order 11328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 11338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingPollLastEntry() { 11348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 11358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e = map.pollLastEntry(); 11368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, e.getKey()); 11378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("E", e.getValue()); 11388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 11398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m4, e.getKey()); 11408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.put(m5, "E"); 11418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 11428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, e.getKey()); 11438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("E", e.getValue()); 11448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 11458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, e.getKey()); 11468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle map.remove(m2); 11478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 11488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m1, e.getKey()); 11498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 11508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e.setValue("E"); 11518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 11528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (UnsupportedOperationException success) {} 11538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = map.pollLastEntry(); 11548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNull(e); 11558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 11568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 11578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 11588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * size returns the correct values 11598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 11608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingSize() { 11618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 11628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap empty = dmap0(); 11638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, empty.size()); 11648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(5, map.size()); 11658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 11668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 11678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 11688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * toString contains toString of elements 11698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 11708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingToString() { 11718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 11728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle String s = map.toString(); 11738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle for (int i = 1; i <= 5; ++i) { 11748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(s.contains(String.valueOf(i))); 11758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 11768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 11778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 11788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle // Exception testDescendings 11798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 11808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 11818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * get(null) of empty map throws NPE 11828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 11838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingGet_NullPointerException() { 11848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 11858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap5(); 11868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.get(null); 11878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 11888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 11898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 11908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 11918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 11928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsKey(null) of empty map throws NPE 11938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 11948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingContainsKey_NullPointerException() { 11958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 11968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap5(); 11978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.containsKey(null); 11988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 11998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 12008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * containsValue(null) throws NPE 12048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingContainsValue_NullPointerException() { 12068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 12078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap0(); 12088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.containsValue(null); 12098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 12108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 12118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * put(null,x) throws NPE 12158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingPut1_NullPointerException() { 12178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 12188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap5(); 12198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.put(null, "whatever"); 12208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 12218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 12228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * putIfAbsent(null, x) throws NPE 12268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingPutIfAbsent1_NullPointerException() { 12288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 12298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap5(); 12308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.putIfAbsent(null, "whatever"); 12318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 12328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 12338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace(null, x) throws NPE 12378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingReplace_NullPointerException() { 12398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 12408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap5(); 12418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.replace(null, "whatever"); 12428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 12438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 12448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * replace(null, x, y) throws NPE 12488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingReplaceValue_NullPointerException() { 12508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 12518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap5(); 12528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.replace(null, m1, "whatever"); 12538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 12548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 12558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove(null) throws NPE 12598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingRemove1_NullPointerException() { 12618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 12628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap5(); 12638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.remove(null); 12648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 12658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 12668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * remove(null, x) throws NPE 12708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingRemove2_NullPointerException() { 12728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle try { 12738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap c = dmap5(); 12748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle c.remove(null, "whatever"); 12758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle shouldThrow(); 12768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } catch (NullPointerException success) {} 12778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * A deserialized map equals original 12818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingSerialization() throws Exception { 12838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle NavigableMap x = dmap5(); 12848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle NavigableMap y = serialClone(x); 12858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertNotSame(x, y); 12878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.size(), y.size()); 12888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x.toString(), y.toString()); 12898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(x, y); 12908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(y, x); 12918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 12928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 12938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 12948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * subMap returns map with keys in requested range 12958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 12968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingSubMapContents() { 12978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 12988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap sm = map.subMap(m2, m4); 12998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, sm.firstKey()); 13008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, sm.lastKey()); 13018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(2, sm.size()); 13028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m1)); 13038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m2)); 13048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m3)); 13058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m4)); 13068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m5)); 13078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = sm.keySet().iterator(); 13088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object k; 13098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, k); 13118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, k); 13138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 13148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator j = sm.keySet().iterator(); 13158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle j.next(); 13168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle j.remove(); 13178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(m2)); 13188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 13198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(1, sm.size()); 13208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, sm.firstKey()); 13218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, sm.lastKey()); 13228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("C", sm.remove(m3)); 13238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.isEmpty()); 13248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(3, map.size()); 13258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 13268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 13278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingSubMapContents2() { 13288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 13298f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap sm = map.subMap(m2, m3); 13308f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(1, sm.size()); 13318f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, sm.firstKey()); 13328f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, sm.lastKey()); 13338f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m1)); 13348f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m2)); 13358f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m3)); 13368f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m4)); 13378f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m5)); 13388f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = sm.keySet().iterator(); 13398f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object k; 13408f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13418f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, k); 13428f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 13438f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator j = sm.keySet().iterator(); 13448f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle j.next(); 13458f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle j.remove(); 13468f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(map.containsKey(m2)); 13478f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 13488f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(0, sm.size()); 13498f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.isEmpty()); 13508f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertSame(sm.remove(m3), null); 13518f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 13528f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 13538f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 13548f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 13558f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * headMap returns map with keys in requested range 13568f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 13578f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingHeadMapContents() { 13588f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 13598f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap sm = map.headMap(m4); 13608f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m1)); 13618f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m2)); 13628f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m3)); 13638f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m4)); 13648f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m5)); 13658f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = sm.keySet().iterator(); 13668f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object k; 13678f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13688f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m1, k); 13698f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13708f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, k); 13718f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13728f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, k); 13738f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 13748f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle sm.clear(); 13758f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.isEmpty()); 13768f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(2, map.size()); 13778f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m4, map.firstKey()); 13788f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 13798f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 13808f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle /** 13818f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle * headMap returns map with keys in requested range 13828f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle */ 13838f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle public void testDescendingTailMapContents() { 13848f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle ConcurrentNavigableMap map = dmap5(); 13858f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap sm = map.tailMap(m2); 13868f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(sm.containsKey(m1)); 13878f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m2)); 13888f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m3)); 13898f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m4)); 13908f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertTrue(sm.containsKey(m5)); 13918f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator i = sm.keySet().iterator(); 13928f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Object k; 13938f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13948f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, k); 13958f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13968f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, k); 13978f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 13988f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m4, k); 13998f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle k = (Integer)(i.next()); 14008f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, k); 14018f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 14028f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 14038f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Iterator ei = sm.entrySet().iterator(); 14048f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle Map.Entry e; 14058f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = (Map.Entry)(ei.next()); 14068f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m2, e.getKey()); 14078f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("B", e.getValue()); 14088f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = (Map.Entry)(ei.next()); 14098f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m3, e.getKey()); 14108f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("C", e.getValue()); 14118f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = (Map.Entry)(ei.next()); 14128f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m4, e.getKey()); 14138f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("D", e.getValue()); 14148f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle e = (Map.Entry)(ei.next()); 14158f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, e.getKey()); 14168f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("E", e.getValue()); 14178f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertFalse(i.hasNext()); 14188f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 14198f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle SortedMap ssm = sm.tailMap(m4); 14208f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m4, ssm.firstKey()); 14218f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(m5, ssm.lastKey()); 14228f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals("D", ssm.remove(m4)); 14238f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(1, ssm.size()); 14248f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(3, sm.size()); 14258f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle assertEquals(4, map.size()); 14268f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle } 14278f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle 14288f0d92bba199d906c70a5e40d7f3516c1a424117Calin Juravle} 1429