package org.apache.harmony.tests.java.util; /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import junit.framework.TestCase; import org.apache.harmony.tests.java.util.TreeMapTest.MockComparator; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.NavigableMap; import java.util.NavigableSet; import java.util.NoSuchElementException; import java.util.Set; import java.util.SortedMap; import java.util.SortedSet; import java.util.TreeMap; // public class TreeMapExtendTest extends TestCase { TreeMap tm; TreeMap tm_comparator; SortedMap subMap_default; SortedMap subMap_startExcluded_endExcluded; SortedMap subMap_startExcluded_endIncluded; SortedMap subMap_startIncluded_endExcluded; SortedMap subMap_startIncluded_endIncluded; SortedMap subMap_default_beforeStart_100; SortedMap subMap_default_afterEnd_109; NavigableMap navigableMap_startExcluded_endExcluded; NavigableMap navigableMap_startExcluded_endIncluded; NavigableMap navigableMap_startIncluded_endExcluded; NavigableMap navigableMap_startIncluded_endIncluded; SortedMap subMap_default_comparator; SortedMap subMap_startExcluded_endExcluded_comparator; SortedMap subMap_startExcluded_endIncluded_comparator; SortedMap subMap_startIncluded_endExcluded_comparator; SortedMap subMap_startIncluded_endIncluded_comparator; Object objArray[] = new Object[1000]; public void test_TreeMap_Constructor_Default() { TreeMap treeMap = new TreeMap(); assertTrue(treeMap.isEmpty()); assertNull(treeMap.comparator()); assertEquals(0, treeMap.size()); try { treeMap.firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } assertNull(treeMap.firstEntry()); try { treeMap.lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } assertNull(treeMap.lastEntry()); try { treeMap.ceilingKey(1); } catch (NoSuchElementException e) { // Expected } assertNull(treeMap.ceilingEntry(1)); try { treeMap.floorKey(1); } catch (NoSuchElementException e) { // Expected } assertNull(treeMap.floorEntry(1)); assertNull(treeMap.lowerKey(1)); assertNull(treeMap.lowerEntry(1)); assertNull(treeMap.higherKey(1)); assertNull(treeMap.higherEntry(1)); assertFalse(treeMap.containsKey(1)); assertFalse(treeMap.containsValue(1)); assertNull(treeMap.get(1)); assertNull(treeMap.pollFirstEntry()); assertNull(treeMap.pollLastEntry()); assertEquals(0, treeMap.values().size()); } public void test_TreeMap_Constructor_Comparator() { MockComparator mockComparator = new MockComparator(); TreeMap treeMap = new TreeMap(mockComparator); assertEquals(mockComparator, treeMap.comparator()); } public void test_TreeMap_Constructor_Map() { TreeMap treeMap = new TreeMap(tm); assertEquals(tm.size(), treeMap.size()); assertEquals(tm.firstKey(), treeMap.firstKey()); assertEquals(tm.firstEntry(), treeMap.firstEntry()); assertEquals(tm.lastKey(), treeMap.lastKey()); assertEquals(tm.lastEntry(), treeMap.lastEntry()); assertEquals(tm.keySet(), treeMap.keySet()); String key = new Integer(100).toString(); assertEquals(tm.ceilingKey(key), treeMap.ceilingKey(key)); assertEquals(tm.ceilingEntry(key), treeMap.ceilingEntry(key)); assertEquals(tm.floorKey(key), treeMap.floorKey(key)); assertEquals(tm.floorEntry(key), treeMap.floorEntry(key)); assertEquals(tm.lowerKey(key), treeMap.lowerKey(key)); assertEquals(tm.lowerEntry(key), treeMap.lowerEntry(key)); assertEquals(tm.higherKey(key), treeMap.higherKey(key)); assertEquals(tm.higherEntry(key), treeMap.higherEntry(key)); assertEquals(tm.entrySet(), treeMap.entrySet()); } public void test_TreeMap_Constructor_SortedMap() { TreeMap treeMap = new TreeMap(subMap_default); assertEquals(subMap_default.size(), treeMap.size()); assertEquals(subMap_default.firstKey(), treeMap.firstKey()); assertEquals(subMap_default.lastKey(), treeMap.lastKey()); assertEquals(subMap_default.keySet(), treeMap.keySet()); assertEquals(subMap_default.entrySet(), treeMap.entrySet()); } public void test_TreeMap_clear() { tm.clear(); assertEquals(0, tm.size()); } public void test_TreeMap_clone() { TreeMap cloneTreeMap = (TreeMap) tm.clone(); assertEquals(tm, cloneTreeMap); } public void test_SubMap_Constructor() { } public void test_SubMap_clear() { subMap_default.clear(); assertEquals(0, subMap_default.size()); } public void test_SubMap_comparator() { assertEquals(tm.comparator(), subMap_default.comparator()); } public void test_SubMap_containsKey() { String key = null; for (int counter = 101; counter < 109; counter++) { key = objArray[counter].toString(); assertTrue("SubMap contains incorrect elements", subMap_default .containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endExcluded.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endIncluded.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endExcluded.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded.containsKey(key)); } // Check boundary key = objArray[100].toString(); assertTrue("SubMap contains incorrect elements", subMap_default .containsKey(key)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endExcluded.containsKey(key)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endIncluded.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endExcluded.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded.containsKey(key)); key = objArray[109].toString(); assertFalse("SubMap contains incorrect elements", subMap_default .containsKey(key)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endExcluded.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endIncluded.containsKey(key)); assertFalse("SubMap contains incorrect elements", subMap_startIncluded_endExcluded.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded.containsKey(key)); // With Comparator for (int counter = 101; counter < 109; counter++) { key = objArray[counter].toString(); assertTrue("SubMap contains incorrect elements", subMap_default_comparator.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endExcluded_comparator .containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endIncluded_comparator .containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endExcluded_comparator .containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded_comparator .containsKey(key)); } // Check boundary key = objArray[100].toString(); assertTrue("SubMap contains incorrect elements", subMap_default_comparator.containsKey(key)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endExcluded_comparator.containsKey(key)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endIncluded_comparator.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endExcluded_comparator.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded_comparator.containsKey(key)); key = objArray[109].toString(); assertFalse("SubMap contains incorrect elements", subMap_default_comparator.containsKey(key)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endExcluded_comparator.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endIncluded_comparator.containsKey(key)); assertFalse("SubMap contains incorrect elements", subMap_startIncluded_endExcluded_comparator.containsKey(key)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded_comparator.containsKey(key)); } public void test_SubMap_containsValue() { Object value = null; for (int counter = 101; counter < 109; counter++) { value = objArray[counter]; assertTrue("SubMap contains incorrect elements", subMap_default .containsValue(value)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endExcluded.containsValue(value)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endIncluded.containsValue(value)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endExcluded.containsValue(value)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded.containsValue(value)); } // Check boundary value = objArray[100]; assertTrue("SubMap contains incorrect elements", subMap_default .containsValue(value)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endExcluded.containsValue(value)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endIncluded.containsValue(value)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endExcluded.containsValue(value)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded.containsValue(value)); value = objArray[109]; assertFalse("SubMap contains incorrect elements", subMap_default .containsValue(value)); assertFalse("SubMap contains incorrect elements", subMap_startExcluded_endExcluded.containsValue(value)); assertTrue("SubMap contains incorrect elements", subMap_startExcluded_endIncluded.containsValue(value)); assertFalse("SubMap contains incorrect elements", subMap_startIncluded_endExcluded.containsValue(value)); assertTrue("SubMap contains incorrect elements", subMap_startIncluded_endIncluded.containsValue(value)); assertFalse(subMap_default.containsValue(null)); TreeMap tm_null = new TreeMap(); tm_null.put("0", 1); tm_null.put("1", null); tm_null.put("2", 2); SortedMap subMap = tm_null.subMap("0", "2"); assertTrue(subMap.containsValue(null)); subMap.remove("1"); assertFalse(subMap.containsValue(null)); } public void test_SubMap_entrySet() { Set entrySet = subMap_default.entrySet(); assertFalse(entrySet.isEmpty()); assertEquals(9, entrySet.size()); entrySet = subMap_startExcluded_endExcluded.entrySet(); assertFalse(entrySet.isEmpty()); assertEquals(8, entrySet.size()); entrySet = subMap_startExcluded_endIncluded.entrySet(); assertFalse(entrySet.isEmpty()); assertEquals(9, entrySet.size()); entrySet = subMap_startIncluded_endExcluded.entrySet(); assertFalse(entrySet.isEmpty()); assertEquals(9, entrySet.size()); entrySet = subMap_startIncluded_endIncluded.entrySet(); assertFalse(entrySet.isEmpty()); assertEquals(10, entrySet.size()); } public void test_SubMap_firstKey() { String firstKey1 = new Integer(100).toString(); String firstKey2 = new Integer(101).toString(); assertEquals(firstKey1, subMap_default.firstKey()); assertEquals(firstKey2, subMap_startExcluded_endExcluded.firstKey()); assertEquals(firstKey2, subMap_startExcluded_endIncluded.firstKey()); assertEquals(firstKey1, subMap_startIncluded_endExcluded.firstKey()); assertEquals(firstKey1, subMap_startIncluded_endIncluded.firstKey()); try { subMap_default.subMap(firstKey1, firstKey1).firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startExcluded_endExcluded.subMap(firstKey2, firstKey2) .firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startExcluded_endIncluded.subMap(firstKey2, firstKey2) .firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startIncluded_endExcluded.subMap(firstKey1, firstKey1) .firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startIncluded_endIncluded.subMap(firstKey1, firstKey1) .firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } // With Comparator assertEquals(firstKey1, subMap_default_comparator.firstKey()); assertEquals(firstKey2, subMap_startExcluded_endExcluded_comparator .firstKey()); assertEquals(firstKey2, subMap_startExcluded_endIncluded_comparator .firstKey()); assertEquals(firstKey1, subMap_startIncluded_endExcluded_comparator .firstKey()); assertEquals(firstKey1, subMap_startIncluded_endIncluded_comparator .firstKey()); try { subMap_default_comparator.subMap(firstKey1, firstKey1).firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startExcluded_endExcluded_comparator.subMap(firstKey2, firstKey2).firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startExcluded_endIncluded_comparator.subMap(firstKey2, firstKey2).firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startIncluded_endExcluded_comparator.subMap(firstKey1, firstKey1).firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startIncluded_endIncluded_comparator.subMap(firstKey1, firstKey1).firstKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } public void test_SubMap_lastKey() { String lastKey1 = new Integer(108).toString(); String lastKey2 = new Integer(109).toString(); assertEquals(lastKey1, subMap_default.lastKey()); assertEquals(lastKey1, subMap_startExcluded_endExcluded.lastKey()); assertEquals(lastKey2, subMap_startExcluded_endIncluded.lastKey()); assertEquals(lastKey1, subMap_startIncluded_endExcluded.lastKey()); assertEquals(lastKey2, subMap_startIncluded_endIncluded.lastKey()); try { subMap_default.subMap(lastKey1, lastKey1).lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startExcluded_endExcluded.subMap(lastKey1, lastKey1) .lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startExcluded_endIncluded.subMap(lastKey2, lastKey2) .lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startIncluded_endExcluded.subMap(lastKey1, lastKey1) .lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startIncluded_endIncluded.subMap(lastKey2, lastKey2) .lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } // With Comparator assertEquals(lastKey1, subMap_default_comparator.lastKey()); assertEquals(lastKey1, subMap_startExcluded_endExcluded_comparator .lastKey()); assertEquals(lastKey2, subMap_startExcluded_endIncluded_comparator .lastKey()); assertEquals(lastKey1, subMap_startIncluded_endExcluded_comparator .lastKey()); assertEquals(lastKey2, subMap_startIncluded_endIncluded_comparator .lastKey()); try { subMap_default_comparator.subMap(lastKey1, lastKey1).lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startExcluded_endExcluded_comparator.subMap(lastKey1, lastKey1).lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startExcluded_endIncluded_comparator.subMap(lastKey2, lastKey2).lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startIncluded_endExcluded_comparator.subMap(lastKey1, lastKey1).lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { subMap_startIncluded_endIncluded_comparator.subMap(lastKey2, lastKey2).lastKey(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } public void test_SubMap_get() { // left boundary Integer value = new Integer(100); assertEquals(value, subMap_default.get(value.toString())); assertEquals(null, subMap_startExcluded_endExcluded.get(value .toString())); assertEquals(null, subMap_startExcluded_endIncluded.get(value .toString())); assertEquals(value, subMap_startIncluded_endExcluded.get(value .toString())); assertEquals(value, subMap_startIncluded_endIncluded.get(value .toString())); // normal value value = new Integer(105); assertEquals(value, subMap_default.get(value.toString())); assertEquals(value, subMap_startExcluded_endExcluded.get(value .toString())); assertEquals(value, subMap_startExcluded_endIncluded.get(value .toString())); assertEquals(value, subMap_startIncluded_endExcluded.get(value .toString())); assertEquals(value, subMap_startIncluded_endIncluded.get(value .toString())); // right boundary value = new Integer(109); assertEquals(null, subMap_default.get(value.toString())); assertEquals(null, subMap_startExcluded_endExcluded.get(value .toString())); assertEquals(value, subMap_startExcluded_endIncluded.get(value .toString())); assertEquals(null, subMap_startIncluded_endExcluded.get(value .toString())); assertEquals(value, subMap_startIncluded_endIncluded.get(value .toString())); // With Comparator to test inInRange // left boundary value = new Integer(100); assertEquals(value, subMap_default_comparator.get(value.toString())); // normal value value = new Integer(105); assertEquals(value, subMap_default_comparator.get(value.toString())); // right boundary value = new Integer(109); assertEquals(null, subMap_default_comparator.get(value.toString())); } public void test_SubMap_headMap() { String endKey = new Integer(99).toString(); try { subMap_default.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endExcluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endIncluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } SortedMap headMap = null; endKey = new Integer(100).toString(); headMap = subMap_default.headMap(endKey); assertEquals(0, headMap.size()); try { headMap = subMap_startExcluded_endExcluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { headMap = subMap_startExcluded_endIncluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } headMap = subMap_startIncluded_endExcluded.headMap(endKey); assertEquals(0, headMap.size()); headMap = subMap_startIncluded_endIncluded.headMap(endKey); assertEquals(0, headMap.size()); for (int i = 0, j = 101; i < 8; i++) { endKey = new Integer(i + j).toString(); headMap = subMap_default.headMap(endKey); assertEquals(i + 1, headMap.size()); headMap = subMap_startExcluded_endExcluded.headMap(endKey); assertEquals(i, headMap.size()); headMap = subMap_startExcluded_endIncluded.headMap(endKey); assertEquals(i, headMap.size()); headMap = subMap_startIncluded_endExcluded.headMap(endKey); assertEquals(i + 1, headMap.size()); headMap = subMap_startIncluded_endIncluded.headMap(endKey); assertEquals(i + 1, headMap.size()); } endKey = new Integer(109).toString(); headMap = subMap_default.headMap(endKey); assertEquals(9, headMap.size()); headMap = subMap_startExcluded_endExcluded.headMap(endKey); assertEquals(8, headMap.size()); headMap = subMap_startExcluded_endIncluded.headMap(endKey); assertEquals(8, headMap.size()); headMap = subMap_startIncluded_endExcluded.headMap(endKey); assertEquals(9, headMap.size()); headMap = subMap_startIncluded_endIncluded.headMap(endKey); assertEquals(9, headMap.size()); endKey = new Integer(110).toString(); try { subMap_default.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endExcluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endIncluded.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } // With Comparator endKey = new Integer(99).toString(); try { subMap_default_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endExcluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endIncluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } headMap = null; endKey = new Integer(100).toString(); headMap = subMap_default_comparator.headMap(endKey); assertEquals(0, headMap.size()); try { headMap = subMap_startExcluded_endExcluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { headMap = subMap_startExcluded_endIncluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } headMap = subMap_startIncluded_endExcluded_comparator.headMap(endKey); assertEquals(0, headMap.size()); headMap = subMap_startIncluded_endIncluded_comparator.headMap(endKey); assertEquals(0, headMap.size()); for (int i = 0, j = 101; i < 8; i++) { endKey = new Integer(i + j).toString(); headMap = subMap_default_comparator.headMap(endKey); assertEquals(i + 1, headMap.size()); headMap = subMap_startExcluded_endExcluded_comparator .headMap(endKey); assertEquals(i, headMap.size()); headMap = subMap_startExcluded_endIncluded_comparator .headMap(endKey); assertEquals(i, headMap.size()); headMap = subMap_startIncluded_endExcluded_comparator .headMap(endKey); assertEquals(i + 1, headMap.size()); headMap = subMap_startIncluded_endIncluded_comparator .headMap(endKey); assertEquals(i + 1, headMap.size()); } endKey = new Integer(108).toString(); headMap = subMap_default_comparator.headMap(endKey); assertEquals(8, headMap.size()); headMap = subMap_startExcluded_endExcluded_comparator.headMap(endKey); assertEquals(7, headMap.size()); headMap = subMap_startExcluded_endIncluded_comparator.headMap(endKey); assertEquals(7, headMap.size()); headMap = subMap_startIncluded_endExcluded_comparator.headMap(endKey); assertEquals(8, headMap.size()); headMap = subMap_startIncluded_endIncluded_comparator.headMap(endKey); assertEquals(8, headMap.size()); endKey = new Integer(110).toString(); try { subMap_default_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endExcluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endIncluded_comparator.headMap(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } public void test_SubMap_isEmpty() { assertFalse(subMap_default.isEmpty()); assertFalse(subMap_startExcluded_endExcluded.isEmpty()); assertFalse(subMap_startExcluded_endIncluded.isEmpty()); assertFalse(subMap_startIncluded_endExcluded.isEmpty()); assertFalse(subMap_startIncluded_endIncluded.isEmpty()); Object startKey = new Integer(100); Object endKey = startKey; SortedMap subMap = tm.subMap(startKey.toString(), endKey.toString()); assertTrue(subMap.isEmpty()); subMap = subMap_default.subMap(startKey.toString(), endKey.toString()); assertTrue(subMap.isEmpty()); subMap = subMap_startIncluded_endExcluded.subMap(startKey.toString(), endKey.toString()); assertTrue(subMap.isEmpty()); subMap = subMap_startIncluded_endIncluded.subMap(startKey.toString(), endKey.toString()); assertTrue(subMap.isEmpty()); for (int i = 0, j = 101; i < 8; i++) { startKey = i + j; endKey = startKey; subMap = subMap_default.subMap(startKey.toString(), endKey .toString()); assertTrue(subMap.isEmpty()); subMap = subMap_startExcluded_endExcluded.subMap(startKey .toString(), endKey.toString()); assertTrue(subMap.isEmpty()); subMap = subMap_startExcluded_endIncluded.subMap(startKey .toString(), endKey.toString()); assertTrue(subMap.isEmpty()); subMap = subMap_startIncluded_endExcluded.subMap(startKey .toString(), endKey.toString()); assertTrue(subMap.isEmpty()); subMap = subMap_startIncluded_endIncluded.subMap(startKey .toString(), endKey.toString()); assertTrue(subMap.isEmpty()); } for (int i = 0, j = 101; i < 5; i++) { startKey = i + j; endKey = i + j + 4; subMap = subMap_default.subMap(startKey.toString(), endKey .toString()); assertFalse(subMap.isEmpty()); subMap = subMap_startExcluded_endExcluded.subMap(startKey .toString(), endKey.toString()); assertFalse(subMap.isEmpty()); subMap = subMap_startExcluded_endIncluded.subMap(startKey .toString(), endKey.toString()); assertFalse(subMap.isEmpty()); subMap = subMap_startIncluded_endExcluded.subMap(startKey .toString(), endKey.toString()); assertFalse(subMap.isEmpty()); subMap = subMap_startIncluded_endIncluded.subMap(startKey .toString(), endKey.toString()); assertFalse(subMap.isEmpty()); } startKey = new Integer(109).toString(); endKey = startKey; subMap = tm.subMap(startKey.toString(), endKey.toString()); assertTrue(subMap.isEmpty()); subMap = subMap_startExcluded_endIncluded.subMap(startKey, endKey); assertTrue(subMap.isEmpty()); subMap = subMap_startIncluded_endIncluded.subMap(startKey, endKey); assertTrue(subMap.isEmpty()); } public void test_SubMap_keySet() { Set keySet = subMap_default.keySet(); assertFalse(keySet.isEmpty()); assertEquals(9, keySet.size()); keySet = subMap_startExcluded_endExcluded.entrySet(); assertFalse(keySet.isEmpty()); assertEquals(8, keySet.size()); keySet = subMap_startExcluded_endIncluded.entrySet(); assertFalse(keySet.isEmpty()); assertEquals(9, keySet.size()); keySet = subMap_startIncluded_endExcluded.entrySet(); assertFalse(keySet.isEmpty()); assertEquals(9, keySet.size()); keySet = subMap_startIncluded_endIncluded.entrySet(); assertFalse(keySet.isEmpty()); assertEquals(10, keySet.size()); } public void test_SubMap_put() { Integer value = new Integer(100); int addValue = 5; subMap_default.put(value.toString(), value + addValue); assertEquals(value + addValue, subMap_default.get(value.toString())); try { subMap_startExcluded_endExcluded.put(value.toString(), value + addValue); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded.put(value.toString(), value + addValue); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subMap_startIncluded_endExcluded .put(value.toString(), value + addValue); assertEquals(value + addValue, subMap_startIncluded_endExcluded .get(value.toString())); subMap_startIncluded_endIncluded .put(value.toString(), value + addValue); assertEquals(value + addValue, subMap_startIncluded_endIncluded .get(value.toString())); value = new Integer(109); try { subMap_default.put(value.toString(), value + addValue); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded.put(value.toString(), value + addValue); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subMap_startExcluded_endIncluded .put(value.toString(), value + addValue); assertEquals(value + addValue, subMap_startExcluded_endIncluded .get(value.toString())); try { subMap_startIncluded_endExcluded.put(value.toString(), value + addValue); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subMap_startIncluded_endIncluded .put(value.toString(), value + addValue); assertEquals(value + addValue, subMap_startIncluded_endIncluded .get(value.toString())); } public void test_SubMap_remove() { Integer value = new Integer(100); subMap_default.remove(value.toString()); assertNull(subMap_default.get(value.toString())); subMap_startExcluded_endExcluded.remove(value.toString()); assertNull(subMap_startExcluded_endExcluded.get(value.toString())); subMap_startExcluded_endIncluded.remove(value.toString()); assertNull(subMap_startExcluded_endIncluded.get(value.toString())); subMap_startIncluded_endExcluded.remove(value.toString()); assertNull(subMap_startIncluded_endExcluded.get(value.toString())); subMap_startIncluded_endIncluded.remove(value.toString()); assertNull(subMap_startIncluded_endIncluded.get(value.toString())); value = new Integer(109); subMap_default.remove(value.toString()); assertNull(subMap_default.get(value.toString())); subMap_startExcluded_endExcluded.remove(value.toString()); assertNull(subMap_startExcluded_endExcluded.get(value.toString())); subMap_startExcluded_endIncluded.remove(value.toString()); assertNull(subMap_startExcluded_endIncluded.get(value.toString())); subMap_startIncluded_endExcluded.remove(value.toString()); assertNull(subMap_startIncluded_endExcluded.get(value.toString())); subMap_startIncluded_endIncluded.remove(value.toString()); assertNull(subMap_startIncluded_endIncluded.get(value.toString())); } public void test_SubMap_subMap_NoComparator() { String startKey = new Integer[100].toString(); String endKey = new Integer[100].toString(); try { subMap_default.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endExcluded.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endIncluded.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } SortedMap subSubMap = null; for (int i = 101; i < 109; i++) { startKey = new Integer(i).toString(); endKey = startKey; subSubMap = subMap_default.subMap(startKey, endKey); assertEquals(0, subSubMap.size()); subSubMap = subMap_startExcluded_endExcluded.subMap(startKey, endKey); assertEquals(0, subSubMap.size()); subSubMap = subMap_startExcluded_endIncluded.subMap(startKey, endKey); assertEquals(0, subSubMap.size()); subSubMap = subMap_startIncluded_endExcluded.subMap(startKey, endKey); assertEquals(0, subSubMap.size()); subSubMap = subMap_startIncluded_endIncluded.subMap(startKey, endKey); assertEquals(0, subSubMap.size()); } for (int i = 101, j = 5; i < 105; i++) { startKey = new Integer(i).toString(); endKey = new Integer(i + j).toString(); subSubMap = subMap_default.subMap(startKey, endKey); assertEquals(j, subSubMap.size()); subSubMap = subMap_startExcluded_endExcluded.subMap(startKey, endKey); assertEquals(j, subSubMap.size()); subSubMap = subMap_startExcluded_endIncluded.subMap(startKey, endKey); assertEquals(j, subSubMap.size()); subSubMap = subMap_startIncluded_endExcluded.subMap(startKey, endKey); assertEquals(j, subSubMap.size()); subSubMap = subMap_startIncluded_endIncluded.subMap(startKey, endKey); assertEquals(j, subSubMap.size()); } startKey = new Integer(108).toString(); endKey = new Integer(109).toString(); subSubMap = subMap_default.subMap(startKey, endKey); assertEquals(1, subSubMap.size()); subSubMap = subMap_startExcluded_endExcluded.subMap(startKey, endKey); assertEquals(1, subSubMap.size()); subSubMap = subMap_startExcluded_endIncluded.subMap(startKey, endKey); assertEquals(1, subSubMap.size()); subSubMap = subMap_startIncluded_endExcluded.subMap(startKey, endKey); assertEquals(1, subSubMap.size()); subSubMap = subMap_startIncluded_endIncluded.subMap(startKey, endKey); assertEquals(1, subSubMap.size()); startKey = new Integer(109).toString(); endKey = new Integer(109).toString(); try { subMap_default.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subSubMap = subMap_startExcluded_endIncluded.subMap(startKey, endKey); assertEquals(0, subSubMap.size()); try { subMap_startIncluded_endExcluded.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subSubMap = subMap_startIncluded_endIncluded.subMap(startKey, endKey); assertEquals(0, subSubMap.size()); } public void test_SubMap_subMap_Comparator() { String startKey = new Integer[100].toString(); String endKey = new Integer[100].toString(); try { subMap_default_comparator.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded_comparator .subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded_comparator .subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endExcluded_comparator .subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endIncluded_comparator .subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } SortedMap subSubMap = null; for (int i = 101; i < 109; i++) { startKey = new Integer(i).toString(); endKey = startKey; subSubMap = subMap_default_comparator.subMap(startKey, endKey); assertEquals(0, subSubMap.size()); subSubMap = subMap_startExcluded_endExcluded_comparator.subMap( startKey, endKey); assertEquals(0, subSubMap.size()); subSubMap = subMap_startExcluded_endIncluded_comparator.subMap( startKey, endKey); assertEquals(0, subSubMap.size()); subSubMap = subMap_startIncluded_endExcluded_comparator.subMap( startKey, endKey); assertEquals(0, subSubMap.size()); subSubMap = subMap_startIncluded_endIncluded_comparator.subMap( startKey, endKey); assertEquals(0, subSubMap.size()); } for (int i = 101, j = 5; i < 105; i++) { startKey = new Integer(i).toString(); endKey = new Integer(i + j).toString(); subSubMap = subMap_default_comparator.subMap(startKey, endKey); assertEquals(j, subSubMap.size()); subSubMap = subMap_startExcluded_endExcluded_comparator.subMap( startKey, endKey); assertEquals(j, subSubMap.size()); subSubMap = subMap_startExcluded_endIncluded_comparator.subMap( startKey, endKey); assertEquals(j, subSubMap.size()); subSubMap = subMap_startIncluded_endExcluded_comparator.subMap( startKey, endKey); assertEquals(j, subSubMap.size()); subSubMap = subMap_startIncluded_endIncluded_comparator.subMap( startKey, endKey); assertEquals(j, subSubMap.size()); } startKey = new Integer(108).toString(); endKey = new Integer(109).toString(); subSubMap = subMap_default_comparator.subMap(startKey, endKey); assertEquals(1, subSubMap.size()); subSubMap = subMap_startExcluded_endExcluded_comparator.subMap( startKey, endKey); assertEquals(1, subSubMap.size()); subSubMap = subMap_startExcluded_endIncluded_comparator.subMap( startKey, endKey); assertEquals(1, subSubMap.size()); subSubMap = subMap_startIncluded_endExcluded_comparator.subMap( startKey, endKey); assertEquals(1, subSubMap.size()); subSubMap = subMap_startIncluded_endIncluded_comparator.subMap( startKey, endKey); assertEquals(1, subSubMap.size()); startKey = new Integer(109).toString(); endKey = new Integer(109).toString(); try { subMap_default_comparator.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded_comparator .subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subSubMap = subMap_startExcluded_endIncluded_comparator.subMap( startKey, endKey); assertEquals(0, subSubMap.size()); try { subMap_startIncluded_endExcluded_comparator .subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subSubMap = subMap_startIncluded_endIncluded_comparator.subMap( startKey, endKey); assertEquals(0, subSubMap.size()); } public void test_SubMap_tailMap() { String startKey = new Integer(99).toString(); try { subMap_default.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endExcluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endIncluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } SortedMap tailMap = null; startKey = new Integer(100).toString(); tailMap = subMap_default.tailMap(startKey); assertEquals(9, tailMap.size()); try { subMap_startExcluded_endExcluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } tailMap = subMap_startIncluded_endExcluded.tailMap(startKey); assertEquals(9, tailMap.size()); tailMap = subMap_startIncluded_endIncluded.tailMap(startKey); assertEquals(10, tailMap.size()); for (int i = 0, j = 101, end = 8; i < end; i++) { startKey = new Integer(i + j).toString(); tailMap = subMap_default.tailMap(startKey); assertEquals(end - i, tailMap.size()); tailMap = subMap_startExcluded_endExcluded.tailMap(startKey); assertEquals(end - i, tailMap.size()); tailMap = subMap_startExcluded_endIncluded.tailMap(startKey); assertEquals(end - i + 1, tailMap.size()); tailMap = subMap_startIncluded_endExcluded.tailMap(startKey); assertEquals(end - i, tailMap.size()); tailMap = subMap_startIncluded_endIncluded.tailMap(startKey); assertEquals(end - i + 1, tailMap.size()); } startKey = new Integer(109).toString(); try { subMap_default.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } tailMap = subMap_startExcluded_endIncluded.tailMap(startKey); assertEquals(1, tailMap.size()); try { subMap_startIncluded_endExcluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } tailMap = subMap_startIncluded_endIncluded.tailMap(startKey); assertEquals(1, tailMap.size()); startKey = new Integer(110).toString(); try { subMap_default.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endExcluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startExcluded_endIncluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endExcluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { subMap_startIncluded_endIncluded.tailMap(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } public void test_SubMap_values() { Collection values = subMap_default.values(); assertFalse(values.isEmpty()); assertTrue(values.contains(100)); for (int i = 101; i < 109; i++) { assertTrue(values.contains(i)); } assertFalse(values.contains(109)); values = subMap_startExcluded_endExcluded.values(); assertFalse(values.isEmpty()); assertFalse(values.contains(100)); for (int i = 101; i < 109; i++) { assertTrue(values.contains(i)); } assertFalse(values.contains(109)); values = subMap_startExcluded_endIncluded.values(); assertFalse(values.isEmpty()); assertFalse(values.contains(100)); for (int i = 101; i < 109; i++) { assertTrue(values.contains(i)); } assertTrue(values.contains(109)); values = subMap_startIncluded_endExcluded.values(); assertFalse(values.isEmpty()); assertTrue(values.contains(100)); for (int i = 101; i < 109; i++) { assertTrue(values.contains(i)); } assertFalse(values.contains(109)); values = subMap_startIncluded_endIncluded.values(); assertFalse(values.isEmpty()); assertTrue(values.contains(100)); for (int i = 100; i < 109; i++) { assertTrue(values.contains(i)); } assertTrue(values.contains(109)); } public void test_SubMap_size() { assertEquals(9, subMap_default.size()); assertEquals(8, subMap_startExcluded_endExcluded.size()); assertEquals(9, subMap_startExcluded_endIncluded.size()); assertEquals(9, subMap_startIncluded_endExcluded.size()); assertEquals(10, subMap_startIncluded_endIncluded.size()); assertEquals(9, subMap_default_comparator.size()); assertEquals(8, subMap_startExcluded_endExcluded_comparator.size()); assertEquals(9, subMap_startExcluded_endIncluded_comparator.size()); assertEquals(9, subMap_startIncluded_endExcluded_comparator.size()); assertEquals(10, subMap_startIncluded_endIncluded_comparator.size()); } public void test_SubMap_readObject() throws Exception { // SerializationTest.verifySelf(subMap_default); // SerializationTest.verifySelf(subMap_startExcluded_endExcluded); // SerializationTest.verifySelf(subMap_startExcluded_endIncluded); // SerializationTest.verifySelf(subMap_startIncluded_endExcluded); // SerializationTest.verifySelf(subMap_startIncluded_endIncluded); } public void test_AscendingSubMap_ceilingEntry() { String key = new Integer(99).toString(); assertNull(navigableMap_startExcluded_endExcluded.ceilingEntry(key)); assertNull(navigableMap_startExcluded_endIncluded.ceilingEntry(key)); assertNull(navigableMap_startIncluded_endExcluded.ceilingEntry(key)); assertNull(navigableMap_startIncluded_endIncluded.ceilingEntry(key)); key = new Integer(100).toString(); assertEquals(101, navigableMap_startExcluded_endExcluded.ceilingEntry( key).getValue()); assertEquals(101, navigableMap_startExcluded_endIncluded.ceilingEntry( key).getValue()); assertEquals(100, navigableMap_startIncluded_endExcluded.ceilingEntry( key).getValue()); assertEquals(100, navigableMap_startIncluded_endIncluded.ceilingEntry( key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, navigableMap_startExcluded_endExcluded .ceilingEntry(key).getValue()); assertEquals(i, navigableMap_startExcluded_endIncluded .ceilingEntry(key).getValue()); assertEquals(i, navigableMap_startIncluded_endExcluded .ceilingEntry(key).getValue()); assertEquals(i, navigableMap_startIncluded_endIncluded .ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertNull(navigableMap_startExcluded_endExcluded.ceilingEntry(key)); assertEquals(109, navigableMap_startExcluded_endIncluded.ceilingEntry( key).getValue()); assertNull(navigableMap_startIncluded_endExcluded.ceilingEntry(key)); assertEquals(109, navigableMap_startIncluded_endIncluded.ceilingEntry( key).getValue()); key = new Integer(110).toString(); assertNull(navigableMap_startExcluded_endExcluded.ceilingEntry(key)); assertNull(navigableMap_startExcluded_endIncluded.ceilingEntry(key)); assertNull(navigableMap_startIncluded_endExcluded.ceilingEntry(key)); assertNull(navigableMap_startIncluded_endIncluded.ceilingEntry(key)); } public void test_AscendingSubMap_descendingMap() { NavigableMap descendingMap = navigableMap_startExcluded_endExcluded .descendingMap(); assertEquals(navigableMap_startExcluded_endExcluded.size(), descendingMap.size()); assertNotNull(descendingMap.comparator()); assertEquals(navigableMap_startExcluded_endExcluded.firstKey(), descendingMap.lastKey()); assertEquals(navigableMap_startExcluded_endExcluded.firstEntry(), descendingMap.lastEntry()); assertEquals(navigableMap_startExcluded_endExcluded.lastKey(), descendingMap.firstKey()); assertEquals(navigableMap_startExcluded_endExcluded.lastEntry(), descendingMap.firstEntry()); descendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); assertEquals(navigableMap_startExcluded_endIncluded.size(), descendingMap.size()); assertNotNull(descendingMap.comparator()); assertEquals(navigableMap_startExcluded_endIncluded.firstKey(), descendingMap.lastKey()); assertEquals(navigableMap_startExcluded_endIncluded.firstEntry(), descendingMap.lastEntry()); assertEquals(navigableMap_startExcluded_endIncluded.lastKey(), descendingMap.firstKey()); assertEquals(navigableMap_startExcluded_endIncluded.lastEntry(), descendingMap.firstEntry()); descendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); assertEquals(navigableMap_startIncluded_endExcluded.size(), descendingMap.size()); assertNotNull(descendingMap.comparator()); assertEquals(navigableMap_startIncluded_endExcluded.firstKey(), descendingMap.lastKey()); assertEquals(navigableMap_startIncluded_endExcluded.firstEntry(), descendingMap.lastEntry()); assertEquals(navigableMap_startIncluded_endExcluded.lastKey(), descendingMap.firstKey()); assertEquals(navigableMap_startIncluded_endExcluded.lastEntry(), descendingMap.firstEntry()); descendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); assertEquals(navigableMap_startIncluded_endIncluded.size(), descendingMap.size()); assertNotNull(descendingMap.comparator()); assertEquals(navigableMap_startIncluded_endIncluded.firstKey(), descendingMap.lastKey()); assertEquals(navigableMap_startIncluded_endIncluded.firstEntry(), descendingMap.lastEntry()); assertEquals(navigableMap_startIncluded_endIncluded.lastKey(), descendingMap.firstKey()); assertEquals(navigableMap_startIncluded_endIncluded.lastEntry(), descendingMap.firstEntry()); } public void test_AscendingSubMap_floorEntry() { String key = new Integer(99).toString(); assertEquals(108, navigableMap_startExcluded_endExcluded .floorEntry(key).getValue()); assertEquals(109, navigableMap_startExcluded_endIncluded .floorEntry(key).getValue()); assertEquals(108, navigableMap_startIncluded_endExcluded .floorEntry(key).getValue()); assertEquals(109, navigableMap_startIncluded_endIncluded .floorEntry(key).getValue()); key = new Integer(100).toString(); assertNull(navigableMap_startExcluded_endExcluded.floorEntry(key)); assertNull(navigableMap_startExcluded_endIncluded.floorEntry(key)); assertEquals(100, navigableMap_startIncluded_endExcluded .floorEntry(key).getValue()); assertEquals(100, navigableMap_startIncluded_endIncluded .floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, navigableMap_startExcluded_endExcluded.floorEntry( key).getValue()); assertEquals(i, navigableMap_startExcluded_endIncluded.floorEntry( key).getValue()); assertEquals(i, navigableMap_startIncluded_endExcluded.floorEntry( key).getValue()); assertEquals(i, navigableMap_startIncluded_endIncluded.floorEntry( key).getValue()); } key = new Integer(109).toString(); assertEquals(108, navigableMap_startExcluded_endExcluded .floorEntry(key).getValue()); assertEquals(109, navigableMap_startExcluded_endIncluded .floorEntry(key).getValue()); assertEquals(108, navigableMap_startIncluded_endExcluded .floorEntry(key).getValue()); assertEquals(109, navigableMap_startIncluded_endIncluded .floorEntry(key).getValue()); key = new Integer(110).toString(); assertEquals(108, navigableMap_startExcluded_endExcluded .floorEntry(key).getValue()); assertEquals(109, navigableMap_startExcluded_endIncluded .floorEntry(key).getValue()); assertEquals(108, navigableMap_startIncluded_endExcluded .floorEntry(key).getValue()); assertEquals(109, navigableMap_startIncluded_endIncluded .floorEntry(key).getValue()); } public void test_AscendingSubMap_pollFirstEntry() { assertEquals(101, navigableMap_startExcluded_endExcluded .pollFirstEntry().getValue()); assertEquals(102, navigableMap_startExcluded_endIncluded .pollFirstEntry().getValue()); assertEquals(100, navigableMap_startIncluded_endExcluded .pollFirstEntry().getValue()); assertEquals(103, navigableMap_startIncluded_endIncluded .pollFirstEntry().getValue()); } public void test_AscendingSubMap_pollLastEntry() { assertEquals(108, navigableMap_startExcluded_endExcluded .pollLastEntry().getValue()); assertEquals(109, navigableMap_startExcluded_endIncluded .pollLastEntry().getValue()); assertEquals(107, navigableMap_startIncluded_endExcluded .pollLastEntry().getValue()); assertEquals(106, navigableMap_startIncluded_endIncluded .pollLastEntry().getValue()); } public void test_AscendingSubMap_entrySet() { assertEquals(8, navigableMap_startExcluded_endExcluded.entrySet() .size()); assertEquals(9, navigableMap_startExcluded_endIncluded.entrySet() .size()); assertEquals(9, navigableMap_startIncluded_endExcluded.entrySet() .size()); assertEquals(10, navigableMap_startIncluded_endIncluded.entrySet() .size()); } public void test_AscendingSubMap_subMap() { Set entrySet; Entry startEntry, endEntry; int startIndex, endIndex; SortedMap subMap; Iterator subMapSetIterator; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); Iterator startIterator = entrySet.iterator(); while (startIterator.hasNext()) { startEntry = (Entry) startIterator.next(); startIndex = (Integer) startEntry.getValue(); Iterator endIterator = entrySet.iterator(); while (endIterator.hasNext()) { endEntry = (Entry) endIterator.next(); endIndex = (Integer) endEntry.getValue(); if (startIndex > endIndex) { try { navigableMap_startExcluded_endExcluded.subMap( startEntry.getKey(), endEntry.getKey()); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { navigableMap_startExcluded_endExcluded.subMap( startEntry.getKey(), false, endEntry.getKey(), false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { navigableMap_startExcluded_endExcluded.subMap( startEntry.getKey(), false, endEntry.getKey(), true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { navigableMap_startExcluded_endExcluded.subMap( startEntry.getKey(), true, endEntry.getKey(), false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { navigableMap_startExcluded_endExcluded.subMap( startEntry.getKey(), true, endEntry.getKey(), true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } else { subMap = navigableMap_startExcluded_endExcluded.subMap( startEntry.getKey(), endEntry.getKey()); subMapSetIterator = subMap.entrySet().iterator(); for (int index = startIndex; index < endIndex; index++) { assertEquals(index, ((Entry) subMapSetIterator.next()) .getValue()); } subMap = navigableMap_startExcluded_endExcluded.subMap( startEntry.getKey(), false, endEntry.getKey(), false); subMapSetIterator = subMap.entrySet().iterator(); for (int index = startIndex + 1; index < endIndex; index++) { assertEquals(index, ((Entry) subMapSetIterator.next()) .getValue()); } subMap = navigableMap_startExcluded_endExcluded .subMap(startEntry.getKey(), false, endEntry .getKey(), true); subMapSetIterator = subMap.entrySet().iterator(); for (int index = startIndex + 1; index < endIndex; index++) { assertEquals(index, ((Entry) subMapSetIterator.next()) .getValue()); } subMap = navigableMap_startExcluded_endExcluded .subMap(startEntry.getKey(), true, endEntry .getKey(), false); subMapSetIterator = subMap.entrySet().iterator(); for (int index = startIndex; index < endIndex; index++) { assertEquals(index, ((Entry) subMapSetIterator.next()) .getValue()); } subMap = navigableMap_startExcluded_endExcluded.subMap( startEntry.getKey(), true, endEntry.getKey(), true); subMapSetIterator = subMap.entrySet().iterator(); for (int index = startIndex; index <= endIndex; index++) { assertEquals(index, ((Entry) subMapSetIterator.next()) .getValue()); } } } } } public void test_DescendingSubMap_ceilingEntry() { NavigableMap decendingMap = tm.descendingMap(); String key = new Integer(-1).toString(); assertNull(decendingMap.ceilingEntry(key)); for (int i = 0; i < objArray.length; i++) { key = objArray[i].toString(); assertEquals(objArray[i], decendingMap.ceilingEntry(key).getValue()); } key = new Integer(1000).toString(); assertEquals(100, decendingMap.ceilingEntry(key).getValue()); key = new Integer(1001).toString(); assertEquals(100, decendingMap.ceilingEntry(key).getValue()); decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); key = new Integer(100).toString(); assertNull(decendingMap.ceilingEntry(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(108, decendingMap.ceilingEntry(key).getValue()); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); key = new Integer(100).toString(); assertNull(decendingMap.ceilingEntry(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(109, decendingMap.ceilingEntry(key).getValue()); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); key = new Integer(100).toString(); assertEquals(100, decendingMap.ceilingEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(108, decendingMap.ceilingEntry(key).getValue()); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); key = new Integer(100).toString(); assertEquals(100, decendingMap.ceilingEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(109, decendingMap.ceilingEntry(key).getValue()); // With Comparator decendingMap = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .descendingMap(); key = new Integer(100).toString(); assertNull(decendingMap.ceilingEntry(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(108, decendingMap.ceilingEntry(key).getValue()); decendingMap = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .descendingMap(); key = new Integer(100).toString(); assertNull(decendingMap.ceilingEntry(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(109, decendingMap.ceilingEntry(key).getValue()); decendingMap = ((NavigableMap) subMap_startIncluded_endExcluded_comparator) .descendingMap(); key = new Integer(100).toString(); assertEquals(100, decendingMap.ceilingEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(108, decendingMap.ceilingEntry(key).getValue()); decendingMap = ((NavigableMap) subMap_startIncluded_endIncluded_comparator) .descendingMap(); key = new Integer(100).toString(); assertEquals(100, decendingMap.ceilingEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.ceilingEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(109, decendingMap.ceilingEntry(key).getValue()); } public void test_DescendingSubMap_descendingMap() { NavigableMap decendingMap = tm.descendingMap(); NavigableMap decendingDecendingMap = decendingMap.descendingMap(); assertEquals(decendingMap, decendingDecendingMap); NavigableMap decendingMapHeadMap = decendingMap.headMap( new Integer(990).toString(), false); NavigableMap decendingDecendingHeadMap = decendingMapHeadMap .descendingMap(); assertNotNull(decendingMapHeadMap); assertNotNull(decendingDecendingHeadMap); assertEquals(decendingMapHeadMap, decendingDecendingHeadMap); NavigableMap decendingMapTailMap = decendingMap.tailMap( new Integer(990).toString(), false); NavigableMap decendingDecendingTailMap = decendingMapTailMap .descendingMap(); assertNotNull(decendingMapTailMap); assertNotNull(decendingDecendingTailMap); // assertEquals(decendingMapTailMap,decendingDecendingTailMap); decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); decendingDecendingMap = decendingMap.descendingMap(); assertEquals(decendingMap, decendingDecendingMap); decendingMapHeadMap = decendingMap.headMap(new Integer(104).toString(), false); decendingDecendingHeadMap = decendingMapHeadMap.descendingMap(); assertEquals(decendingMapHeadMap, decendingDecendingHeadMap); decendingMapTailMap = decendingMap.tailMap(new Integer(104).toString(), false); decendingDecendingTailMap = decendingMapTailMap.descendingMap(); assertEquals(decendingMapTailMap, decendingDecendingTailMap); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); decendingDecendingMap = decendingMap.descendingMap(); assertEquals(decendingMap, decendingDecendingMap); decendingMapHeadMap = decendingMap.headMap(new Integer(104).toString(), false); decendingDecendingHeadMap = decendingMapHeadMap.descendingMap(); assertEquals(decendingMapHeadMap, decendingDecendingHeadMap); decendingMapTailMap = decendingMap.tailMap(new Integer(104).toString(), false); decendingDecendingTailMap = decendingMapTailMap.descendingMap(); assertEquals(decendingMapTailMap, decendingDecendingTailMap); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); decendingDecendingMap = decendingMap.descendingMap(); assertEquals(decendingMap, decendingDecendingMap); decendingMapHeadMap = decendingMap.headMap(new Integer(104).toString(), false); decendingDecendingHeadMap = decendingMapHeadMap.descendingMap(); assertEquals(decendingMapHeadMap, decendingDecendingHeadMap); decendingMapTailMap = decendingMap.tailMap(new Integer(104).toString(), false); decendingDecendingTailMap = decendingMapTailMap.descendingMap(); assertEquals(decendingMapTailMap, decendingDecendingTailMap); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); decendingDecendingMap = decendingMap.descendingMap(); assertEquals(decendingMap, decendingDecendingMap); decendingMapHeadMap = decendingMap.headMap(new Integer(104).toString(), false); decendingDecendingHeadMap = decendingMapHeadMap.descendingMap(); assertEquals(decendingMapHeadMap, decendingDecendingHeadMap); decendingMapTailMap = decendingMap.tailMap(new Integer(104).toString(), false); decendingDecendingTailMap = decendingMapTailMap.descendingMap(); assertEquals(decendingMapTailMap, decendingDecendingTailMap); } public void test_DescendingSubMap_firstEntry() { NavigableMap decendingMap = tm.descendingMap(); assertEquals(999, decendingMap.firstEntry().getValue()); decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); assertEquals(108, decendingMap.firstEntry().getValue()); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); assertEquals(109, decendingMap.firstEntry().getValue()); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); assertEquals(108, decendingMap.firstEntry().getValue()); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); assertEquals(109, decendingMap.firstEntry().getValue()); } public void test_DescendingSubMap_floorEntry() { NavigableMap decendingMap = tm.descendingMap(); String key = new Integer(-1).toString(); assertEquals(0, decendingMap.floorEntry(key).getValue()); for (int i = 0; i < objArray.length; i++) { key = objArray[i].toString(); assertEquals(objArray[i], decendingMap.floorEntry(key).getValue()); } key = new Integer(1000).toString(); assertEquals(101, decendingMap.floorEntry(key).getValue()); key = new Integer(1001).toString(); assertEquals(101, decendingMap.floorEntry(key).getValue()); decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); key = new Integer(100).toString(); assertEquals(101, decendingMap.floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.floorEntry(key).getValue()); } key = new Integer(109).toString(); assertNull(decendingMap.floorEntry(key)); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); key = new Integer(100).toString(); assertEquals(101, decendingMap.floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.floorEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(109, decendingMap.floorEntry(key).getValue()); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); key = new Integer(100).toString(); assertEquals(100, decendingMap.floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.floorEntry(key).getValue()); } key = new Integer(109).toString(); assertNull(decendingMap.floorEntry(key)); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); key = new Integer(100).toString(); assertEquals(100, decendingMap.floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.floorEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(109, decendingMap.floorEntry(key).getValue()); // With Comparator decendingMap = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .descendingMap(); key = new Integer(100).toString(); assertEquals(101, decendingMap.floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.floorEntry(key).getValue()); } key = new Integer(109).toString(); assertNull(decendingMap.floorEntry(key)); decendingMap = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .descendingMap(); key = new Integer(100).toString(); assertEquals(101, decendingMap.floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.floorEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(109, decendingMap.floorEntry(key).getValue()); decendingMap = ((NavigableMap) subMap_startIncluded_endExcluded_comparator) .descendingMap(); key = new Integer(100).toString(); assertEquals(100, decendingMap.floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.floorEntry(key).getValue()); } key = new Integer(109).toString(); assertNull(decendingMap.floorEntry(key)); decendingMap = ((NavigableMap) subMap_startIncluded_endIncluded_comparator) .descendingMap(); key = new Integer(100).toString(); assertEquals(100, decendingMap.floorEntry(key).getValue()); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertEquals(i, decendingMap.floorEntry(key).getValue()); } key = new Integer(109).toString(); assertEquals(109, decendingMap.floorEntry(key).getValue()); } public void test_DescendingSubMap_lastEntry() { NavigableMap decendingMap = tm.descendingMap(); assertEquals(0, decendingMap.lastEntry().getValue()); decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); assertEquals(101, decendingMap.lastEntry().getValue()); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); assertEquals(101, decendingMap.lastEntry().getValue()); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); assertEquals(100, decendingMap.lastEntry().getValue()); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); assertEquals(100, decendingMap.lastEntry().getValue()); } public void test_DescendingSubMap_higherEntry() { NavigableMap decendingMap; NavigableMap decendingTailMap; Integer value; Entry entry; decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); value = new Integer(101); assertNull(decendingMap.higherEntry(value.toString())); for (int i = 108; i > 101; i--) { value = new Integer(i); entry = decendingMap.higherEntry(value.toString()); assertEquals(value - 1, entry.getValue()); } value = new Integer(109); entry = decendingMap.higherEntry(value.toString()); assertEquals(108, entry.getValue()); decendingTailMap = decendingMap.tailMap(new Integer(104).toString(), false); value = new Integer(109); entry = decendingTailMap.higherEntry(value.toString()); assertEquals(103, entry.getValue()); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); value = new Integer(100); assertNull(decendingMap.higherEntry(value.toString())); for (int i = 108; i > 100; i--) { value = new Integer(i); entry = decendingMap.higherEntry(value.toString()); assertEquals(value - 1, entry.getValue()); } value = new Integer(109); entry = decendingMap.higherEntry(value.toString()); assertEquals(108, entry.getValue()); decendingTailMap = decendingMap.tailMap(new Integer(104).toString(), false); value = new Integer(109); entry = decendingTailMap.higherEntry(value.toString()); assertEquals(103, entry.getValue()); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); value = new Integer(101); assertNull(decendingMap.higherEntry(value.toString())); for (int i = 109; i > 101; i--) { value = new Integer(i); entry = decendingMap.higherEntry(value.toString()); assertEquals(value - 1, entry.getValue()); } value = new Integer(2); entry = decendingMap.higherEntry(value.toString()); assertEquals(109, entry.getValue()); decendingTailMap = decendingMap.tailMap(new Integer(104).toString(), false); value = new Integer(109); entry = decendingTailMap.higherEntry(value.toString()); assertEquals(103, entry.getValue()); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); value = new Integer(100); assertNull(decendingMap.higherEntry(value.toString())); for (int i = 109; i > 100; i--) { value = new Integer(i); entry = decendingMap.higherEntry(value.toString()); assertEquals(value - 1, entry.getValue()); } value = new Integer(2); entry = decendingMap.higherEntry(value.toString()); assertEquals(109, entry.getValue()); decendingTailMap = decendingMap.tailMap(new Integer(104).toString(), false); value = new Integer(109); entry = decendingTailMap.higherEntry(value.toString()); assertEquals(103, entry.getValue()); } public void test_DescendingSubMap_lowerEntry() { NavigableMap decendingMap; NavigableMap decendingHeadMap; Integer value; Entry entry; decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); value = new Integer(99); assertNull(decendingMap.lowerEntry(value.toString())); for (int i = 100; i < 108; i++) { value = new Integer(i); entry = decendingMap.lowerEntry(value.toString()); assertEquals(value + 1, entry.getValue()); } value = new Integer(109); assertNull(decendingMap.lowerEntry(value.toString())); decendingHeadMap = decendingMap.headMap(new Integer(103).toString(), false); for (int i = 104; i < 106; i++) { value = new Integer(i); entry = decendingHeadMap.lowerEntry(value.toString()); assertEquals(value + 1, entry.getValue()); } value = new Integer(102); entry = decendingHeadMap.lowerEntry(value.toString()); assertEquals(104, entry.getValue()); value = new Integer(109); entry = decendingHeadMap.lowerEntry(value.toString()); assertNull(entry); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); value = new Integer(99); assertNull(decendingMap.lowerEntry(value.toString())); for (int i = 100; i < 109; i++) { value = new Integer(i); entry = decendingMap.lowerEntry(value.toString()); assertEquals(value + 1, entry.getValue()); } value = new Integer(110); assertNull(decendingMap.lowerEntry(value.toString())); decendingHeadMap = decendingMap.headMap(new Integer(103).toString(), false); for (int i = 104; i < 109; i++) { value = new Integer(i); entry = decendingHeadMap.lowerEntry(value.toString()); assertEquals(value + 1, entry.getValue()); } value = new Integer(102); entry = decendingHeadMap.lowerEntry(value.toString()); assertEquals(104, entry.getValue()); value = new Integer(2); entry = decendingHeadMap.lowerEntry(value.toString()); assertNull(entry); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); value = new Integer(99); assertNull(decendingMap.lowerEntry(value.toString())); for (int i = 100; i < 108; i++) { value = new Integer(i); entry = decendingMap.lowerEntry(value.toString()); assertEquals(value + 1, entry.getValue()); } value = new Integer(109); assertNull(decendingMap.lowerEntry(value.toString())); decendingHeadMap = decendingMap.headMap(new Integer(103).toString(), false); for (int i = 104; i < 107; i++) { value = new Integer(i); entry = decendingHeadMap.lowerEntry(value.toString()); assertEquals(value + 1, entry.getValue()); } value = new Integer(102); entry = decendingHeadMap.lowerEntry(value.toString()); assertEquals(104, entry.getValue()); value = new Integer(2); entry = decendingHeadMap.lowerEntry(value.toString()); assertNull(entry); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); value = new Integer(99); assertNull(decendingMap.lowerEntry(value.toString())); for (int i = 100; i < 109; i++) { value = new Integer(i); entry = decendingMap.lowerEntry(value.toString()); assertEquals(value + 1, entry.getValue()); } value = new Integer(110); assertNull(decendingMap.lowerEntry(value.toString())); decendingHeadMap = decendingMap.headMap(new Integer(103).toString(), false); for (int i = 104; i < 109; i++) { value = new Integer(i); entry = decendingHeadMap.lowerEntry(value.toString()); assertEquals(value + 1, entry.getValue()); } value = new Integer(102); entry = decendingHeadMap.lowerEntry(value.toString()); assertEquals(104, entry.getValue()); value = new Integer(2); entry = decendingHeadMap.lowerEntry(value.toString()); assertNull(entry); } public void test_DescendingSubMap_pollFirstEntry() { NavigableMap decendingMap = tm.descendingMap(); assertEquals(999, decendingMap.pollFirstEntry().getValue()); decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); assertEquals(108, decendingMap.pollFirstEntry().getValue()); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); assertEquals(109, decendingMap.pollFirstEntry().getValue()); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); assertEquals(107, decendingMap.pollFirstEntry().getValue()); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); assertEquals(106, decendingMap.pollFirstEntry().getValue()); } public void test_DescendingSubMap_pollLastEntry() { NavigableMap decendingMap = tm.descendingMap(); assertEquals(0, decendingMap.pollLastEntry().getValue()); decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); assertEquals(101, decendingMap.pollLastEntry().getValue()); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); assertEquals(102, decendingMap.pollLastEntry().getValue()); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); assertEquals(100, decendingMap.pollLastEntry().getValue()); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); assertEquals(103, decendingMap.pollLastEntry().getValue()); } public void test_DescendingSubMap_values() { NavigableMap decendingMap = tm.descendingMap(); Collection values = decendingMap.values(); assertFalse(values.isEmpty()); assertFalse(values.contains(1000)); for (int i = 999; i > 0; i--) { assertTrue(values.contains(i)); } assertTrue(values.contains(0)); String endKey = new Integer(99).toString(); NavigableMap headMap = decendingMap.headMap(endKey, false); values = headMap.values(); Iterator it = values.iterator(); for (int i = 999; i > 990; i--) { assertTrue(values.contains(i)); assertEquals(i, it.next()); } String startKey = new Integer(11).toString(); NavigableMap tailMap = decendingMap.tailMap(startKey, false); values = tailMap.values(); it = values.iterator(); for (int i = 109; i > 100; i--) { assertTrue(values.contains(i)); assertEquals(i, it.next()); } decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); values = decendingMap.values(); assertFalse(values.isEmpty()); assertFalse(values.contains(109)); for (int i = 108; i > 100; i--) { assertTrue(values.contains(i)); } assertFalse(values.contains(100)); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); values = decendingMap.values(); assertFalse(values.isEmpty()); assertFalse(values.contains(100)); for (int i = 108; i > 100; i--) { assertTrue(values.contains(i)); } assertTrue(values.contains(109)); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); values = decendingMap.values(); assertFalse(values.isEmpty()); assertTrue(values.contains(100)); for (int i = 108; i > 100; i--) { assertTrue(values.contains(i)); } assertFalse(values.contains(109)); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); values = decendingMap.values(); assertFalse(values.isEmpty()); assertTrue(values.contains(100)); for (int i = 108; i > 100; i--) { assertTrue(values.contains(i)); } assertTrue(values.contains(109)); } public void test_DescendingSubMap_headMap() { NavigableMap decendingMap = tm.descendingMap(); String endKey = new Integer(0).toString(), key; SortedMap subDecendingMap_Included = decendingMap.headMap(endKey, true); SortedMap subDecendingMap_Excluded = decendingMap .headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 1; i < 1000; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(1000).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); endKey = new Integer(100).toString(); try { decendingMap.headMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 102; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(109).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); endKey = new Integer(100).toString(); try { decendingMap.headMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 102; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(109).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); endKey = new Integer(100).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 102; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(109).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); endKey = new Integer(100).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 102; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(109).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); // With Comparator decendingMap = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .descendingMap(); endKey = new Integer(100).toString(); try { decendingMap.headMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 102; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(109).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); decendingMap = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .descendingMap(); endKey = new Integer(100).toString(); try { decendingMap.headMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 102; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(109).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); decendingMap = ((NavigableMap) subMap_startIncluded_endExcluded_comparator) .descendingMap(); endKey = new Integer(100).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 102; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(109).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); decendingMap = ((NavigableMap) subMap_startIncluded_endIncluded_comparator) .descendingMap(); endKey = new Integer(100).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.headMap(endKey, true); subDecendingMap_Excluded = decendingMap.headMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 102; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(109).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } public void test_DescendingSubMap_subMap() { NavigableMap descendingMap = tm.descendingMap(); String startKey = new Integer(109).toString(); String endKey = new Integer(100).toString(); try { descendingMap.subMap(endKey, false, startKey, false); } catch (IllegalArgumentException e) { // Expected } SortedMap subDescendingMap = descendingMap.subMap(startKey, false, endKey, false); String key = new Integer(100).toString(); assertFalse(subDescendingMap.containsKey(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDescendingMap.containsKey(key)); } key = new Integer(109).toString(); assertFalse(subDescendingMap.containsKey(key)); subDescendingMap = descendingMap.subMap(startKey, false, endKey, true); key = new Integer(100).toString(); assertTrue(subDescendingMap.containsKey(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDescendingMap.containsKey(key)); } key = new Integer(109).toString(); assertFalse(subDescendingMap.containsKey(key)); subDescendingMap = descendingMap.subMap(startKey, true, endKey, false); key = new Integer(100).toString(); assertFalse(subDescendingMap.containsKey(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDescendingMap.containsKey(key)); } key = new Integer(109).toString(); assertTrue(subDescendingMap.containsKey(key)); subDescendingMap = descendingMap.subMap(startKey, true, endKey, true); key = new Integer(100).toString(); assertTrue(subDescendingMap.containsKey(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(subDescendingMap.containsKey(key)); } key = new Integer(109).toString(); assertTrue(subDescendingMap.containsKey(key)); TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>(); for (int i = -10; i < 10; i++) { treeMap.put(i, String.valueOf(i)); } descendingMap = treeMap.descendingMap(); subDescendingMap = descendingMap.subMap(5, 0); assertEquals(5, subDescendingMap.size()); } public void test_DescendingSubMap_tailMap() { // tm NavigableMap decendingMap = tm.descendingMap(); String endKey = new Integer(1000).toString(), key; SortedMap subDecendingMap_Included = decendingMap.tailMap(endKey, true); SortedMap subDecendingMap_Excluded = decendingMap .tailMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); key = new Integer(100).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); key = new Integer(10).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); key = new Integer(1).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); key = new Integer(0).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(999).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 998; i > 0; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(0).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(0).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); assertEquals(1, subDecendingMap_Included.size()); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.isEmpty()); // navigableMap_startExcluded_endExcluded decendingMap = navigableMap_startExcluded_endExcluded.descendingMap(); endKey = new Integer(110).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(109).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(108).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 107; i > 100; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(100).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Included.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertEquals(1, subDecendingMap_Included.size()); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.isEmpty()); endKey = new Integer(100).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(99).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } // navigableMap_startExcluded_endIncluded decendingMap = navigableMap_startExcluded_endIncluded.descendingMap(); endKey = new Integer(110).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(109).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(108).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 107; i > 100; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(100).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Included.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertEquals(1, subDecendingMap_Included.size()); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.isEmpty()); endKey = new Integer(100).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(99).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } // navigableMap_startIncluded_endExcluded decendingMap = navigableMap_startIncluded_endExcluded.descendingMap(); endKey = new Integer(110).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(109).toString(); try { decendingMap.tailMap(endKey, true); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(108).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 107; i > 100; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(100).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Included.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertEquals(2, subDecendingMap_Included.size()); assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(100).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(99).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } // navigableMap_startIncluded_endIncluded decendingMap = navigableMap_startIncluded_endIncluded.descendingMap(); endKey = new Integer(110).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(109).toString(); try { decendingMap.tailMap(endKey, true); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(108).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 107; i > 100; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(100).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Included.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertEquals(2, subDecendingMap_Included.size()); assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(100).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(99).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } // With Comparator decendingMap = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .descendingMap(); endKey = new Integer(110).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(109).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(108).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 107; i > 100; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(100).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Included.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertEquals(1, subDecendingMap_Included.size()); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.isEmpty()); endKey = new Integer(100).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(99).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } decendingMap = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .descendingMap(); endKey = new Integer(110).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(109).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(108).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 107; i > 100; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(100).toString(); assertFalse(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Included.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertEquals(1, subDecendingMap_Included.size()); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.isEmpty()); endKey = new Integer(100).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(99).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } // navigableMap_startIncluded_endExcluded decendingMap = ((NavigableMap) subMap_startIncluded_endExcluded) .descendingMap(); endKey = new Integer(110).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(109).toString(); try { decendingMap.tailMap(endKey, true); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(108).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 107; i > 100; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(100).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Included.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertEquals(2, subDecendingMap_Included.size()); assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(100).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(99).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } decendingMap = ((NavigableMap) subMap_startIncluded_endIncluded) .descendingMap(); endKey = new Integer(110).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(109).toString(); try { decendingMap.tailMap(endKey, true); } catch (IllegalArgumentException e) { // Expected } subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(108).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); for (int i = 107; i > 100; i--) { key = new Integer(i).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Excluded.containsKey(key)); } key = new Integer(100).toString(); assertTrue(subDecendingMap_Included.containsKey(key)); assertTrue(subDecendingMap_Included.containsKey(key)); endKey = new Integer(101).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertEquals(2, subDecendingMap_Included.size()); assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(100).toString(); subDecendingMap_Included = decendingMap.tailMap(endKey, true); subDecendingMap_Excluded = decendingMap.tailMap(endKey, false); key = endKey; assertTrue(subDecendingMap_Included.containsKey(key)); assertFalse(subDecendingMap_Excluded.containsKey(key)); endKey = new Integer(99).toString(); try { decendingMap.tailMap(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { decendingMap.tailMap(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } public void test_Entry_setValue() { TreeMap treeMap = new TreeMap(); Integer value = null; for (int i = 0; i < 50; i++) { value = new Integer(i); treeMap.put(value, value); } Map checkedMap = Collections.checkedMap(treeMap, Integer.class, Integer.class); Set entrySet = checkedMap.entrySet(); Iterator iterator = entrySet.iterator(); Entry entry; value = new Integer(0); for (; iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value, entry.setValue(value + 1)); assertEquals(value + 1, entry.getValue()); } } public void test_DescendingSubMapEntrySet_comparator() { Set entrySet; NavigableSet descendingSet; Comparator comparator; Entry[] entryArray; Integer value1, value2; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); assertNull(((NavigableSet) entrySet).comparator()); comparator = descendingSet.comparator(); assertNotNull(comparator); entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 1; i < entryArray.length; i++) { value1 = (Integer) entryArray[i - 1].getValue(); value2 = (Integer) entryArray[i].getValue(); assertTrue(value1 > value2); assertTrue(comparator.compare(value1, value2) < 0); } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); assertNull(((NavigableSet) entrySet).comparator()); comparator = descendingSet.comparator(); assertNotNull(comparator); entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 1; i < entryArray.length; i++) { value1 = (Integer) entryArray[i - 1].getValue(); value2 = (Integer) entryArray[i].getValue(); assertTrue(value1 > value2); assertTrue(comparator.compare(value1, value2) < 0); } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); assertNull(((NavigableSet) entrySet).comparator()); comparator = descendingSet.comparator(); assertNotNull(comparator); entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 1; i < entryArray.length; i++) { value1 = (Integer) entryArray[i - 1].getValue(); value2 = (Integer) entryArray[i].getValue(); assertTrue(value1 > value2); assertTrue(comparator.compare(value1, value2) < 0); } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); assertNull(((NavigableSet) entrySet).comparator()); comparator = descendingSet.comparator(); assertNotNull(comparator); entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 1; i < entryArray.length; i++) { value1 = (Integer) entryArray[i - 1].getValue(); value2 = (Integer) entryArray[i].getValue(); assertTrue(value1 > value2); assertTrue(comparator.compare(value1, value2) < 0); } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); assertNotNull(descendingSet.comparator()); } } public void test_DescendingSubMapEntrySet_descendingSet() { Set entrySet; NavigableSet ascendingSubMapEntrySet, descendingSet, descendingDescedingSet; Entry[] ascendingEntryArray, descendingDescendingArray; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); descendingDescedingSet = descendingSet.descendingSet(); ascendingEntryArray = (Entry[]) ascendingSubMapEntrySet .toArray(new Entry[ascendingSubMapEntrySet.size()]); descendingDescendingArray = (Entry[]) descendingDescedingSet .toArray(new Entry[descendingDescedingSet.size()]); assertEquals(ascendingEntryArray.length, descendingDescendingArray.length); for (int i = 0; i < ascendingEntryArray.length; i++) { assertEquals(ascendingEntryArray[i], descendingDescendingArray[i]); } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); descendingDescedingSet = descendingSet.descendingSet(); ascendingEntryArray = (Entry[]) ascendingSubMapEntrySet .toArray(new Entry[ascendingSubMapEntrySet.size()]); descendingDescendingArray = (Entry[]) descendingDescedingSet .toArray(new Entry[descendingDescedingSet.size()]); assertEquals(ascendingEntryArray.length, descendingDescendingArray.length); for (int i = 0; i < ascendingEntryArray.length; i++) { assertEquals(ascendingEntryArray[i], descendingDescendingArray[i]); } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); descendingDescedingSet = descendingSet.descendingSet(); ascendingEntryArray = (Entry[]) ascendingSubMapEntrySet .toArray(new Entry[ascendingSubMapEntrySet.size()]); descendingDescendingArray = (Entry[]) descendingDescedingSet .toArray(new Entry[descendingDescedingSet.size()]); assertEquals(ascendingEntryArray.length, descendingDescendingArray.length); for (int i = 0; i < ascendingEntryArray.length; i++) { assertEquals(ascendingEntryArray[i], descendingDescendingArray[i]); } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); descendingDescedingSet = descendingSet.descendingSet(); ascendingEntryArray = (Entry[]) ascendingSubMapEntrySet .toArray(new Entry[ascendingSubMapEntrySet.size()]); descendingDescendingArray = (Entry[]) descendingDescedingSet .toArray(new Entry[descendingDescedingSet.size()]); assertEquals(ascendingEntryArray.length, descendingDescendingArray.length); for (int i = 0; i < ascendingEntryArray.length; i++) { assertEquals(ascendingEntryArray[i], descendingDescendingArray[i]); } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet();// 0...2 if (entrySet instanceof NavigableSet) { // [2...0] descendingSet = ((NavigableSet) entrySet).descendingSet(); // [0...2] descendingDescedingSet = descendingSet.descendingSet(); Iterator iterator = descendingDescedingSet.iterator(); assertEquals(0, ((Entry) iterator.next()).getValue()); } String startKey = new Integer(2).toString(); entrySet = tm.tailMap(startKey, true).entrySet();// 2... if (entrySet instanceof NavigableSet) { // [2...0] descendingSet = ((NavigableSet) entrySet).descendingSet(); // [0...2] descendingDescedingSet = descendingSet.descendingSet(); Iterator iterator = descendingDescedingSet.iterator(); assertEquals(2, ((Entry) iterator.next()).getValue()); } } public void test_DescendingSubMapEntrySet_first() { Set entrySet; NavigableSet ascendingSubMapEntrySet, descendingSet; Entry entry; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); entry = (Entry) descendingSet.first(); assertEquals(101, entry.getValue()); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); entry = (Entry) descendingSet.first(); assertEquals(101, entry.getValue()); } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); entry = (Entry) descendingSet.first(); assertEquals(100, entry.getValue()); } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); entry = (Entry) descendingSet.first(); assertEquals(100, entry.getValue()); } } public void test_DescendingSubMapEntrySet_last() { Set entrySet; NavigableSet ascendingSubMapEntrySet, descendingSet; Entry entry; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); entry = (Entry) descendingSet.last(); assertEquals(108, entry.getValue()); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); entry = (Entry) descendingSet.last(); assertEquals(109, entry.getValue()); } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); entry = (Entry) descendingSet.last(); assertEquals(108, entry.getValue()); } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); entry = (Entry) descendingSet.last(); assertEquals(109, entry.getValue()); } } public void test_DescendingSubMapEntrySet_pollFirst_startExcluded_endExcluded() { Set entrySet = navigableMap_startExcluded_endExcluded.entrySet(); Entry entry; if (entrySet instanceof NavigableSet) { NavigableSet descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); assertEquals(8, descendingSubMapEntrySet.size()); for (int i = 101; i < 109; i++) { entry = (Entry) descendingSubMapEntrySet.pollFirst(); assertEquals(i, entry.getValue()); } assertNull(descendingSubMapEntrySet.pollFirst()); } } public void test_DescendingSubMapEntrySet_pollFirst_startExcluded_endIncluded() { Set entrySet = navigableMap_startExcluded_endIncluded.entrySet(); Entry entry; if (entrySet instanceof NavigableSet) { NavigableSet descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); assertEquals(9, descendingSubMapEntrySet.size()); for (int i = 101; i < 110; i++) { entry = (Entry) descendingSubMapEntrySet.pollFirst(); assertEquals(i, entry.getValue()); } assertNull(descendingSubMapEntrySet.pollFirst()); } } public void test_DescendingSubMapEntrySet_pollFirst_startIncluded_endExcluded() { Set entrySet = navigableMap_startIncluded_endExcluded.entrySet(); Entry entry; if (entrySet instanceof NavigableSet) { NavigableSet descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); assertEquals(9, descendingSubMapEntrySet.size()); for (int i = 100; i < 109; i++) { entry = (Entry) descendingSubMapEntrySet.pollFirst(); assertEquals(i, entry.getValue()); } assertNull(descendingSubMapEntrySet.pollFirst()); } } public void test_DescendingSubMapEntrySet_pollFirst_startIncluded_endIncluded() { Set entrySet = navigableMap_startIncluded_endIncluded.entrySet(); Entry entry; if (entrySet instanceof NavigableSet) { NavigableSet descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); assertEquals(10, descendingSubMapEntrySet.size()); for (int i = 100; i < 110; i++) { entry = (Entry) descendingSubMapEntrySet.pollFirst(); assertEquals(i, entry.getValue()); } assertNull(descendingSubMapEntrySet.pollFirst()); } } public void test_DescendingSubMapEntrySet_pollFirst() { String key = new Integer(2).toString(); Set entrySet = tm.headMap(key, true).entrySet();// [0...2] NavigableSet descendingEntrySet; Entry entry; if (entrySet instanceof NavigableSet) { // [2...0] descendingEntrySet = ((NavigableSet) entrySet).descendingSet(); entry = (Entry) descendingEntrySet.pollFirst(); assertEquals(0, entry.getValue()); } entrySet = tm.tailMap(key, true).entrySet(); if (entrySet instanceof NavigableSet) { descendingEntrySet = ((NavigableSet) entrySet).descendingSet(); entry = (Entry) descendingEntrySet.pollFirst(); assertEquals(2, entry.getValue()); } } public void test_DescendingSubMapEntrySet_pollLast_startExcluded_endExclued() { Set entrySet = navigableMap_startExcluded_endExcluded.entrySet(); Entry entry; if (entrySet instanceof NavigableSet) { NavigableSet descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); assertEquals(8, descendingSubMapEntrySet.size()); for (int i = 108; i > 100; i--) { entry = (Entry) descendingSubMapEntrySet.pollLast(); assertEquals(i, entry.getValue()); } assertNull(descendingSubMapEntrySet.pollFirst()); } } public void test_DescendingSubMapEntrySet_pollLast_startExcluded_endInclued() { Set entrySet = navigableMap_startExcluded_endIncluded.entrySet(); Entry entry; if (entrySet instanceof NavigableSet) { NavigableSet descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); assertEquals(9, descendingSubMapEntrySet.size()); for (int i = 109; i > 100; i--) { entry = (Entry) descendingSubMapEntrySet.pollLast(); assertEquals(i, entry.getValue()); } assertNull(descendingSubMapEntrySet.pollFirst()); } } public void test_DescendingSubMapEntrySet_pollLast_startIncluded_endExclued() { Set entrySet = navigableMap_startIncluded_endExcluded.entrySet(); Entry entry; if (entrySet instanceof NavigableSet) { NavigableSet descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); assertEquals(9, descendingSubMapEntrySet.size()); for (int i = 108; i > 99; i--) { entry = (Entry) descendingSubMapEntrySet.pollLast(); assertEquals(i, entry.getValue()); } assertNull(descendingSubMapEntrySet.pollFirst()); } } public void test_DescendingSubMapEntrySet_pollLast_startIncluded_endInclued() { Set entrySet = navigableMap_startIncluded_endIncluded.entrySet(); Entry entry; if (entrySet instanceof NavigableSet) { NavigableSet descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); assertEquals(10, descendingSubMapEntrySet.size()); for (int i = 109; i > 99; i--) { entry = (Entry) descendingSubMapEntrySet.pollLast(); assertEquals(i, entry.getValue()); } assertNull(descendingSubMapEntrySet.pollFirst()); } } public void test_DescendingSubMapEntrySet_pollLast() { String key = new Integer(2).toString(); Set entrySet = tm.headMap(key, true).entrySet();// [0...2] NavigableSet descendingEntrySet; Entry entry; if (entrySet instanceof NavigableSet) { // [2...0] descendingEntrySet = ((NavigableSet) entrySet).descendingSet(); entry = (Entry) descendingEntrySet.pollLast(); assertEquals(2, entry.getValue()); } entrySet = tm.tailMap(key, true).entrySet(); if (entrySet instanceof NavigableSet) { descendingEntrySet = ((NavigableSet) entrySet).descendingSet(); entry = (Entry) descendingEntrySet.pollLast(); assertEquals(999, entry.getValue()); } } public void test_DescendingSubMapEntrySet_descendingIterator() { Set entrySet; NavigableSet descendingSet; Iterator iterator; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); iterator = descendingSet.iterator(); for (int value = 108; value > 100; value--) { assertTrue(iterator.hasNext()); assertEquals(value, ((Entry) iterator.next()).getValue()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); iterator = descendingSet.iterator(); for (int value = 109; value > 100; value--) { assertTrue(iterator.hasNext()); assertEquals(value, ((Entry) iterator.next()).getValue()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); iterator = descendingSet.iterator(); for (int value = 108; value > 99; value--) { assertTrue(iterator.hasNext()); assertEquals(value, ((Entry) iterator.next()).getValue()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); iterator = descendingSet.iterator(); for (int value = 109; value > 99; value--) { assertTrue(iterator.hasNext()); assertEquals(value, ((Entry) iterator.next()).getValue()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet();// 0...2 if (entrySet instanceof NavigableSet) { // [2...0] descendingSet = ((NavigableSet) entrySet).descendingSet(); iterator = descendingSet.descendingIterator(); assertEquals(0, ((Entry) iterator.next()).getValue());// 0...2 } } public void test_DescendingSubMapEntrySet_headSet() { Set entrySet, headSet; NavigableSet descendingSubMapEntrySet; Iterator iterator, headSetIterator; Entry entry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); headSet = descendingSubMapEntrySet.headSet(entry); headSetIterator = headSet.iterator(); for (value = 108; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = descendingSubMapEntrySet.headSet(entry, false); headSetIterator = headSet.iterator(); for (value = 108; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = descendingSubMapEntrySet.headSet(entry, true); headSetIterator = headSet.iterator(); for (value = 108; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); headSet = descendingSubMapEntrySet.headSet(entry); headSetIterator = headSet.iterator(); for (value = 109; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = descendingSubMapEntrySet.headSet(entry, false); headSetIterator = headSet.iterator(); for (value = 109; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = descendingSubMapEntrySet.headSet(entry, true); headSetIterator = headSet.iterator(); for (value = 109; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); headSet = descendingSubMapEntrySet.headSet(entry); headSetIterator = headSet.iterator(); for (value = 108; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = descendingSubMapEntrySet.headSet(entry, false); headSetIterator = headSet.iterator(); for (value = 108; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = descendingSubMapEntrySet.headSet(entry, true); headSetIterator = headSet.iterator(); for (value = 108; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); headSet = descendingSubMapEntrySet.headSet(entry); headSetIterator = headSet.iterator(); for (value = 109; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = descendingSubMapEntrySet.headSet(entry, false); headSetIterator = headSet.iterator(); for (value = 109; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = descendingSubMapEntrySet.headSet(entry, true); headSetIterator = headSet.iterator(); for (value = 109; headSetIterator.hasNext(); value--) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet();// 0...2 if (entrySet instanceof NavigableSet) { // [2...0] descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); iterator.next();// 2 iterator.next();// 199 entry = (Entry) iterator.next();// 198 headSet = descendingSubMapEntrySet.headSet(entry); assertEquals(2, headSet.size());// 2 199 headSetIterator = headSet.iterator(); assertEquals(2, ((Entry) headSetIterator.next()).getValue()); assertEquals(199, ((Entry) headSetIterator.next()).getValue()); headSet = descendingSubMapEntrySet.headSet(entry, true); assertEquals(3, headSet.size());// 2 199 headSetIterator = headSet.iterator(); assertEquals(2, ((Entry) headSetIterator.next()).getValue()); assertEquals(199, ((Entry) headSetIterator.next()).getValue()); assertEquals(198, ((Entry) headSetIterator.next()).getValue()); } } public void test_DescendingSubMapEntrySet_tailSet() { Set entrySet, tailSet; NavigableSet descendingSubMapEntrySet; Iterator iterator, tailSetIterator; Entry entry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); tailSet = descendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = descendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value - 1, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = descendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); tailSet = descendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = descendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value - 1, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = descendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); tailSet = descendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = descendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value - 1, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = descendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); tailSet = descendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = descendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value - 1, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = descendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value--) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet();// 0...2 if (entrySet instanceof NavigableSet) { // [2...0] descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); iterator.next();// 2 entry = (Entry) iterator.next();// 199 tailSet = descendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); assertEquals(199, ((Entry) tailSetIterator.next()).getValue()); tailSet = descendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); assertEquals(198, ((Entry) tailSetIterator.next()).getValue()); tailSet = descendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); assertEquals(199, ((Entry) tailSetIterator.next()).getValue()); } } public void test_DescendingSubMapEntrySet_subSet() { Set entrySet, subSet; NavigableSet descendingSubMapEntrySet; Entry startEntry, endEntry; Iterator subSetIterator; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); Iterator iteratorStart = descendingSubMapEntrySet.iterator(); while (iteratorStart.hasNext()) { startEntry = (Entry) iteratorStart.next(); Iterator iteratorEnd = descendingSubMapEntrySet.iterator(); while (iteratorEnd.hasNext()) { endEntry = (Entry) iteratorEnd.next(); int startIndex = (Integer) startEntry.getValue(); int endIndex = (Integer) endEntry.getValue(); if (startIndex < endIndex) { try { descendingSubMapEntrySet.subSet(startEntry, endEntry); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingSubMapEntrySet.subSet(startEntry, false, endEntry, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingSubMapEntrySet.subSet(startEntry, false, endEntry, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingSubMapEntrySet.subSet(startEntry, true, endEntry, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingSubMapEntrySet.subSet(startEntry, true, endEntry, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } else { subSet = descendingSubMapEntrySet.subSet(startEntry, endEntry); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = descendingSubMapEntrySet.subSet(startEntry, false, endEntry, false); subSetIterator = subSet.iterator(); for (int index = startIndex - 1; subSetIterator .hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = descendingSubMapEntrySet.subSet(startEntry, false, endEntry, true); subSetIterator = subSet.iterator(); for (int index = startIndex - 1; subSetIterator .hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = descendingSubMapEntrySet.subSet(startEntry, true, endEntry, false); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = descendingSubMapEntrySet.subSet(startEntry, true, endEntry, true); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } } } } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { // [2...0] descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); Iterator iterator = descendingSubMapEntrySet.iterator(); startEntry = (Entry) iterator.next(); iterator.next(); endEntry = (Entry) iterator.next(); subSet = descendingSubMapEntrySet.subSet(startEntry, endEntry); assertEquals(2, subSet.size()); subSet = descendingSubMapEntrySet.subSet(startEntry, false, endEntry, false); assertEquals(1, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(199, ((Entry) subSetIterator.next()).getValue()); subSet = descendingSubMapEntrySet.subSet(startEntry, false, endEntry, true); assertEquals(2, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(199, ((Entry) subSetIterator.next()).getValue()); assertEquals(198, ((Entry) subSetIterator.next()).getValue()); subSet = descendingSubMapEntrySet.subSet(startEntry, true, endEntry, false); assertEquals(2, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(2, ((Entry) subSetIterator.next()).getValue()); assertEquals(199, ((Entry) subSetIterator.next()).getValue()); subSet = descendingSubMapEntrySet.subSet(startEntry, true, endEntry, true); assertEquals(3, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(2, ((Entry) subSetIterator.next()).getValue()); assertEquals(199, ((Entry) subSetIterator.next()).getValue()); assertEquals(198, ((Entry) subSetIterator.next()).getValue()); } // With Comnparator entrySet = subMap_startExcluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); Iterator iteratorStart = descendingSubMapEntrySet.iterator(); while (iteratorStart.hasNext()) { startEntry = (Entry) iteratorStart.next(); Iterator iteratorEnd = descendingSubMapEntrySet.iterator(); while (iteratorEnd.hasNext()) { endEntry = (Entry) iteratorEnd.next(); int startIndex = (Integer) startEntry.getValue(); int endIndex = (Integer) endEntry.getValue(); if (startIndex < endIndex) { try { descendingSubMapEntrySet.subSet(startEntry, endEntry); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingSubMapEntrySet.subSet(startEntry, false, endEntry, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingSubMapEntrySet.subSet(startEntry, false, endEntry, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingSubMapEntrySet.subSet(startEntry, true, endEntry, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingSubMapEntrySet.subSet(startEntry, true, endEntry, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } else { subSet = descendingSubMapEntrySet.subSet(startEntry, endEntry); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = descendingSubMapEntrySet.subSet(startEntry, false, endEntry, false); subSetIterator = subSet.iterator(); for (int index = startIndex - 1; subSetIterator .hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = descendingSubMapEntrySet.subSet(startEntry, false, endEntry, true); subSetIterator = subSet.iterator(); for (int index = startIndex - 1; subSetIterator .hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = descendingSubMapEntrySet.subSet(startEntry, true, endEntry, false); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = descendingSubMapEntrySet.subSet(startEntry, true, endEntry, true); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } } } } } } public void test_DescendingSubMapEntrySet_lower() { Set entrySet, subSet; NavigableSet descendingSubMapEntrySet; Iterator iterator; Entry entry, lowerEntry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) descendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value < 108) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } // System.out.println(descendingSubMapEntrySet); // System.out.println(tm); Object afterEnd = this.subMap_default_afterEnd_109.entrySet() .iterator().next(); // System.out.println("o:" + afterEnd); Object x = descendingSubMapEntrySet.lower(afterEnd); // System.out.println("x:" + x); assertNull(x); Object beforeStart = this.subMap_default_beforeStart_100.entrySet() .iterator().next(); // System.out.println("before: " + beforeStart); Object y = descendingSubMapEntrySet.lower(beforeStart); // System.out.println("y: " + y); assertNotNull(y); assertEquals(101, (((Entry) y).getValue())); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) descendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value < 109) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) descendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value < 108) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) descendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value < 109) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); iterator.next();// 2 iterator.next();// 199 entry = (Entry) iterator.next();// 198 lowerEntry = (Entry) descendingSubMapEntrySet.lower(entry); assertEquals(199, lowerEntry.getValue()); } } public void test_DescendingSubMapEntrySet_higher() { Set entrySet, subSet; NavigableSet descendingSubMapEntrySet; Iterator iterator; Entry entry, higherEntry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); higherEntry = (Entry) descendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value > 101) { assertEquals(value - 1, higherEntry.getValue()); } else { assertNull(higherEntry); } } Object afterEnd = this.subMap_default_afterEnd_109.entrySet() .iterator().next(); Object x = descendingSubMapEntrySet.higher(afterEnd); assertNotNull(x); assertEquals(108, ((Entry) x).getValue()); Object beforeStart = this.subMap_default_beforeStart_100.entrySet() .iterator().next(); Object y = descendingSubMapEntrySet.higher(beforeStart); assertNull(y); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); higherEntry = (Entry) descendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value > 101) { assertEquals(value - 1, higherEntry.getValue()); } else { assertNull(higherEntry); } } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); higherEntry = (Entry) descendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value > 100) { assertEquals(value - 1, higherEntry.getValue()); } else { assertNull(higherEntry); } } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); higherEntry = (Entry) descendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value > 100) { assertEquals(value - 1, higherEntry.getValue()); } else { assertNull(higherEntry); } } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); iterator.next();// 2 iterator.next();// 199 entry = (Entry) iterator.next();// 198 higherEntry = (Entry) descendingSubMapEntrySet.higher(entry); assertEquals(197, higherEntry.getValue()); } // With Comparator entrySet = subMap_startExcluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { descendingSubMapEntrySet = ((NavigableSet) entrySet) .descendingSet(); iterator = descendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); higherEntry = (Entry) descendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value > 101) { assertEquals(value - 1, higherEntry.getValue()); } else { assertNull(higherEntry); } } Object afterEnd = this.subMap_default_afterEnd_109.entrySet() .iterator().next(); Object x = descendingSubMapEntrySet.higher(afterEnd); assertNotNull(x); assertEquals(108, ((Entry) x).getValue()); Object beforeStart = this.subMap_default_beforeStart_100.entrySet() .iterator().next(); Object y = descendingSubMapEntrySet.higher(beforeStart); assertNull(y); } } public void test_DescendingSubMapEntrySet_ceiling() { Set entrySet; NavigableSet ascendingSubMapEntrySet, descendingSet; Entry entry; Entry[] entryArray; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.ceiling(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 108; i < entryArray.length; i++) { entry = (Entry) descendingSet.ceiling(entryArray[i]); assertEquals(j - i, entry.getValue()); } // System.out.println(descendingSet); // System.out.println(tm); Object afterEnd = this.subMap_default_afterEnd_109.entrySet() .iterator().next(); // System.out.println("o:" + afterEnd);//110 Object x = descendingSet.ceiling(afterEnd); assertNotNull(x); // System.out.println("x:" + x); assertEquals(108, ((Entry) x).getValue()); Object beforeStart = this.subMap_default_beforeStart_100.entrySet() .iterator().next(); // System.out.println("before: " + beforeStart);//0 Object y = descendingSet.ceiling(beforeStart); assertNull(y); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.ceiling(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 109; i < entryArray.length; i++) { entry = (Entry) descendingSet.ceiling(entryArray[i]); assertEquals(j - i, entry.getValue()); } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.ceiling(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 108; i < entryArray.length; i++) { entry = (Entry) descendingSet.ceiling(entryArray[i]); assertEquals(j - i, entry.getValue()); } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); try { descendingSet.ceiling(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 109; i < entryArray.length; i++) { entry = (Entry) descendingSet.ceiling(entryArray[i]); assertEquals(j - i, entry.getValue()); } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); try { descendingSet.ceiling(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } Iterator iterator = descendingSet.iterator(); Entry ceilingEntry; while (iterator.hasNext()) { entry = (Entry) iterator.next(); ceilingEntry = (Entry) descendingSet.ceiling(entry); assertEquals(entry, ceilingEntry); } } } public void test_DescendingSubMapEntrySet_floor() { Set entrySet; NavigableSet ascendingSubMapEntrySet, descendingSet; Entry entry; Entry[] entryArray; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 108; i < entryArray.length; i++) { entry = (Entry) descendingSet.floor(entryArray[i]); assertEquals(j - i, entry.getValue()); } Object afterEnd = this.subMap_default_afterEnd_109.entrySet() .iterator().next(); Object x = descendingSet.floor(afterEnd); assertNull(x); Object beforeStart = this.subMap_default_beforeStart_100.entrySet() .iterator().next(); Object y = descendingSet.floor(beforeStart); assertNotNull(y); assertEquals(101, (((Entry) y).getValue())); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 109; i < entryArray.length; i++) { entry = (Entry) descendingSet.floor(entryArray[i]); assertEquals(j - i, entry.getValue()); } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 108; i < entryArray.length; i++) { entry = (Entry) descendingSet.floor(entryArray[i]); assertEquals(j - i, entry.getValue()); } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); try { descendingSet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 109; i < entryArray.length; i++) { entry = (Entry) descendingSet.floor(entryArray[i]); assertEquals(j - i, entry.getValue()); } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); Iterator iterator = descendingSet.iterator(); Entry floorEntry; while (iterator.hasNext()) { entry = (Entry) iterator.next(); floorEntry = (Entry) descendingSet.floor(entry); assertEquals(entry, floorEntry); } } // With Comparator entrySet = subMap_startExcluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 108; i < entryArray.length; i++) { entry = (Entry) descendingSet.floor(entryArray[i]); assertEquals(j - i, entry.getValue()); } } entrySet = subMap_startExcluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 109; i < entryArray.length; i++) { entry = (Entry) descendingSet.floor(entryArray[i]); assertEquals(j - i, entry.getValue()); } } entrySet = subMap_startIncluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); try { descendingSet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 108; i < entryArray.length; i++) { entry = (Entry) descendingSet.floor(entryArray[i]); assertEquals(j - i, entry.getValue()); } } entrySet = subMap_startIncluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { descendingSet = ((NavigableSet) entrySet).descendingSet(); try { descendingSet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } entryArray = (Entry[]) descendingSet .toArray(new Entry[descendingSet.size()]); for (int i = 0, j = 109; i < entryArray.length; i++) { entry = (Entry) descendingSet.floor(entryArray[i]); assertEquals(j - i, entry.getValue()); } } } public void test_DescendingSubMapKeySet_comparator() { NavigableSet keySet, descendingKeySet; Comparator comparator; String[] keyArray; Integer value1, value2; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); assertNull(keySet.comparator()); descendingKeySet = keySet.descendingSet(); comparator = descendingKeySet.comparator(); assertNotNull(comparator); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 1; i < keyArray.length; i++) { value1 = Integer.valueOf(keyArray[i - 1]); value2 = Integer.valueOf(keyArray[i]); assertTrue(value1 > value2); assertTrue(comparator.compare(value1, value2) < 0); } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); assertNull(keySet.comparator()); descendingKeySet = keySet.descendingSet(); comparator = descendingKeySet.comparator(); assertNotNull(comparator); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 1; i < keyArray.length; i++) { value1 = Integer.valueOf(keyArray[i - 1]); value2 = Integer.valueOf(keyArray[i]); assertTrue(value1 > value2); assertTrue(comparator.compare(value1, value2) < 0); } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); assertNull(keySet.comparator()); descendingKeySet = keySet.descendingSet(); comparator = descendingKeySet.comparator(); assertNotNull(comparator); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 1; i < keyArray.length; i++) { value1 = Integer.valueOf(keyArray[i - 1]); value2 = Integer.valueOf(keyArray[i]); assertTrue(value1 > value2); assertTrue(comparator.compare(value1, value2) < 0); } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); assertNull(keySet.comparator()); descendingKeySet = keySet.descendingSet(); comparator = descendingKeySet.comparator(); assertNotNull(comparator); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 1; i < keyArray.length; i++) { value1 = Integer.valueOf(keyArray[i - 1]); value2 = Integer.valueOf(keyArray[i]); assertTrue(value1 > value2); assertTrue(comparator.compare(value1, value2) < 0); } String endKey = new Integer(2).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); assertNull(keySet.comparator()); descendingKeySet = keySet.descendingSet(); assertNotNull(descendingKeySet.comparator()); } public void test_AscendingSubMapKeySet_first() { NavigableSet keySet; String firstKey1 = new Integer(100).toString(); String firstKey2 = new Integer(101).toString(); keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); assertEquals(firstKey2, keySet.first()); keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); assertEquals(firstKey2, keySet.first()); keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); assertEquals(firstKey1, keySet.first()); keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); assertEquals(firstKey1, keySet.first()); } public void test_DescendingSubMapKeySet_pollFirst_startExcluded_endExcluded() { NavigableSet keySet = navigableMap_startExcluded_endExcluded .navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(8, keySet.size()); for (int value = 101; value < 109; value++) { assertEquals(new Integer(value).toString(), keySet.pollFirst()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_DescendingSubMapKeySet_pollFirst_startExcluded_endIncluded() { NavigableSet keySet = navigableMap_startExcluded_endIncluded .navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(9, keySet.size()); for (int value = 101; value < 110; value++) { assertEquals(new Integer(value).toString(), keySet.pollFirst()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_DescendingSubMapKeySet_pollFirst_startIncluded_endExcluded() { NavigableSet keySet = navigableMap_startIncluded_endExcluded .navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(9, keySet.size()); for (int value = 100; value < 109; value++) { assertEquals(new Integer(value).toString(), keySet.pollFirst()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_DescendingSubMapKeySet_pollFirst_startIncluded_endIncluded() { NavigableSet keySet = navigableMap_startIncluded_endIncluded .navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(10, keySet.size()); for (int value = 100; value < 110; value++) { assertEquals(new Integer(value).toString(), keySet.pollFirst()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_DescendingSubMapKeySet_pollFirst() { String endKey = new Integer(2).toString(); NavigableSet keySet = tm.headMap(endKey, true).navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); assertEquals(endKey, descendingKeySet.pollFirst()); } public void test_DescendingSubMapKeySet_pollLast_startExcluded_endExcluded() { NavigableSet keySet = navigableMap_startExcluded_endExcluded .navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(8, keySet.size()); for (int value = 108; value > 100; value--) { assertEquals(new Integer(value).toString(), keySet.pollLast()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_DescendingSubMapKeySet_pollLast_startExcluded_endIncluded() { NavigableSet keySet = navigableMap_startExcluded_endIncluded .navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(9, keySet.size()); for (int value = 109; value > 100; value--) { assertEquals(new Integer(value).toString(), keySet.pollLast()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_DescendingSubMapKeySet_pollLast_startIncluded_endExcluded() { NavigableSet keySet = navigableMap_startIncluded_endExcluded .navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(9, keySet.size()); for (int value = 108; value > 99; value--) { assertEquals(new Integer(value).toString(), keySet.pollLast()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_DescendingSubMapKeySet_pollLast_startIncluded_endIncluded() { NavigableSet keySet = navigableMap_startIncluded_endIncluded .navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(10, keySet.size()); for (int value = 109; value > 99; value--) { assertEquals(new Integer(value).toString(), keySet.pollLast()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_DescendingSubMapKeySet_pollLast() { String endKey = new Integer(2).toString(); NavigableSet keySet = tm.headMap(endKey, true).navigableKeySet(); NavigableSet descendingKeySet = keySet.descendingSet(); assertEquals(new Integer(0).toString(), descendingKeySet.pollLast()); } public void test_DescendingSubMapKeySet_headSet() { NavigableSet keySet, descendingKeySet; SortedSet headSet; String endKey, key; Iterator iterator; int index; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); endKey = new Integer(99).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(101).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 108; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 108; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 108; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i - 1, j); } endKey = new Integer(109).toString(); try { headSet = descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException expected) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(110).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); endKey = new Integer(99).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(101).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 109; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 109; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 109; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i - 1, j); } endKey = new Integer(109).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(108, index); endKey = new Integer(110).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); endKey = new Integer(99).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(99, index); endKey = new Integer(101).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 108; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 108; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 108; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 108; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i - 1, j); } endKey = new Integer(109).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(110).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); endKey = new Integer(99).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(99, index); endKey = new Integer(101).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 109; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 109; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 109; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i - 1, j); } endKey = new Integer(109).toString(); headSet = descendingKeySet.headSet(endKey); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = descendingKeySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = descendingKeySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(108, index); endKey = new Integer(110).toString(); try { descendingKeySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); iterator.next(); endKey = (String) iterator.next(); headSet = descendingKeySet.headSet(endKey); assertEquals(1, headSet.size()); headSet = descendingKeySet.headSet(endKey, false); assertEquals(1, headSet.size()); headSet = descendingKeySet.headSet(endKey, true); assertEquals(2, headSet.size()); key = new Integer(2).toString(); keySet = tm.tailMap(key, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); iterator.next(); endKey = (String) iterator.next(); headSet = descendingKeySet.headSet(endKey); assertEquals(1, headSet.size()); iterator = headSet.iterator(); assertEquals(999, Integer.parseInt((String) iterator.next())); } public void test_DescendingSubMapKeySet_tailSet() { NavigableSet keySet, descendingKeySet; SortedSet tailSet; String startKey, key; Iterator iterator; int index; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); startKey = new Integer(99).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(101).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(100, j); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(100, j); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j - 1).toString(), key); } assertEquals(101, j); } startKey = new Integer(109).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index - 1).toString(), key); } assertEquals(101, index); startKey = new Integer(110).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); startKey = new Integer(99).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(101).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(100, j); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(100, j); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j - 1).toString(), key); } assertEquals(101, j); } startKey = new Integer(109).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(100, index); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index - 1).toString(), key); } assertEquals(101, index); startKey = new Integer(110).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); startKey = new Integer(99).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); tailSet = descendingKeySet.tailSet(startKey); assertEquals(1, tailSet.size()); iterator = tailSet.iterator(); assertEquals(startKey, iterator.next()); tailSet = descendingKeySet.tailSet(startKey, true); assertEquals(1, tailSet.size()); iterator = tailSet.iterator(); assertEquals(startKey, iterator.next()); tailSet = descendingKeySet.tailSet(startKey, false); assertEquals(0, tailSet.size()); startKey = new Integer(101).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(99, index); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(99, index); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index - 1).toString(), key); } assertEquals(100, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(99, j); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(99, j); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j - 1).toString(), key); } assertEquals(100, j); } startKey = new Integer(109).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index - 1).toString(), key); } assertEquals(100, index); startKey = new Integer(110).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); startKey = new Integer(99).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); tailSet = descendingKeySet.tailSet(startKey); assertEquals(1, tailSet.size()); iterator = tailSet.iterator(); assertEquals(startKey, iterator.next()); tailSet = descendingKeySet.tailSet(startKey, true); assertEquals(1, tailSet.size()); iterator = tailSet.iterator(); assertEquals(startKey, iterator.next()); tailSet = descendingKeySet.tailSet(startKey, false); assertEquals(0, tailSet.size()); startKey = new Integer(101).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(99, index); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(99, index); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index - 1).toString(), key); } assertEquals(100, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(99, j); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(99, j); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j--) { key = (String) iterator.next(); assertEquals(new Integer(j - 1).toString(), key); } assertEquals(100, j); } startKey = new Integer(109).toString(); tailSet = descendingKeySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(99, index); tailSet = descendingKeySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(99, index); tailSet = descendingKeySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index--) { key = (String) iterator.next(); assertEquals(new Integer(index - 1).toString(), key); } assertEquals(100, index); startKey = new Integer(110).toString(); try { descendingKeySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); iterator.next(); startKey = (String) iterator.next(); tailSet = descendingKeySet.tailSet(startKey); assertEquals(112, tailSet.size()); Iterator tailIterator = tailSet.iterator(); assertEquals(new Integer(199).toString(), tailIterator.next()); tailSet = descendingKeySet.tailSet(startKey, true); assertEquals(112, tailSet.size()); tailIterator = tailSet.iterator(); assertEquals(new Integer(199).toString(), tailIterator.next()); tailSet = descendingKeySet.tailSet(startKey, false); assertEquals(111, tailSet.size()); tailIterator = tailSet.iterator(); assertEquals(new Integer(198).toString(), tailIterator.next()); } public void test_DescendingSubMapKeySet_subSet() { NavigableSet keySet, descendingKeySet; SortedSet subSet; String startKey, endKey, key; Iterator startIterator, endIterator, subSetIterator; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); startIterator = descendingKeySet.iterator(); while (startIterator.hasNext()) { startKey = (String) startIterator.next(); endIterator = descendingKeySet.iterator(); while (endIterator.hasNext()) { endKey = (String) endIterator.next(); int startIndex = Integer.valueOf(startKey); int endIndex = Integer.valueOf(endKey); if (startIndex < endIndex) { try { descendingKeySet.subSet(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.subSet(startKey, false, endKey, false); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.subSet(startKey, false, endKey, true); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.subSet(startKey, true, endKey, false); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.subSet(startKey, true, endKey, true); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } else { subSet = descendingKeySet.subSet(startKey, endKey); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = descendingKeySet.subSet(startKey, false, endKey, false); subSetIterator = subSet.iterator(); for (int index = startIndex - 1; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = descendingKeySet.subSet(startKey, false, endKey, true); subSetIterator = subSet.iterator(); for (int index = startIndex - 1; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = descendingKeySet.subSet(startKey, true, endKey, false); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = descendingKeySet.subSet(startKey, true, endKey, true); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } } } } endKey = new Integer(2).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); startKey = (String) iterator.next(); iterator.next(); endKey = (String) iterator.next(); subSet = descendingKeySet.subSet(startKey, endKey); assertEquals(2, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(startKey, subSetIterator.next()); subSetIterator.next(); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = descendingKeySet.subSet(startKey, false, endKey, false); assertEquals(1, subSet.size()); subSetIterator = subSet.iterator(); subSetIterator.next(); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = descendingKeySet.subSet(startKey, false, endKey, true); assertEquals(2, subSet.size()); subSetIterator = subSet.iterator(); subSetIterator.next(); assertEquals(endKey, subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = descendingKeySet.subSet(startKey, true, endKey, false); assertEquals(2, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(startKey, subSetIterator.next()); subSetIterator.next(); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = descendingKeySet.subSet(startKey, true, endKey, true); assertEquals(3, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(startKey, subSetIterator.next()); subSetIterator.next(); assertEquals(endKey, subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } // With Comparator keySet = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); startIterator = descendingKeySet.iterator(); while (startIterator.hasNext()) { startKey = (String) startIterator.next(); endIterator = descendingKeySet.iterator(); while (endIterator.hasNext()) { endKey = (String) endIterator.next(); int startIndex = Integer.valueOf(startKey); int endIndex = Integer.valueOf(endKey); if (startIndex < endIndex) { try { descendingKeySet.subSet(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.subSet(startKey, false, endKey, false); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.subSet(startKey, false, endKey, true); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.subSet(startKey, true, endKey, false); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { descendingKeySet.subSet(startKey, true, endKey, true); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } else { subSet = descendingKeySet.subSet(startKey, endKey); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = descendingKeySet.subSet(startKey, false, endKey, false); subSetIterator = subSet.iterator(); for (int index = startIndex - 1; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = descendingKeySet.subSet(startKey, false, endKey, true); subSetIterator = subSet.iterator(); for (int index = startIndex - 1; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = descendingKeySet.subSet(startKey, true, endKey, false); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = descendingKeySet.subSet(startKey, true, endKey, true); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index--) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } } } } } public void test_DescendingSubMapKeySet_descendingSet() { NavigableSet keySet, descendingSet, descendingDescendingSet; int value; Iterator iterator; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingSet = keySet.descendingSet(); descendingDescendingSet = descendingSet.descendingSet(); iterator = descendingDescendingSet.iterator(); assertTrue(iterator.hasNext()); for (value = 101; iterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), iterator.next()); } assertEquals(109, value); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); descendingSet = keySet.descendingSet(); descendingDescendingSet = descendingSet.descendingSet(); iterator = descendingDescendingSet.iterator(); assertTrue(iterator.hasNext()); for (value = 101; iterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), iterator.next()); } assertEquals(110, value); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); descendingSet = keySet.descendingSet(); descendingDescendingSet = descendingSet.descendingSet(); iterator = descendingDescendingSet.iterator(); assertTrue(iterator.hasNext()); for (value = 100; iterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), iterator.next()); } assertEquals(109, value); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); descendingSet = keySet.descendingSet(); descendingDescendingSet = descendingSet.descendingSet(); iterator = descendingDescendingSet.iterator(); assertTrue(iterator.hasNext()); for (value = 100; iterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), iterator.next()); } assertEquals(110, value); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } String endKey = new Integer(2).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); descendingSet = keySet.descendingSet(); descendingDescendingSet = descendingSet.descendingSet(); assertEquals(keySet, descendingDescendingSet); String startKey = new Integer(2).toString(); keySet = tm.tailMap(startKey, true).navigableKeySet(); descendingSet = keySet.descendingSet(); descendingDescendingSet = descendingSet.descendingSet(); assertEquals(keySet, descendingDescendingSet); } public void test_DescendingSubMapKeySet_descendingIterator() { NavigableSet keySet, descendingSet; int value; Iterator iterator, descendingIterator; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingSet = keySet.descendingSet(); descendingIterator = descendingSet.descendingIterator(); assertTrue(descendingIterator.hasNext()); for (value = 101; descendingIterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), descendingIterator .next()); } assertEquals(109, value); try { descendingIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } descendingSet = descendingSet .headSet(new Integer(105).toString(), true); descendingIterator = descendingSet.descendingIterator(); for (value = 105; descendingIterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), descendingIterator .next()); } descendingSet = keySet.descendingSet(); descendingSet = descendingSet .tailSet(new Integer(105).toString(), true); descendingIterator = descendingSet.descendingIterator(); for (value = 101; descendingIterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), descendingIterator .next()); } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); descendingSet = keySet.descendingSet(); descendingIterator = descendingSet.descendingIterator(); assertTrue(descendingIterator.hasNext()); for (value = 101; descendingIterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), descendingIterator .next()); } assertEquals(110, value); try { descendingIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } descendingSet = descendingSet .headSet(new Integer(105).toString(), true); descendingIterator = descendingSet.descendingIterator(); for (value = 105; descendingIterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), descendingIterator .next()); } descendingSet = keySet.descendingSet(); descendingSet = descendingSet .tailSet(new Integer(105).toString(), true); descendingIterator = descendingSet.descendingIterator(); for (value = 101; descendingIterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), descendingIterator .next()); } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); descendingSet = keySet.descendingSet(); descendingIterator = descendingSet.descendingIterator(); assertTrue(descendingIterator.hasNext()); for (value = 100; descendingIterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), descendingIterator .next()); } assertEquals(109, value); try { descendingIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); descendingSet = keySet.descendingSet(); descendingIterator = descendingSet.descendingIterator(); assertTrue(descendingIterator.hasNext()); for (value = 100; descendingIterator.hasNext(); value++) { assertEquals(new Integer(value).toString(), descendingIterator .next()); } assertEquals(110, value); try { descendingIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } String endKey = new Integer(2).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); iterator = keySet.iterator(); descendingSet = keySet.descendingSet(); descendingIterator = descendingSet.descendingIterator(); while (iterator.hasNext()) { assertEquals(iterator.next(), descendingIterator.next()); } String startKey = new Integer(2).toString(); keySet = tm.tailMap(startKey, true).navigableKeySet(); iterator = keySet.iterator(); descendingSet = keySet.descendingSet(); descendingIterator = descendingSet.descendingIterator(); while (iterator.hasNext()) { assertEquals(iterator.next(), descendingIterator.next()); } } public void test_DescendingSubMapKeySet_lower() { NavigableSet keySet, descendingKeySet; Iterator iterator; String key, lowerKey; int value, lowerValue; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) descendingKeySet.lower(key); if (value < 108) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(0).toString(); lowerKey = (String) descendingKeySet.lower(key); assertEquals(101, Integer.parseInt(lowerKey)); key = new Integer(2).toString(); lowerKey = (String) descendingKeySet.lower(key); assertNull(lowerKey); keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) descendingKeySet.lower(key); if (value < 109) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(0).toString(); lowerKey = (String) descendingKeySet.lower(key); assertEquals(101, Integer.parseInt(lowerKey)); key = new Integer(2).toString(); lowerKey = (String) descendingKeySet.lower(key); assertNull(lowerKey); keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) descendingKeySet.lower(key); if (value < 108) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(0).toString(); lowerKey = (String) descendingKeySet.lower(key); assertEquals(100, Integer.parseInt(lowerKey)); key = new Integer(2).toString(); lowerKey = (String) descendingKeySet.lower(key); assertNull(lowerKey); keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) descendingKeySet.lower(key); if (value < 109) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(0).toString(); lowerKey = (String) descendingKeySet.lower(key); assertEquals(100, Integer.parseInt(lowerKey)); key = new Integer(2).toString(); lowerKey = (String) descendingKeySet.lower(key); assertNull(lowerKey); key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); iterator.next(); iterator.next(); key = (String) iterator.next(); lowerKey = (String) descendingKeySet.lower(key); assertEquals(new Integer(199).toString(), lowerKey); try { descendingKeySet.lower(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); String endKey = key; keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.lower(endKey)); key = new Integer(0).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.lower(endKey)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.lower(endKey)); assertEquals(new Integer(1).toString(), descendingKeySet.lower(key)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.lower(endKey)); assertEquals(new Integer(1).toString(), descendingKeySet.lower(key)); // With Comparator keySet = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) descendingKeySet.lower(key); if (value < 108) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(0).toString(); lowerKey = (String) descendingKeySet.lower(key); assertEquals(101, Integer.parseInt(lowerKey)); key = new Integer(2).toString(); lowerKey = (String) descendingKeySet.lower(key); assertNull(lowerKey); keySet = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) descendingKeySet.lower(key); if (value < 109) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(0).toString(); lowerKey = (String) descendingKeySet.lower(key); assertEquals(101, Integer.parseInt(lowerKey)); key = new Integer(2).toString(); lowerKey = (String) descendingKeySet.lower(key); assertNull(lowerKey); keySet = ((NavigableMap) subMap_startIncluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) descendingKeySet.lower(key); if (value < 108) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(0).toString(); lowerKey = (String) descendingKeySet.lower(key); assertEquals(100, Integer.parseInt(lowerKey)); key = new Integer(2).toString(); lowerKey = (String) descendingKeySet.lower(key); assertNull(lowerKey); keySet = ((NavigableMap) subMap_startIncluded_endIncluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) descendingKeySet.lower(key); if (value < 109) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } } public void test_DescendingSubMapKeySet_higher() { NavigableSet keySet, descendingKeySet; Iterator iterator; String key, higherKey; int value, higherValue; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); higherKey = (String) descendingKeySet.higher(key); if (value > 101) { higherValue = Integer.valueOf(higherKey); assertEquals(value - 1, higherValue); } else { assertNull(higherKey); } } key = new Integer(99999).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals("108", higherKey); key = new Integer(-1).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(100).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(0).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(2).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals(108, Integer.parseInt(higherKey)); keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); higherKey = (String) descendingKeySet.higher(key); if (value > 101) { higherValue = Integer.valueOf(higherKey); assertEquals(value - 1, higherValue); } else { assertNull(higherKey); } } key = new Integer(99999).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals("109", higherKey); key = new Integer(-1).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(100).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(2).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals(109, Integer.parseInt(higherKey)); keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); higherKey = (String) descendingKeySet.higher(key); if (value > 100) { higherValue = Integer.valueOf(higherKey); assertEquals(value - 1, higherValue); } else { assertNull(higherKey); } } key = new Integer(99999).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals("108", higherKey); key = new Integer(-1).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(100).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(2).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals(108, Integer.parseInt(higherKey)); keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); higherKey = (String) descendingKeySet.higher(key); if (value > 100) { higherValue = Integer.valueOf(higherKey); assertEquals(value - 1, higherValue); } else { assertNull(higherKey); } } key = new Integer(99999).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals("109", higherKey); key = new Integer(-1).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(100).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(2).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals(109, Integer.parseInt(higherKey)); key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); key = (String) iterator.next(); higherKey = (String) descendingKeySet.higher(key); assertEquals(new Integer(199).toString(), higherKey); try { descendingKeySet.higher(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); String endKey = key; keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.higher(endKey)); key = new Integer(0).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.higher(endKey)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(new Integer(998).toString(), descendingKeySet .higher(endKey)); assertNull(descendingKeySet.higher(key)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(new Integer(998).toString(), descendingKeySet .higher(endKey)); assertNull(descendingKeySet.higher(key)); // With Comparator keySet = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); higherKey = (String) descendingKeySet.higher(key); if (value > 101) { higherValue = Integer.valueOf(higherKey); assertEquals(value - 1, higherValue); } else { assertNull(higherKey); } } key = new Integer(99999).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals("108", higherKey); key = new Integer(-1).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(100).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(0).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(2).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals(108, Integer.parseInt(higherKey)); keySet = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); higherKey = (String) descendingKeySet.higher(key); if (value > 101) { higherValue = Integer.valueOf(higherKey); assertEquals(value - 1, higherValue); } else { assertNull(higherKey); } } key = new Integer(99999).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals("109", higherKey); key = new Integer(-1).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(100).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(2).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals(109, Integer.parseInt(higherKey)); keySet = ((NavigableMap) subMap_startIncluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); higherKey = (String) descendingKeySet.higher(key); if (value > 100) { higherValue = Integer.valueOf(higherKey); assertEquals(value - 1, higherValue); } else { assertNull(higherKey); } } key = new Integer(99999).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals("108", higherKey); key = new Integer(-1).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(100).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(2).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals(108, Integer.parseInt(higherKey)); keySet = ((NavigableMap) subMap_startIncluded_endIncluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); higherKey = (String) descendingKeySet.higher(key); if (value > 100) { higherValue = Integer.valueOf(higherKey); assertEquals(value - 1, higherValue); } else { assertNull(higherKey); } } key = new Integer(99999).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals("109", higherKey); key = new Integer(-1).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(100).toString(); higherKey = (String) descendingKeySet.higher(key); assertNull(higherKey); key = new Integer(2).toString(); higherKey = (String) descendingKeySet.higher(key); assertEquals(109, Integer.parseInt(higherKey)); key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); iterator = descendingKeySet.iterator(); key = (String) iterator.next(); higherKey = (String) descendingKeySet.higher(key); assertEquals(new Integer(199).toString(), higherKey); try { descendingKeySet.higher(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); endKey = key; keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.higher(endKey)); key = new Integer(0).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.higher(endKey)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(new Integer(998).toString(), descendingKeySet .higher(endKey)); assertNull(descendingKeySet.higher(key)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(new Integer(998).toString(), descendingKeySet .higher(endKey)); assertNull(descendingKeySet.higher(key)); } public void test_DescendingSubMapKeySet_ceiling() { NavigableSet keySet, descendingKeySet; String[] keyArray; String key, ceilingKey; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 108; i < keyArray.length; i++) { ceilingKey = (String) descendingKeySet.ceiling(keyArray[i]); assertEquals(new Integer(j - i).toString(), ceilingKey); } key = new Integer(2).toString(); ceilingKey = (String) descendingKeySet.ceiling(key); assertEquals(108, Integer.parseInt(ceilingKey)); key = new Integer(0).toString(); ceilingKey = (String) descendingKeySet.ceiling(key); assertNull(ceilingKey); key = new Integer(-1).toString(); ceilingKey = (String) descendingKeySet.ceiling(key); assertNull(ceilingKey); key = new Integer(99999).toString(); ceilingKey = (String) descendingKeySet.ceiling(key); assertEquals(108, Integer.parseInt(ceilingKey)); keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 109; i < keyArray.length; i++) { ceilingKey = (String) descendingKeySet.ceiling(keyArray[i]); assertEquals(new Integer(j - i).toString(), ceilingKey); } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 108; i < keyArray.length; i++) { ceilingKey = (String) descendingKeySet.ceiling(keyArray[i]); assertEquals(new Integer(j - i).toString(), ceilingKey); } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 109; i < keyArray.length; i++) { ceilingKey = (String) descendingKeySet.ceiling(keyArray[i]); assertEquals(new Integer(j - i).toString(), ceilingKey); } key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(key, descendingKeySet.ceiling(iterator.next())); try { descendingKeySet.ceiling(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); String endKey = key; keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(key, descendingKeySet.ceiling(endKey)); key = new Integer(0).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.ceiling(endKey)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(new Integer(999).toString(), descendingKeySet .ceiling(endKey)); assertEquals(key, descendingKeySet.ceiling(key)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(new Integer(998).toString(), descendingKeySet .ceiling(endKey)); assertEquals(key, descendingKeySet.ceiling(key)); // With Comparator keySet = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 108; i < keyArray.length; i++) { ceilingKey = (String) descendingKeySet.ceiling(keyArray[i]); assertEquals(new Integer(j - i).toString(), ceilingKey); } key = new Integer(2).toString(); ceilingKey = (String) descendingKeySet.ceiling(key); assertEquals(108, Integer.parseInt(ceilingKey)); key = new Integer(0).toString(); ceilingKey = (String) descendingKeySet.ceiling(key); assertNull(ceilingKey); keySet = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 109; i < keyArray.length; i++) { ceilingKey = (String) descendingKeySet.ceiling(keyArray[i]); assertEquals(new Integer(j - i).toString(), ceilingKey); } keySet = ((NavigableMap) subMap_startIncluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 108; i < keyArray.length; i++) { ceilingKey = (String) descendingKeySet.ceiling(keyArray[i]); assertEquals(new Integer(j - i).toString(), ceilingKey); } keySet = ((NavigableMap) subMap_startIncluded_endIncluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 109; i < keyArray.length; i++) { ceilingKey = (String) descendingKeySet.ceiling(keyArray[i]); assertEquals(new Integer(j - i).toString(), ceilingKey); } } public void test_DescendingSubMapKeySet_floor() { NavigableSet keySet, descendingKeySet; String[] keyArray; String floorKey; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 108; i < keyArray.length; i++) { floorKey = (String) descendingKeySet.floor(keyArray[i]); assertEquals(new Integer(j - i).toString(), floorKey); } String key = new Integer(0).toString(); floorKey = (String) descendingKeySet.floor(key); assertEquals(101, Integer.parseInt(floorKey)); key = new Integer(2).toString(); floorKey = (String) descendingKeySet.floor(key); assertNull(floorKey); keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 109; i < keyArray.length; i++) { floorKey = (String) descendingKeySet.floor(keyArray[i]); assertEquals(new Integer(j - i).toString(), floorKey); } key = new Integer(0).toString(); floorKey = (String) descendingKeySet.floor(key); assertEquals(101, Integer.parseInt(floorKey)); key = new Integer(2).toString(); floorKey = (String) descendingKeySet.floor(key); assertNull(floorKey); keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 108; i < keyArray.length; i++) { floorKey = (String) descendingKeySet.floor(keyArray[i]); assertEquals(new Integer(j - i).toString(), floorKey); } key = new Integer(0).toString(); floorKey = (String) descendingKeySet.floor(key); assertEquals(100, Integer.parseInt(floorKey)); key = new Integer(2).toString(); floorKey = (String) descendingKeySet.floor(key); assertNull(floorKey); keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 109; i < keyArray.length; i++) { floorKey = (String) descendingKeySet.floor(keyArray[i]); assertEquals(new Integer(j - i).toString(), floorKey); } key = new Integer(0).toString(); floorKey = (String) descendingKeySet.floor(key); assertEquals(100, Integer.parseInt(floorKey)); key = new Integer(2).toString(); floorKey = (String) descendingKeySet.floor(key); assertNull(floorKey); key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); Iterator iterator = descendingKeySet.iterator(); assertEquals(key, descendingKeySet.floor(iterator.next())); try { descendingKeySet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); String endKey = key; keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(key, descendingKeySet.floor(endKey)); key = new Integer(0).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.floor(endKey)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertEquals(new Integer(999).toString(), descendingKeySet .floor(endKey)); assertEquals(key, descendingKeySet.floor(key)); endKey = new Integer(999).toString(); keySet = tm.headMap(endKey, false).navigableKeySet(); descendingKeySet = keySet.descendingSet(); assertNull(descendingKeySet.floor(endKey)); assertEquals(key, descendingKeySet.floor(key)); // With Comparator keySet = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 108; i < keyArray.length; i++) { floorKey = (String) descendingKeySet.floor(keyArray[i]); assertEquals(new Integer(j - i).toString(), floorKey); } key = new Integer(0).toString(); floorKey = (String) descendingKeySet.floor(key); assertEquals(101, Integer.parseInt(floorKey)); key = new Integer(2).toString(); floorKey = (String) descendingKeySet.floor(key); assertNull(floorKey); keySet = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 109; i < keyArray.length; i++) { floorKey = (String) descendingKeySet.floor(keyArray[i]); assertEquals(new Integer(j - i).toString(), floorKey); } key = new Integer(0).toString(); floorKey = (String) descendingKeySet.floor(key); assertEquals(101, Integer.parseInt(floorKey)); key = new Integer(2).toString(); floorKey = (String) descendingKeySet.floor(key); assertNull(floorKey); keySet = ((NavigableMap) subMap_startIncluded_endExcluded_comparator) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 108; i < keyArray.length; i++) { floorKey = (String) descendingKeySet.floor(keyArray[i]); assertEquals(new Integer(j - i).toString(), floorKey); } key = new Integer(0).toString(); floorKey = (String) descendingKeySet.floor(key); assertEquals(100, Integer.parseInt(floorKey)); key = new Integer(2).toString(); floorKey = (String) descendingKeySet.floor(key); assertNull(floorKey); keySet = ((NavigableMap) subMap_startIncluded_endIncluded) .navigableKeySet(); descendingKeySet = keySet.descendingSet(); keyArray = (String[]) descendingKeySet .toArray(new String[descendingKeySet.size()]); for (int i = 0, j = 109; i < keyArray.length; i++) { floorKey = (String) descendingKeySet.floor(keyArray[i]); assertEquals(new Integer(j - i).toString(), floorKey); } key = new Integer(0).toString(); floorKey = (String) descendingKeySet.floor(key); assertEquals(100, Integer.parseInt(floorKey)); key = new Integer(2).toString(); floorKey = (String) descendingKeySet.floor(key); assertNull(floorKey); } public void test_AscendingSubMapKeySet_last() { NavigableSet keySet; String firstKey1 = new Integer(108).toString(); String firstKey2 = new Integer(109).toString(); keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); assertEquals(firstKey1, keySet.last()); keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); assertEquals(firstKey2, keySet.last()); keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); assertEquals(firstKey1, keySet.last()); keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); assertEquals(firstKey2, keySet.last()); } public void test_AscendingSubMapKeySet_comparator() { NavigableSet keySet; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); assertNull(keySet.comparator()); keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); assertNull(keySet.comparator()); keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); assertNull(keySet.comparator()); keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); assertNull(keySet.comparator()); String endKey = new Integer(2).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); assertNull(keySet.comparator()); } public void test_AscendingSubMapKeySet_pollFirst_startExcluded_endExcluded() { NavigableSet keySet = navigableMap_startExcluded_endExcluded .navigableKeySet(); Iterator iterator = keySet.iterator(); assertEquals(8, keySet.size()); for (int value = 101; value < 109; value++) { assertEquals(new Integer(value).toString(), keySet.pollFirst()); } assertEquals(0, keySet.size()); assertNull(keySet.pollFirst()); } public void test_AscendingSubMapKeySet_pollFirst_startExcluded_endIncluded() { NavigableSet keySet = navigableMap_startExcluded_endIncluded .navigableKeySet(); Iterator iterator = keySet.iterator(); assertEquals(9, keySet.size()); for (int value = 101; value < 110; value++) { assertEquals(new Integer(value).toString(), keySet.pollFirst()); } assertEquals(0, keySet.size()); assertNull(keySet.pollFirst()); } public void test_AscendingSubMapKeySet_pollFirst_startIncluded_endExcluded() { NavigableSet keySet = navigableMap_startIncluded_endExcluded .navigableKeySet(); Iterator iterator = keySet.iterator(); assertEquals(9, keySet.size()); for (int value = 100; value < 109; value++) { assertEquals(new Integer(value).toString(), keySet.pollFirst()); } assertEquals(0, keySet.size()); assertNull(keySet.pollFirst()); } public void test_AscendingSubMapKeySet_pollFirst_startIncluded_endIncluded() { NavigableSet keySet = navigableMap_startIncluded_endIncluded .navigableKeySet(); Iterator iterator = keySet.iterator(); assertEquals(10, keySet.size()); for (int value = 100; value < 110; value++) { assertEquals(new Integer(value).toString(), keySet.pollFirst()); } assertEquals(0, keySet.size()); assertNull(keySet.pollFirst()); } public void test_AscendingSubMapKeySet_pollFirst() { String endKey = new Integer(2).toString(); NavigableSet keySet = tm.headMap(endKey, true).navigableKeySet(); assertEquals(new Integer(0).toString(), keySet.pollFirst()); keySet = tm.tailMap(endKey, true).navigableKeySet(); assertEquals(new Integer(2).toString(), keySet.pollFirst()); } public void test_AscendingSubMapKeySet_pollLast_startExcluded_endExcluded() { NavigableSet keySet = navigableMap_startExcluded_endExcluded .navigableKeySet(); Iterator iterator = keySet.iterator(); assertEquals(8, keySet.size()); for (int value = 108; value > 100; value--) { assertEquals(new Integer(value).toString(), keySet.pollLast()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_AscendingSubMapKeySet_pollLast_startExcluded_endIncluded() { NavigableSet keySet = navigableMap_startExcluded_endIncluded .navigableKeySet(); Iterator iterator = keySet.iterator(); assertEquals(9, keySet.size()); for (int value = 109; value > 100; value--) { assertEquals(new Integer(value).toString(), keySet.pollLast()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_AscendingSubMapKeySet_pollLast_startIncluded_endExcluded() { NavigableSet keySet = navigableMap_startIncluded_endExcluded .navigableKeySet(); Iterator iterator = keySet.iterator(); assertEquals(9, keySet.size()); for (int value = 108; value > 99; value--) { assertEquals(new Integer(value).toString(), keySet.pollLast()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_AscendingSubMapKeySet_pollLast_startIncluded_endIncluded() { NavigableSet keySet = navigableMap_startIncluded_endIncluded .navigableKeySet(); Iterator iterator = keySet.iterator(); assertEquals(10, keySet.size()); for (int value = 109; value > 99; value--) { assertEquals(new Integer(value).toString(), keySet.pollLast()); } assertEquals(0, keySet.size()); assertNull(keySet.pollLast()); } public void test_AscendingSubMapKeySet_pollLast() { String endKey = new Integer(2).toString(); NavigableSet keySet = tm.headMap(endKey, true).navigableKeySet(); assertEquals(new Integer(2).toString(), keySet.pollLast()); keySet = tm.tailMap(endKey, true).navigableKeySet(); assertEquals(new Integer(999).toString(), keySet.pollLast()); } public void test_AscendingSubMapKeySet_descendingIterator() { NavigableSet keySet; Iterator iterator; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); iterator = keySet.descendingIterator(); for (int value = 108; value > 100; value--) { assertTrue(iterator.hasNext()); assertEquals(new Integer(value).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); iterator = keySet.descendingIterator(); for (int value = 109; value > 100; value--) { assertTrue(iterator.hasNext()); assertEquals(new Integer(value).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); iterator = keySet.descendingIterator(); for (int value = 108; value > 99; value--) { assertTrue(iterator.hasNext()); assertEquals(new Integer(value).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); iterator = keySet.descendingIterator(); for (int value = 109; value > 99; value--) { assertTrue(iterator.hasNext()); assertEquals(new Integer(value).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } String endKey = new Integer(2).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); iterator = keySet.descendingIterator(); assertEquals(new Integer(2).toString(), iterator.next()); assertEquals(new Integer(199).toString(), iterator.next()); } public void test_AscendingSubMapKeySet_descendingSet() { NavigableSet keySet, descendingSet; Iterator iterator; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet() .descendingSet(); descendingSet = keySet.descendingSet(); iterator = descendingSet.iterator(); for (int value = 101; value < 109; value++) { assertTrue(iterator.hasNext()); assertEquals(new Integer(value).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet() .descendingSet(); descendingSet = keySet.descendingSet(); iterator = descendingSet.iterator(); for (int value = 101; value < 110; value++) { assertTrue(iterator.hasNext()); assertEquals(new Integer(value).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet() .descendingSet(); descendingSet = keySet.descendingSet(); iterator = descendingSet.iterator(); for (int value = 100; value < 109; value++) { assertTrue(iterator.hasNext()); assertEquals(new Integer(value).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet() .descendingSet(); descendingSet = keySet.descendingSet(); iterator = descendingSet.iterator(); for (int value = 100; value < 110; value++) { assertTrue(iterator.hasNext()); assertEquals(new Integer(value).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } String endKey = new Integer(1).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); descendingSet = keySet.descendingSet(); iterator = descendingSet.iterator(); assertEquals(new Integer(1).toString(), iterator.next()); assertEquals(new Integer(0).toString(), iterator.next()); } public void test_AscendingSubMapKeySet_headSet() { NavigableSet keySet; SortedSet headSet; String endKey, key; Iterator iterator; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); endKey = new Integer(99).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(101).toString(); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(0, keySet.headSet(endKey, false).size()); assertEquals(1, keySet.headSet(endKey, true).size()); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i + 1, j); } endKey = new Integer(109).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int index; for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(110).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); endKey = new Integer(99).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(101).toString(); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(1, keySet.headSet(endKey, true).size()); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i + 1, j); } endKey = new Integer(109).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); endKey = new Integer(110).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); endKey = new Integer(99).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(0, keySet.headSet(endKey, false).size()); assertEquals(1, keySet.headSet(endKey, true).size()); endKey = new Integer(101).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(102, index); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i + 1, j); } endKey = new Integer(109).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(110).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); endKey = new Integer(99).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(0, keySet.headSet(endKey, false).size()); assertEquals(1, keySet.headSet(endKey, true).size()); endKey = new Integer(101).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(102, index); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i + 1, j); } endKey = new Integer(109).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); endKey = new Integer(110).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } key = new Integer(1).toString(); keySet = tm.headMap(key, true).navigableKeySet(); iterator = keySet.iterator(); iterator.next(); endKey = (String) iterator.next(); headSet = keySet.headSet(endKey, false); assertEquals(1, headSet.size()); Iterator headSetIterator = headSet.iterator(); assertEquals(new Integer(0).toString(), headSetIterator.next()); assertFalse(headSetIterator.hasNext()); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { keySet.headSet(null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } headSet = keySet.headSet(endKey, true); assertEquals(2, headSet.size()); headSetIterator = headSet.iterator(); assertEquals(new Integer(0).toString(), headSetIterator.next()); assertEquals(new Integer(1).toString(), headSetIterator.next()); assertFalse(headSetIterator.hasNext()); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { keySet.headSet(null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } // With Comparator keySet = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .navigableKeySet(); endKey = new Integer(99).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); try { keySet.headSet(endKey).size(); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false).size(); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true).size(); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(101).toString(); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(0, keySet.headSet(endKey, false).size()); assertEquals(1, keySet.headSet(endKey, true).size()); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i + 1, j); } endKey = new Integer(109).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(110).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = ((NavigableMap) subMap_startExcluded_endIncluded_comparator) .navigableKeySet(); endKey = new Integer(99).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(101).toString(); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(1, keySet.headSet(endKey, true).size()); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 101; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i + 1, j); } endKey = new Integer(109).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); endKey = new Integer(110).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = ((NavigableMap) subMap_startIncluded_endExcluded_comparator) .navigableKeySet(); endKey = new Integer(99).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(0, keySet.headSet(endKey, false).size()); assertEquals(1, keySet.headSet(endKey, true).size()); endKey = new Integer(101).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(102, index); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i + 1, j); } endKey = new Integer(109).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(110).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = ((NavigableMap) subMap_startIncluded_endIncluded_comparator) .navigableKeySet(); endKey = new Integer(99).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } endKey = new Integer(100).toString(); assertEquals(0, keySet.headSet(endKey).size()); assertEquals(0, keySet.headSet(endKey, false).size()); assertEquals(1, keySet.headSet(endKey, true).size()); endKey = new Integer(101).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(101, index); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(102, index); for (int i = 102; i < 109; i++) { endKey = new Integer(i).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); int j; for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i, j); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (j = 100; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(i + 1, j); } endKey = new Integer(109).toString(); headSet = keySet.headSet(endKey); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, false); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); headSet = keySet.headSet(endKey, true); iterator = headSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); endKey = new Integer(110).toString(); try { keySet.headSet(endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.headSet(endKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } key = new Integer(1).toString(); keySet = tm.headMap(key, true).navigableKeySet(); iterator = keySet.iterator(); iterator.next(); endKey = (String) iterator.next(); headSet = keySet.headSet(endKey, false); assertEquals(1, headSet.size()); headSetIterator = headSet.iterator(); assertEquals(new Integer(0).toString(), headSetIterator.next()); assertFalse(headSetIterator.hasNext()); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { keySet.headSet(null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } headSet = keySet.headSet(endKey, true); assertEquals(2, headSet.size()); headSetIterator = headSet.iterator(); assertEquals(new Integer(0).toString(), headSetIterator.next()); assertEquals(new Integer(1).toString(), headSetIterator.next()); assertFalse(headSetIterator.hasNext()); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { keySet.headSet(null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } } public void test_AscendingSubMapKeySet_remove() { TreeMap tm_rm = new TreeMap(tm); SortedMap subMap_startExcluded_endExcluded_rm = tm_rm.subMap( objArray[100].toString(), false, objArray[109].toString(), false); assertNull(subMap_startExcluded_endExcluded_rm.remove("0")); try { subMap_startExcluded_endExcluded_rm.remove(null); fail("should throw NPE"); } catch (Exception e) { // Expected } for (int i = 101; i < 108; i++) { assertNotNull(subMap_startExcluded_endExcluded_rm .remove(new Integer(i).toString())); } } public void test_AscendingSubMapKeySet_tailSet() { NavigableSet keySet; SortedSet tailSet; String startKey, key; Iterator iterator; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); startKey = new Integer(99).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } int index; tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; index < 109; index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } startKey = new Integer(101).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(108, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(109, j); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(109, j); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j + 1).toString(), key); } assertEquals(108, j); } startKey = new Integer(109).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(110).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); startKey = new Integer(99).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(109, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(110, j); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(110, j); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j + 1).toString(), key); } assertEquals(109, j); } startKey = new Integer(109).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(109, index); startKey = new Integer(110).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); startKey = new Integer(99).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(108, index); startKey = new Integer(101).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(108, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(109, j); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(109, j); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j + 1).toString(), key); } assertEquals(108, j); } startKey = new Integer(109).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(110).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); startKey = new Integer(99).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(109, index); startKey = new Integer(101).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(109, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(110, j); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(110, j); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j + 1).toString(), key); } assertEquals(109, j); } startKey = new Integer(109).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(109, index); startKey = new Integer(110).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } String endKey = new Integer(1).toString(); keySet = tm.headMap(endKey, true).navigableKeySet(); iterator = keySet.iterator(); iterator.next(); startKey = (String) iterator.next(); tailSet = keySet.tailSet(startKey); assertEquals(1, tailSet.size()); Iterator tailSetIterator = tailSet.iterator(); assertEquals(endKey, tailSetIterator.next()); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { keySet.tailSet(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } tailSet = keySet.tailSet(startKey, true); assertEquals(1, tailSet.size()); tailSetIterator = tailSet.iterator(); assertEquals(endKey, tailSetIterator.next()); tailSet = keySet.tailSet(startKey, false); assertEquals(0, tailSet.size()); tailSetIterator = tailSet.iterator(); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { keySet.tailSet(null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.tailSet(null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } // With Comparator keySet = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .navigableKeySet(); startKey = new Integer(99).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; index < 109; index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } startKey = new Integer(101).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(109, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 101; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(108, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(109, j); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(109, j); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j + 1).toString(), key); } assertEquals(108, j); } startKey = new Integer(109).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(110).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); startKey = new Integer(99).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } startKey = new Integer(100).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 100; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(109, index); for (int i = 102; i < 109; i++) { startKey = new Integer(i).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); int j; for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(110, j); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j).toString(), key); } assertEquals(110, j); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (j = i; iterator.hasNext(); j++) { key = (String) iterator.next(); assertEquals(new Integer(j + 1).toString(), key); } assertEquals(109, j); } startKey = new Integer(109).toString(); tailSet = keySet.tailSet(startKey); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, true); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index).toString(), key); } assertEquals(110, index); tailSet = keySet.tailSet(startKey, false); iterator = tailSet.iterator(); for (index = 109; iterator.hasNext(); index++) { key = (String) iterator.next(); assertEquals(new Integer(index + 1).toString(), key); } assertEquals(109, index); startKey = new Integer(110).toString(); try { keySet.tailSet(startKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.tailSet(startKey, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } public void test_AscendingSubMapKeySet_subSet() { NavigableSet keySet; SortedSet subSet; String startKey, endKey, key; Iterator startIterator, endIterator, subSetIterator; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); startIterator = keySet.iterator(); while (startIterator.hasNext()) { startKey = (String) startIterator.next(); endIterator = keySet.iterator(); while (endIterator.hasNext()) { endKey = (String) endIterator.next(); int startIndex = Integer.valueOf(startKey); int endIndex = Integer.valueOf(endKey); if (startIndex > endIndex) { try { keySet.subSet(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.subSet(startKey, false, endKey, false); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.subSet(startKey, false, endKey, true); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.subSet(startKey, true, endKey, false); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.subSet(startKey, true, endKey, true); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } else { subSet = keySet.subSet(startKey, endKey); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = keySet.subSet(startKey, false, endKey, false); subSetIterator = subSet.iterator(); for (int index = startIndex + 1; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = keySet.subSet(startKey, false, endKey, true); subSetIterator = subSet.iterator(); for (int index = startIndex + 1; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = keySet.subSet(startKey, true, endKey, false); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = keySet.subSet(startKey, true, endKey, true); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } } } } key = new Integer(1).toString(); keySet = tm.headMap(key, true).navigableKeySet(); Iterator iterator = keySet.iterator(); startKey = (String) iterator.next(); endKey = (String) iterator.next(); subSet = keySet.subSet(startKey, endKey); assertEquals(1, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(new Integer(0).toString(), subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = keySet.subSet(startKey, false, endKey, false); assertEquals(0, subSet.size()); subSet = keySet.subSet(startKey, false, endKey, true); assertEquals(1, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(new Integer(1).toString(), subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = keySet.subSet(startKey, true, endKey, false); assertEquals(1, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(new Integer(0).toString(), subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = keySet.subSet(startKey, true, endKey, true); assertEquals(2, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(new Integer(0).toString(), subSetIterator.next()); assertEquals(new Integer(1).toString(), subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { keySet.subSet(null, null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, false, null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, false, null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, true, null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, true, null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, endKey); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, false, endKey, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, false, endKey, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, true, endKey, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, true, endKey, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, false, null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, false, null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, true, null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, true, null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } // With Comparator keySet = ((NavigableMap) subMap_startExcluded_endExcluded_comparator) .navigableKeySet(); startIterator = keySet.iterator(); while (startIterator.hasNext()) { startKey = (String) startIterator.next(); endIterator = keySet.iterator(); while (endIterator.hasNext()) { endKey = (String) endIterator.next(); int startIndex = Integer.valueOf(startKey); int endIndex = Integer.valueOf(endKey); if (startIndex > endIndex) { try { keySet.subSet(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.subSet(startKey, false, endKey, false); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.subSet(startKey, false, endKey, true); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.subSet(startKey, true, endKey, false); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { keySet.subSet(startKey, true, endKey, true); fail("shoudl throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } else { subSet = keySet.subSet(startKey, endKey); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = keySet.subSet(startKey, false, endKey, false); subSetIterator = subSet.iterator(); for (int index = startIndex + 1; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = keySet.subSet(startKey, false, endKey, true); subSetIterator = subSet.iterator(); for (int index = startIndex + 1; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = keySet.subSet(startKey, true, endKey, false); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } subSet = keySet.subSet(startKey, true, endKey, true); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index++) { assertEquals(new Integer(index).toString(), subSetIterator.next()); } } } } key = new Integer(1).toString(); keySet = tm.headMap(key, true).navigableKeySet(); iterator = keySet.iterator(); startKey = (String) iterator.next(); endKey = (String) iterator.next(); subSet = keySet.subSet(startKey, endKey); assertEquals(1, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(new Integer(0).toString(), subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = keySet.subSet(startKey, false, endKey, false); assertEquals(0, subSet.size()); subSet = keySet.subSet(startKey, false, endKey, true); assertEquals(1, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(new Integer(1).toString(), subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = keySet.subSet(startKey, true, endKey, false); assertEquals(1, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(new Integer(0).toString(), subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } subSet = keySet.subSet(startKey, true, endKey, true); assertEquals(2, subSet.size()); subSetIterator = subSet.iterator(); assertEquals(new Integer(0).toString(), subSetIterator.next()); assertEquals(new Integer(1).toString(), subSetIterator.next()); try { subSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } try { keySet.subSet(null, null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, false, null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, false, null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, true, null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, true, null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, endKey); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, false, endKey, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, false, endKey, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, true, endKey, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(null, true, endKey, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, false, null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, false, null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, true, null, false); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } try { keySet.subSet(startKey, true, null, true); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } } public void test_AscendingSubMapKeySet_lower() { NavigableSet keySet; Iterator iterator; String key, lowerKey; int value, lowerValue; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); iterator = keySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) keySet.lower(key); if (value > 101) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value - 1, lowerValue); } else { assertNull(lowerKey); } } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); iterator = keySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) keySet.lower(key); if (value > 101) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value - 1, lowerValue); } else { assertNull(lowerKey); } } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); iterator = keySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) keySet.lower(key); if (value > 100) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value - 1, lowerValue); } else { assertNull(lowerKey); } } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); iterator = keySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) keySet.lower(key); if (value > 100) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value - 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); iterator = keySet.iterator(); iterator.next();// 0 String expectedLowerKey = (String) iterator.next();// 1 assertEquals(expectedLowerKey, keySet.lower(iterator.next())); try { keySet.lower(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); keySet = tm.headMap(key, true).navigableKeySet(); assertNull(keySet.lower(key)); key = new Integer(0).toString(); keySet = tm.headMap(key, false).navigableKeySet(); assertNull(keySet.lower(key)); key = new Integer(999).toString(); keySet = tm.headMap(key, true).navigableKeySet(); assertNotNull(keySet.lower(key)); key = new Integer(999).toString(); keySet = tm.headMap(key, false).navigableKeySet(); assertNotNull(keySet.lower(key)); } public void test_AscendingSubMapKeySet_higher() { NavigableSet keySet; Iterator iterator; String key, lowerKey; int value, lowerValue; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); iterator = keySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) keySet.higher(key); if (value < 108) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); iterator = keySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) keySet.higher(key); if (value < 109) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); iterator = keySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) keySet.higher(key); if (value < 108) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); iterator = keySet.iterator(); while (iterator.hasNext()) { key = (String) iterator.next(); value = Integer.valueOf(key); lowerKey = (String) keySet.higher(key); if (value < 109) { lowerValue = Integer.valueOf(lowerKey); assertEquals(value + 1, lowerValue); } else { assertNull(lowerKey); } } key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); iterator = keySet.iterator(); iterator.next();// 0 iterator.next();// 1 lowerKey = (String) keySet.higher(iterator.next()); String expectedLowerKey = (String) iterator.next(); assertEquals(expectedLowerKey, lowerKey); try { keySet.higher(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); keySet = tm.headMap(key, true).navigableKeySet(); assertNull(keySet.higher(key)); key = new Integer(0).toString(); keySet = tm.headMap(key, false).navigableKeySet(); assertNull(keySet.higher(key)); key = new Integer(999).toString(); keySet = tm.headMap(key, true).navigableKeySet(); assertNull(keySet.higher(key)); key = new Integer(999).toString(); keySet = tm.headMap(key, false).navigableKeySet(); assertNull(keySet.higher(key)); } public void test_AscendingSubMapKeySet_ceiling() { NavigableSet keySet; String key; String[] keyArray; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); keyArray = (String[]) keySet.toArray(new String[keySet.size()]); for (int i = 0, j = 101; i < keyArray.length; i++) { key = (String) keySet.ceiling(keyArray[i]); assertEquals(new Integer(i + j).toString(), key); } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); keyArray = (String[]) keySet.toArray(new String[keySet.size()]); for (int i = 0, j = 101; i < keyArray.length; i++) { key = (String) keySet.ceiling(keyArray[i]); assertEquals(new Integer(i + j).toString(), key); } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); keyArray = (String[]) keySet.toArray(new String[keySet.size()]); for (int i = 0, j = 100; i < keyArray.length; i++) { key = (String) keySet.ceiling(keyArray[i]); assertEquals(new Integer(i + j).toString(), key); } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); keyArray = (String[]) keySet.toArray(new String[keySet.size()]); for (int i = 0, j = 100; i < keyArray.length; i++) { key = (String) keySet.ceiling(keyArray[i]); assertEquals(new Integer(i + j).toString(), key); } key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); Iterator iterator = keySet.iterator(); iterator.next(); assertEquals(new Integer(1).toString(), keySet.ceiling(iterator.next())); try { keySet.ceiling(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); keySet = tm.headMap(key, true).navigableKeySet(); assertEquals(key, keySet.ceiling(key)); key = new Integer(0).toString(); keySet = tm.headMap(key, false).navigableKeySet(); assertNull(keySet.higher(key)); key = new Integer(999).toString(); keySet = tm.headMap(key, true).navigableKeySet(); assertNull(keySet.higher(key)); key = new Integer(999).toString(); keySet = tm.headMap(key, false).navigableKeySet(); assertNull(keySet.higher(key)); } public void test_AscendingSubMapKeySet_floor() { NavigableSet keySet; String key; String[] keyArray; keySet = navigableMap_startExcluded_endExcluded.navigableKeySet(); keyArray = (String[]) keySet.toArray(new String[keySet.size()]); for (int i = 0, j = 101; i < keyArray.length; i++) { key = (String) keySet.floor(keyArray[i]); assertEquals(new Integer(i + j).toString(), key); } keySet = navigableMap_startExcluded_endIncluded.navigableKeySet(); keyArray = (String[]) keySet.toArray(new String[keySet.size()]); for (int i = 0, j = 101; i < keyArray.length; i++) { key = (String) keySet.floor(keyArray[i]); assertEquals(new Integer(i + j).toString(), key); } keySet = navigableMap_startIncluded_endExcluded.navigableKeySet(); keyArray = (String[]) keySet.toArray(new String[keySet.size()]); for (int i = 0, j = 100; i < keyArray.length; i++) { key = (String) keySet.floor(keyArray[i]); assertEquals(new Integer(i + j).toString(), key); } keySet = navigableMap_startIncluded_endIncluded.navigableKeySet(); keyArray = (String[]) keySet.toArray(new String[keySet.size()]); for (int i = 0, j = 100; i < keyArray.length; i++) { key = (String) keySet.floor(keyArray[i]); assertEquals(new Integer(i + j).toString(), key); } key = new Integer(2).toString(); keySet = tm.headMap(key, true).navigableKeySet(); Iterator iterator = keySet.iterator(); iterator.next(); assertEquals(new Integer(1).toString(), keySet.floor(iterator.next())); try { keySet.floor(null); fail("should throw NPE"); } catch (NullPointerException e) { // Expected } key = new Integer(0).toString(); keySet = tm.headMap(key, true).navigableKeySet(); assertEquals(key, keySet.floor(key)); key = new Integer(0).toString(); keySet = tm.headMap(key, false).navigableKeySet(); assertNull(keySet.floor(key)); key = new Integer(999).toString(); keySet = tm.headMap(key, true).navigableKeySet(); assertEquals(key, keySet.floor(key)); key = new Integer(999).toString(); keySet = tm.headMap(key, false).navigableKeySet(); assertEquals(new Integer(998).toString(), keySet.floor(key)); } public void test_BoundedEntryIterator_next() { Iterator iterator = subMap_default.entrySet().iterator(); assertTrue(iterator.hasNext()); for (int i = 100; iterator.hasNext(); i++) { assertEquals(i, ((Entry) iterator.next()).getValue()); } try { iterator.next(); fail("should throw java.util.NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } public void test_BoundedKeyIterator_next() { Iterator iterator = subMap_default.keySet().iterator(); assertTrue(iterator.hasNext()); for (int i = 100; iterator.hasNext(); i++) { assertEquals(new Integer(i).toString(), iterator.next()); } try { iterator.next(); fail("should throw java.util.NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } public void test_BoundedValueIterator_next() { String startKey = new Integer(101).toString(); String endKey = new Integer(108).toString(); Collection values = tm.subMap(startKey, endKey).values(); Iterator iter = values.iterator(); for (int i = 101; i < 108; i++) { assertEquals(i, iter.next()); } try { iter.next(); fail("should throw java.util.NoSuchElementException"); } catch (Exception e) { // Expected } } /* * SubMapEntrySet */ public void test_SubMapEntrySet_Constructor() { } public void test_SubMapEntrySet_contains() { // covered in test_SubMapEntrySet_remove } public void test_SubMapEntrySet_iterator() { Set entrySet = subMap_default.entrySet(); Iterator iterator; Entry entry; Integer value = new Integer(100); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(109, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } entrySet = subMap_startExcluded_endExcluded.entrySet(); value = new Integer(101); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(109, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } entrySet = subMap_startExcluded_endIncluded.entrySet(); value = new Integer(101); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(110, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } entrySet = subMap_startIncluded_endExcluded.entrySet(); value = new Integer(100); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(109, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } entrySet = subMap_startIncluded_endIncluded.entrySet(); value = new Integer(100); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(110, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } String startKey = new Integer(-1).toString(); String endKey = new Integer(0).toString(); SortedMap subMap = tm.subMap(startKey, endKey); entrySet = subMap.entrySet(); iterator = entrySet.iterator(); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } endKey = new Integer(1).toString(); subMap = tm.subMap(startKey, endKey); entrySet = subMap.entrySet(); iterator = entrySet.iterator(); assertEquals(0, ((Entry) iterator.next()).getValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } endKey = new Integer(2000).toString(); subMap = tm.subMap(startKey, endKey); entrySet = subMap.entrySet(); iterator = entrySet.iterator(); for (int i = 0; i < subMap.size(); i++) { iterator.next(); } try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } startKey = new Integer(9).toString(); endKey = new Integer(100).toString(); try { tm.subMap(startKey, endKey); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } // With Comparator entrySet = subMap_default_comparator.entrySet(); value = new Integer(100); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(109, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } entrySet = subMap_startExcluded_endExcluded_comparator.entrySet(); value = new Integer(101); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(109, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } entrySet = subMap_startExcluded_endIncluded_comparator.entrySet(); value = new Integer(101); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(110, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } entrySet = subMap_startIncluded_endExcluded_comparator.entrySet(); value = new Integer(100); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(109, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } entrySet = subMap_startIncluded_endIncluded_comparator.entrySet(); value = new Integer(100); for (iterator = entrySet.iterator(); iterator.hasNext(); value++) { entry = (Entry) iterator.next(); assertEquals(value.toString(), entry.getKey()); assertEquals(value, entry.getValue()); } assertEquals(110, value.intValue()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } public void test_SubMapEntrySet_remove() { Set entrySet = subMap_default.entrySet(); assertFalse(entrySet.remove(null)); int size = entrySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = entrySet.iterator(); assertTrue(entrySet.remove(iterator.next())); } entrySet = subMap_startExcluded_endExcluded.entrySet(); assertFalse(entrySet.remove(null)); size = entrySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = entrySet.iterator(); assertTrue(entrySet.remove(iterator.next())); } entrySet = subMap_startExcluded_endIncluded.entrySet(); assertFalse(entrySet.remove(null)); size = entrySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = entrySet.iterator(); assertTrue(entrySet.remove(iterator.next())); } entrySet = subMap_startIncluded_endExcluded.entrySet(); assertFalse(entrySet.remove(null)); size = entrySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = entrySet.iterator(); assertTrue(entrySet.remove(iterator.next())); } entrySet = subMap_startIncluded_endIncluded.entrySet(); assertFalse(entrySet.remove(null)); size = entrySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = entrySet.iterator(); assertTrue(entrySet.remove(iterator.next())); } } public void test_SubMapEntrySet_isEmpty() { assertFalse(subMap_default.entrySet().isEmpty()); assertFalse(subMap_startExcluded_endExcluded.entrySet().isEmpty()); assertFalse(subMap_startExcluded_endIncluded.entrySet().isEmpty()); assertFalse(subMap_startIncluded_endExcluded.entrySet().isEmpty()); assertFalse(subMap_startIncluded_endIncluded.entrySet().isEmpty()); String startKey = new Integer(0).toString(); String endKey = startKey; SortedMap subMap = tm.subMap(startKey, endKey); assertTrue(subMap.entrySet().isEmpty()); startKey = new Integer(-1).toString(); subMap = tm.subMap(startKey, endKey); assertTrue(subMap.entrySet().isEmpty()); endKey = new Integer(1).toString(); subMap = tm.subMap(startKey, endKey); assertFalse(subMap.entrySet().isEmpty()); } public void test_SubMapEntrySet_size() { assertEquals(9, subMap_default.entrySet().size()); assertEquals(8, subMap_startExcluded_endExcluded.entrySet().size()); assertEquals(9, subMap_startExcluded_endIncluded.entrySet().size()); assertEquals(9, subMap_startIncluded_endExcluded.entrySet().size()); assertEquals(10, subMap_startIncluded_endIncluded.entrySet().size()); String startKey = new Integer(0).toString(); String endKey = new Integer(2).toString(); SortedMap subMap = tm.subMap(startKey, endKey); assertEquals(112, subMap.entrySet().size()); startKey = new Integer(0).toString(); endKey = startKey; subMap = tm.subMap(startKey, endKey); assertEquals(0, subMap.entrySet().size()); startKey = new Integer(-1).toString(); endKey = startKey; subMap = tm.subMap(startKey, endKey); assertEquals(0, subMap.entrySet().size()); endKey = new Integer(1).toString(); subMap = tm.subMap(startKey, endKey); assertEquals(1, subMap.entrySet().size()); startKey = new Integer(999).toString(); endKey = startKey; subMap = tm.subMap(startKey, endKey); assertEquals(0, subMap.entrySet().size()); } /* * SubMapKeySet */ public void test_SubMapKeySet_Constructor() { // covered in other test } public void test_SubMapKeySet_iterator() { Set keySet = subMap_default.keySet(); Iterator iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(100 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = subMap_startExcluded_endExcluded.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(101 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = subMap_startExcluded_endIncluded.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(101 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = subMap_startIncluded_endExcluded.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(100 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = subMap_startIncluded_endIncluded.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(100 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } // With Comparator keySet = subMap_default_comparator.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(100 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = subMap_startExcluded_endExcluded_comparator.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(101 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = subMap_startExcluded_endIncluded_comparator.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(101 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = subMap_startIncluded_endExcluded_comparator.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(100 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } keySet = subMap_startIncluded_endIncluded_comparator.keySet(); iterator = keySet.iterator(); for (int i = 0; i < keySet.size(); i++) { assertEquals(new Integer(100 + i).toString(), iterator.next()); } assertFalse(iterator.hasNext()); try { iterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } public void test_SubMapKeySet_isEmpty() { assertFalse(subMap_default.keySet().isEmpty()); assertFalse(subMap_startExcluded_endExcluded.keySet().isEmpty()); assertFalse(subMap_startExcluded_endIncluded.keySet().isEmpty()); assertFalse(subMap_startIncluded_endExcluded.keySet().isEmpty()); assertFalse(subMap_startIncluded_endIncluded.keySet().isEmpty()); String startKey = new Integer(0).toString(); String endKey = startKey; SortedMap subMap = tm.subMap(startKey, endKey); assertTrue(subMap.keySet().isEmpty()); startKey = new Integer(999).toString(); endKey = startKey; subMap = tm.subMap(startKey, endKey); assertTrue(subMap.keySet().isEmpty()); startKey = new Integer(-1).toString(); endKey = new Integer(1).toString(); subMap = tm.subMap(startKey, endKey); assertFalse(subMap.keySet().isEmpty()); endKey = new Integer(0).toString(); subMap = tm.subMap(startKey, endKey); assertTrue(subMap.keySet().isEmpty()); } public void test_SubMapKeySet_contains() { Set keySet = subMap_default.keySet(); try { keySet.contains(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } String key = new Integer(-1).toString(); assertFalse(keySet.contains(key)); key = new Integer(99).toString(); assertFalse(keySet.contains(key)); key = new Integer(100).toString(); assertTrue(keySet.contains(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(keySet.contains(key)); } key = new Integer(109).toString(); assertFalse(keySet.contains(key)); key = new Integer(110).toString(); assertFalse(keySet.contains(key)); key = new Integer(1001).toString(); assertFalse(keySet.contains(key)); keySet = subMap_startExcluded_endExcluded.keySet(); try { keySet.contains(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } key = new Integer(-1).toString(); assertFalse(keySet.contains(key)); key = new Integer(99).toString(); assertFalse(keySet.contains(key)); key = new Integer(100).toString(); assertFalse(keySet.contains(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(keySet.contains(key)); } key = new Integer(109).toString(); assertFalse(keySet.contains(key)); key = new Integer(110).toString(); assertFalse(keySet.contains(key)); key = new Integer(1001).toString(); assertFalse(keySet.contains(key)); keySet = subMap_startExcluded_endIncluded.keySet(); try { keySet.contains(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } key = new Integer(-1).toString(); assertFalse(keySet.contains(key)); key = new Integer(99).toString(); assertFalse(keySet.contains(key)); key = new Integer(100).toString(); assertFalse(keySet.contains(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(keySet.contains(key)); } key = new Integer(109).toString(); assertTrue(keySet.contains(key)); key = new Integer(110).toString(); assertFalse(keySet.contains(key)); key = new Integer(1001).toString(); assertFalse(keySet.contains(key)); keySet = subMap_startIncluded_endExcluded.keySet(); try { keySet.contains(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } key = new Integer(-1).toString(); assertFalse(keySet.contains(key)); key = new Integer(99).toString(); assertFalse(keySet.contains(key)); key = new Integer(100).toString(); assertTrue(keySet.contains(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(keySet.contains(key)); } key = new Integer(109).toString(); assertFalse(keySet.contains(key)); key = new Integer(110).toString(); assertFalse(keySet.contains(key)); key = new Integer(1001).toString(); assertFalse(keySet.contains(key)); keySet = subMap_startIncluded_endIncluded.keySet(); try { keySet.contains(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } key = new Integer(-1).toString(); assertFalse(keySet.contains(key)); key = new Integer(99).toString(); assertFalse(keySet.contains(key)); key = new Integer(100).toString(); assertTrue(keySet.contains(key)); for (int i = 101; i < 109; i++) { key = new Integer(i).toString(); assertTrue(keySet.contains(key)); } key = new Integer(109).toString(); assertTrue(keySet.contains(key)); key = new Integer(110).toString(); assertFalse(keySet.contains(key)); key = new Integer(1001).toString(); assertFalse(keySet.contains(key)); } public void test_SubMapKeySet_size() { assertEquals(9, subMap_default.keySet().size()); assertEquals(8, subMap_startExcluded_endExcluded.keySet().size()); assertEquals(9, subMap_startExcluded_endIncluded.keySet().size()); assertEquals(9, subMap_startIncluded_endExcluded.keySet().size()); assertEquals(10, subMap_startIncluded_endIncluded.keySet().size()); String startKey = new Integer(0).toString(); String endKey = new Integer(2).toString(); SortedMap subMap = tm.subMap(startKey, endKey); assertEquals(112, subMap.keySet().size()); startKey = new Integer(0).toString(); endKey = startKey; subMap = tm.subMap(startKey, endKey); assertEquals(0, subMap.keySet().size()); startKey = new Integer(-1).toString(); endKey = startKey; subMap = tm.subMap(startKey, endKey); assertEquals(0, subMap.keySet().size()); endKey = new Integer(1).toString(); subMap = tm.subMap(startKey, endKey); assertEquals(1, subMap.keySet().size()); startKey = new Integer(999).toString(); endKey = startKey; subMap = tm.subMap(startKey, endKey); assertEquals(0, subMap.keySet().size()); } public void test_SubMapKeySet_remove() { Set keySet = subMap_default.keySet(); try { keySet.remove(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } int size = keySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = keySet.iterator(); assertTrue(keySet.remove(iterator.next())); } keySet = subMap_startExcluded_endExcluded.keySet(); try { keySet.remove(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } size = keySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = keySet.iterator(); assertTrue(keySet.remove(iterator.next())); } keySet = subMap_startExcluded_endIncluded.keySet(); try { keySet.remove(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } size = keySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = keySet.iterator(); assertTrue(keySet.remove(iterator.next())); } keySet = subMap_startIncluded_endExcluded.keySet(); try { keySet.remove(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } size = keySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = keySet.iterator(); assertTrue(keySet.remove(iterator.next())); } keySet = subMap_startIncluded_endIncluded.keySet(); try { keySet.remove(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } size = keySet.size(); for (int i = 0; i < size; i++) { Iterator iterator = keySet.iterator(); assertTrue(keySet.remove(iterator.next())); } } /* * AscendingSubMapEntrySet */ public void test_AscendingSubMapEntrySet_comparator() { Set entrySet; NavigableSet ascendingSubMapEntrySet; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; assertNull(ascendingSubMapEntrySet.comparator()); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; assertNull(ascendingSubMapEntrySet.comparator()); } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; assertNull(ascendingSubMapEntrySet.comparator()); } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; assertNull(ascendingSubMapEntrySet.comparator()); } } public void test_AscendingSubMapEntrySet_descendingSet() { Set entrySet; NavigableSet ascendingSubMapEntrySet, descendingSet; Entry entry; int value; Iterator iterator; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); iterator = descendingSet.iterator(); assertTrue(iterator.hasNext()); for (value = 108; iterator.hasNext(); value--) { entry = (Entry) iterator.next(); assertEquals(value, entry.getValue()); } assertEquals(100, value); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); iterator = descendingSet.iterator(); assertTrue(iterator.hasNext()); for (value = 109; iterator.hasNext(); value--) { entry = (Entry) iterator.next(); assertEquals(value, entry.getValue()); } assertEquals(100, value); } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); iterator = descendingSet.iterator(); assertTrue(iterator.hasNext()); for (value = 108; iterator.hasNext(); value--) { entry = (Entry) iterator.next(); assertEquals(value, entry.getValue()); } assertEquals(99, value); } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; descendingSet = ascendingSubMapEntrySet.descendingSet(); iterator = descendingSet.iterator(); assertTrue(iterator.hasNext()); for (value = 109; iterator.hasNext(); value--) { entry = (Entry) iterator.next(); assertEquals(value, entry.getValue()); } assertEquals(99, value); } } public void test_AscendingSubMapEntrySet_descendingIterator() { Set entrySet; NavigableSet ascendingSubMapEntrySet; Iterator iterator; Entry entry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.descendingIterator(); assertTrue(iterator.hasNext()); for (value = 108; iterator.hasNext(); value--) { entry = (Entry) iterator.next(); assertEquals(value, entry.getValue()); } assertEquals(100, value); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.descendingIterator(); assertTrue(iterator.hasNext()); for (value = 109; iterator.hasNext(); value--) { entry = (Entry) iterator.next(); assertEquals(value, entry.getValue()); } assertEquals(100, value); } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.descendingIterator(); assertTrue(iterator.hasNext()); for (value = 108; iterator.hasNext(); value--) { entry = (Entry) iterator.next(); assertEquals(value, entry.getValue()); } assertEquals(99, value); } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.descendingIterator(); assertTrue(iterator.hasNext()); for (value = 109; iterator.hasNext(); value--) { entry = (Entry) iterator.next(); assertEquals(value, entry.getValue()); } assertEquals(99, value); } String startKey = new Integer(2).toString(); entrySet = tm.headMap(startKey, true).entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.descendingIterator(); assertTrue(iterator.hasNext()); assertEquals(2, ((Entry) iterator.next()).getValue()); } } public void test_AscendingSubMapEntrySet_pollFirst_startExcluded_endExcluded() { Set entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { NavigableSet ascendingSubMapEntrySet = (NavigableSet) entrySet; for (int value = 101; value < 109; value++) { Entry entry = (Entry) ascendingSubMapEntrySet.pollFirst(); assertEquals(value, entry.getValue()); } assertTrue(ascendingSubMapEntrySet.isEmpty()); // should return null if the set is empty. assertNull(ascendingSubMapEntrySet.pollFirst()); } } public void test_AscendingSubMapEntrySet_pollFirst_startExcluded_endIncluded() { Set entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { NavigableSet ascendingSubMapEntrySet = (NavigableSet) entrySet; for (int value = 101; value < 110; value++) { Entry entry = (Entry) ascendingSubMapEntrySet.pollFirst(); assertEquals(value, entry.getValue()); } assertTrue(ascendingSubMapEntrySet.isEmpty()); // should return null if the set is empty. assertNull(ascendingSubMapEntrySet.pollFirst()); } } public void test_AscendingSubMapEntrySet_pollFirst_startIncluded_endExcluded() { Set entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { NavigableSet ascendingSubMapEntrySet = (NavigableSet) entrySet; for (int value = 100; value < 109; value++) { Entry entry = (Entry) ascendingSubMapEntrySet.pollFirst(); assertEquals(value, entry.getValue()); } assertTrue(ascendingSubMapEntrySet.isEmpty()); // should return null if the set is empty. assertNull(ascendingSubMapEntrySet.pollFirst()); } } public void test_AscendingSubMapEntrySet_pollFirst_startIncluded_endIncluded() { Set entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { NavigableSet ascendingSubMapEntrySet = (NavigableSet) entrySet; for (int value = 100; value < 110; value++) { Entry entry = (Entry) ascendingSubMapEntrySet.pollFirst(); assertEquals(value, entry.getValue()); } assertTrue(ascendingSubMapEntrySet.isEmpty()); // should return null if the set is empty. assertNull(ascendingSubMapEntrySet.pollFirst()); } } public void test_AscendingSubMapEntrySet_pollLast_startExcluded_endExcluded() { Set entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { NavigableSet ascendingSubMapEntrySet = (NavigableSet) entrySet; for (int value = 108; value > 100; value--) { Entry entry = (Entry) ascendingSubMapEntrySet.pollLast(); assertEquals(value, entry.getValue()); } assertTrue(ascendingSubMapEntrySet.isEmpty()); // should return null if the set is empty assertNull(ascendingSubMapEntrySet.pollLast()); } // NavigableMap ascendingSubMap = tm.headMap("2", true); // Set entrySet = ascendingSubMap.entrySet(); // Object last; // if (entrySet instanceof NavigableSet) { // last = ((NavigableSet) entrySet).pollLast(); // assertEquals("2=2", last.toString()); // } // // ascendingSubMap = tm.tailMap("2", true); // entrySet = ascendingSubMap.entrySet(); // if (entrySet instanceof NavigableSet) { // last = ((NavigableSet) entrySet).pollLast(); // assertEquals("999=999", last.toString()); // } } public void test_AscendingSubMapEntrySet_pollLast_startExcluded_endIncluded() { Set entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { NavigableSet ascendingSubMapEntrySet = (NavigableSet) entrySet; for (int value = 109; value > 100; value--) { Entry entry = (Entry) ascendingSubMapEntrySet.pollLast(); assertEquals(value, entry.getValue()); } assertTrue(ascendingSubMapEntrySet.isEmpty()); // should return null if the set is empty assertNull(ascendingSubMapEntrySet.pollLast()); } } public void test_AscendingSubMapEntrySet_pollLast_startIncluded_endExcluded() { Set entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { NavigableSet ascendingSubMapEntrySet = (NavigableSet) entrySet; for (int value = 108; value > 99; value--) { Entry entry = (Entry) ascendingSubMapEntrySet.pollLast(); assertEquals(value, entry.getValue()); } assertTrue(ascendingSubMapEntrySet.isEmpty()); // should return null if the set is empty assertNull(ascendingSubMapEntrySet.pollLast()); } } public void test_AscendingSubMapEntrySet_pollLast_startIncluded_endIncluded() { Set entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { NavigableSet ascendingSubMapEntrySet = (NavigableSet) entrySet; for (int value = 109; value > 99; value--) { Entry entry = (Entry) ascendingSubMapEntrySet.pollLast(); assertEquals(value, entry.getValue()); } assertTrue(ascendingSubMapEntrySet.isEmpty()); // should return null if the set is empty assertNull(ascendingSubMapEntrySet.pollLast()); } } public void test_AscendingSubMapEntrySet_headSet() { Set entrySet, headSet; NavigableSet ascendingSubMapEntrySet; Iterator iterator, headSetIterator; Entry entry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); headSet = ascendingSubMapEntrySet.headSet(entry); headSetIterator = headSet.iterator(); for (value = 101; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = ascendingSubMapEntrySet.headSet(entry, false); headSetIterator = headSet.iterator(); for (value = 101; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = ascendingSubMapEntrySet.headSet(entry, true); headSetIterator = headSet.iterator(); for (value = 101; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value - 1); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); headSet = ascendingSubMapEntrySet.headSet(entry); headSetIterator = headSet.iterator(); for (value = 101; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = ascendingSubMapEntrySet.headSet(entry, false); headSetIterator = headSet.iterator(); for (value = 101; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = ascendingSubMapEntrySet.headSet(entry, true); headSetIterator = headSet.iterator(); for (value = 101; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value - 1); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); headSet = ascendingSubMapEntrySet.headSet(entry); headSetIterator = headSet.iterator(); for (value = 100; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = ascendingSubMapEntrySet.headSet(entry, false); headSetIterator = headSet.iterator(); for (value = 100; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = ascendingSubMapEntrySet.headSet(entry, true); headSetIterator = headSet.iterator(); for (value = 100; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value - 1); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); headSet = ascendingSubMapEntrySet.headSet(entry); headSetIterator = headSet.iterator(); for (value = 100; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = ascendingSubMapEntrySet.headSet(entry, false); headSetIterator = headSet.iterator(); for (value = 100; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } headSet = ascendingSubMapEntrySet.headSet(entry, true); headSetIterator = headSet.iterator(); for (value = 100; headSetIterator.hasNext(); value++) { assertEquals(value, ((Entry) headSetIterator.next()) .getValue()); } assertEquals(entry.getValue(), value - 1); try { headSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } // NavigableMap ascendingSubMap = tm.headMap("1", true); // entrySet = ascendingSubMap.entrySet(); // if (entrySet instanceof SortedSet) { // Iterator it = entrySet.iterator(); // it.next(); // Object end = it.next();// 1=1 // Set headSet = ((NavigableSet) entrySet).headSet(end);// inclusive // // false // assertEquals(1, headSet.size()); // } } public void test_AscendingSubMapEntrySet_tailSet() { Set entrySet, tailSet; NavigableSet ascendingSubMapEntrySet; Iterator iterator, tailSetIterator; Entry entry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = entrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); tailSet = ascendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue() + 1; tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(109, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = ascendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue() + 1; tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(109, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = ascendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(109, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = entrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); tailSet = ascendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue() + 1; tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(110, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = ascendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue() + 1; tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(110, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = ascendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(110, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = entrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); tailSet = ascendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue() + 1; tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(109, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = ascendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue() + 1; tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(109, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = ascendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(109, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = entrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); tailSet = ascendingSubMapEntrySet.tailSet(entry); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue() + 1; tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(110, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = ascendingSubMapEntrySet.tailSet(entry, false); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue() + 1; tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(110, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } tailSet = ascendingSubMapEntrySet.tailSet(entry, true); tailSetIterator = tailSet.iterator(); for (value = (Integer) entry.getValue(); tailSetIterator .hasNext(); value++) { assertEquals(value, ((Entry) tailSetIterator.next()) .getValue()); } assertEquals(110, value); try { tailSetIterator.next(); fail("should throw NoSuchElementException"); } catch (NoSuchElementException e) { // Expected } } } // NavigableMap ascendingSubMap = tm.headMap("1", true); // Set entrySet = ascendingSubMap.entrySet(); // if (entrySet instanceof NavigableSet) { // Iterator it = entrySet.iterator(); // Object start = it.next();// 0=0 // Set tailSet = ((NavigableSet) entrySet).tailSet(start);// default // // inclusive // // false // assertEquals(1, tailSet.size()); // } } public void test_AscendingSubMapEntrySet_subSet() { Set entrySet, subSet; NavigableSet ascendingSubMapEntrySet; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; Iterator iteratorStart = ascendingSubMapEntrySet.iterator(); while (iteratorStart.hasNext()) { Entry startEntry = (Entry) iteratorStart.next(); Iterator iteratorEnd = ascendingSubMapEntrySet.iterator(); while (iteratorEnd.hasNext()) { Entry endEntry = (Entry) iteratorEnd.next(); int startIndex = (Integer) startEntry.getValue(); int endIndex = (Integer) endEntry.getValue(); if (startIndex > endIndex) { try { ascendingSubMapEntrySet .subSet(startEntry, endEntry); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { ascendingSubMapEntrySet.subSet(startEntry, false, endEntry, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { ascendingSubMapEntrySet.subSet(startEntry, false, endEntry, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { ascendingSubMapEntrySet.subSet(startEntry, true, endEntry, false); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } try { ascendingSubMapEntrySet.subSet(startEntry, true, endEntry, true); fail("should throw IllegalArgumentException"); } catch (IllegalArgumentException e) { // Expected } } else { subSet = ascendingSubMapEntrySet.subSet(startEntry, endEntry); Iterator subSetIterator = subSet.iterator(); for (int index = startIndex + 1; subSetIterator .hasNext(); index++) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = ascendingSubMapEntrySet.subSet(startEntry, false, endEntry, false); subSetIterator = subSet.iterator(); for (int index = startIndex + 1; subSetIterator .hasNext(); index++) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = ascendingSubMapEntrySet.subSet(startEntry, false, endEntry, true); subSetIterator = subSet.iterator(); for (int index = startIndex + 1; subSetIterator .hasNext(); index++) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = ascendingSubMapEntrySet.subSet(startEntry, true, endEntry, false); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index++) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } subSet = ascendingSubMapEntrySet.subSet(startEntry, true, endEntry, true); subSetIterator = subSet.iterator(); for (int index = startIndex; subSetIterator.hasNext(); index++) { assertEquals(index, ((Entry) subSetIterator.next()) .getValue()); } } } } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; Iterator iterator = entrySet.iterator(); Object startEntry = iterator.next(); iterator.next(); Object endEntry = iterator.next(); subSet = ascendingSubMapEntrySet.subSet(startEntry, endEntry); assertEquals(1, subSet.size()); subSet = ascendingSubMapEntrySet.subSet(startEntry, false, endEntry, false); assertEquals(1, subSet.size()); subSet = ascendingSubMapEntrySet.subSet(startEntry, false, endEntry, true); assertEquals(2, subSet.size()); subSet = ascendingSubMapEntrySet.subSet(startEntry, true, endEntry, false); assertEquals(2, subSet.size()); subSet = ascendingSubMapEntrySet.subSet(startEntry, true, endEntry, true); assertEquals(3, subSet.size()); } } public void test_AscendingSubMapEntrySet_lower() { Set entrySet; NavigableSet ascendingSubMapEntrySet; Iterator iterator; Entry entry, lowerEntry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value > 101) { assertEquals(value - 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value > 101) { assertEquals(value - 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value > 100) { assertEquals(value - 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value > 100) { assertEquals(value - 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = entrySet.iterator(); Entry expectedEntry = (Entry) iterator.next(); entry = (Entry) iterator.next(); assertEquals(expectedEntry, ascendingSubMapEntrySet.lower(entry)); } // With Comparator entrySet = subMap_startExcluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value > 101) { assertEquals(value - 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = subMap_startExcluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value > 101) { assertEquals(value - 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = subMap_startIncluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value > 100) { assertEquals(value - 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = subMap_startIncluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.lower(entry); value = (Integer) entry.getValue(); if (value > 100) { assertEquals(value - 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } } public void test_AscendingSubMapEntrySet_higher() { Set entrySet; NavigableSet ascendingSubMapEntrySet; Iterator iterator; Entry entry, lowerEntry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value < 108) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value < 109) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value < 108) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value < 109) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } String endKey = new Integer(2).toString(); entrySet = tm.headMap(endKey, true).entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = entrySet.iterator(); entry = (Entry) iterator.next(); Entry expectedEntry = (Entry) iterator.next(); assertEquals(expectedEntry, ascendingSubMapEntrySet.higher(entry)); } // With Comparator entrySet = subMap_startExcluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value < 108) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = subMap_startExcluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value < 109) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = subMap_startIncluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value < 108) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } entrySet = subMap_startIncluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.higher(entry); value = (Integer) entry.getValue(); if (value < 109) { assertEquals(value + 1, lowerEntry.getValue()); } else { assertNull(lowerEntry); } } } } public void test_AscendingSubMapEntrySet_ceiling() { Set entrySet; NavigableSet ascendingSubMapEntrySet; Iterator iterator; Set entrySet_beyondBound; Iterator iterator_beyondBound; Entry beyondBoundEntry; Entry entry, lowerEntry; int value = 0; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.ceiling(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.ceiling(entry); value = (Integer) entry.getValue(); assertEquals(value, lowerEntry.getValue()); } assertEquals(108, value); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.ceiling(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.ceiling(entry); value = (Integer) entry.getValue(); assertEquals(value, lowerEntry.getValue()); } assertEquals(109, value); } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.ceiling(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.ceiling(entry); value = (Integer) entry.getValue(); assertEquals(value, lowerEntry.getValue()); } assertEquals(108, value); } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.ceiling(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.ceiling(entry); value = (Integer) entry.getValue(); assertEquals(value, lowerEntry.getValue()); } assertEquals(109, value); } // With Comparator entrySet = subMap_startIncluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.ceiling(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.ceiling(entry); value = (Integer) entry.getValue(); assertEquals(value, lowerEntry.getValue()); } assertEquals(109, value); } entrySet = subMap_startIncluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.ceiling(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.ceiling(entry); value = (Integer) entry.getValue(); assertEquals(value, lowerEntry.getValue()); } assertEquals(108, value); } entrySet = subMap_startExcluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.ceiling(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.ceiling(entry); value = (Integer) entry.getValue(); assertEquals(value, lowerEntry.getValue()); } assertEquals(109, value); } entrySet = subMap_startExcluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.ceiling(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); while (iterator.hasNext()) { entry = (Entry) iterator.next(); lowerEntry = (Entry) ascendingSubMapEntrySet.ceiling(entry); value = (Integer) entry.getValue(); assertEquals(value, lowerEntry.getValue()); } assertEquals(108, value); } } public void test_AscendingSubMapEntrySet_floor() { Set entrySet; NavigableSet ascendingSubMapEntrySet; Iterator iterator; Entry entry, floorEntry; int value; entrySet = navigableMap_startExcluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.floor(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); for (int i = 101; i < 109; i++) { entry = (Entry) iterator.next(); floorEntry = (Entry) ascendingSubMapEntrySet.floor(entry); assertEquals(entry.getValue(), floorEntry.getValue()); } assertFalse(iterator.hasNext()); } entrySet = navigableMap_startExcluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.floor(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); for (int i = 101; i < 110; i++) { entry = (Entry) iterator.next(); floorEntry = (Entry) ascendingSubMapEntrySet.floor(entry); assertEquals(entry.getValue(), floorEntry.getValue()); } assertFalse(iterator.hasNext()); } entrySet = navigableMap_startIncluded_endExcluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.floor(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); for (int i = 100; i < 109; i++) { entry = (Entry) iterator.next(); floorEntry = (Entry) ascendingSubMapEntrySet.floor(entry); assertEquals(entry.getValue(), floorEntry.getValue()); } assertFalse(iterator.hasNext()); } entrySet = navigableMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.floor(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); for (int i = 100; i < 110; i++) { entry = (Entry) iterator.next(); floorEntry = (Entry) ascendingSubMapEntrySet.floor(entry); assertEquals(entry.getValue(), floorEntry.getValue()); } assertFalse(iterator.hasNext()); } // With Comparator entrySet = subMap_startExcluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.floor(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); for (int i = 101; i < 109; i++) { entry = (Entry) iterator.next(); floorEntry = (Entry) ascendingSubMapEntrySet.floor(entry); assertEquals(entry.getValue(), floorEntry.getValue()); } assertFalse(iterator.hasNext()); } entrySet = subMap_startExcluded_endIncluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.floor(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); for (int i = 101; i < 110; i++) { entry = (Entry) iterator.next(); floorEntry = (Entry) ascendingSubMapEntrySet.floor(entry); assertEquals(entry.getValue(), floorEntry.getValue()); } assertFalse(iterator.hasNext()); } entrySet = subMap_startIncluded_endExcluded_comparator.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.floor(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); for (int i = 100; i < 109; i++) { entry = (Entry) iterator.next(); floorEntry = (Entry) ascendingSubMapEntrySet.floor(entry); assertEquals(entry.getValue(), floorEntry.getValue()); } assertFalse(iterator.hasNext()); } entrySet = subMap_startIncluded_endIncluded.entrySet(); if (entrySet instanceof NavigableSet) { ascendingSubMapEntrySet = (NavigableSet) entrySet; try { ascendingSubMapEntrySet.floor(null); fail("should throw NullPointerException"); } catch (NullPointerException e) { // Expected } iterator = ascendingSubMapEntrySet.iterator(); for (int i = 100; i < 110; i++) { entry = (Entry) iterator.next(); floorEntry = (Entry) ascendingSubMapEntrySet.floor(entry); assertEquals(entry.getValue(), floorEntry.getValue()); } assertFalse(iterator.hasNext()); } } @Override protected void setUp() { tm = new TreeMap(); tm_comparator = new TreeMap(new MockComparator()); for (int i = 0; i < objArray.length; i++) { Object x = objArray[i] = new Integer(i); tm.put(x.toString(), x); tm_comparator.put(x.toString(), x); } subMap_default = tm.subMap(objArray[100].toString(), objArray[109] .toString()); subMap_startExcluded_endExcluded = tm.subMap(objArray[100].toString(), false, objArray[109].toString(), false); subMap_startExcluded_endIncluded = tm.subMap(objArray[100].toString(), false, objArray[109].toString(), true); subMap_startIncluded_endExcluded = tm.subMap(objArray[100].toString(), true, objArray[109].toString(), false); subMap_startIncluded_endIncluded = tm.subMap(objArray[100].toString(), true, objArray[109].toString(), true); subMap_default_beforeStart_100 = tm.subMap(objArray[0].toString(), objArray[1].toString()); subMap_default_afterEnd_109 = tm.subMap(objArray[110].toString(), objArray[119].toString()); assertTrue(subMap_startExcluded_endExcluded instanceof NavigableMap); assertTrue(subMap_startExcluded_endIncluded instanceof NavigableMap); assertTrue(subMap_startIncluded_endExcluded instanceof NavigableMap); assertTrue(subMap_startIncluded_endIncluded instanceof NavigableMap); navigableMap_startExcluded_endExcluded = (NavigableMap) subMap_startExcluded_endExcluded; navigableMap_startExcluded_endIncluded = (NavigableMap) subMap_startExcluded_endIncluded; navigableMap_startIncluded_endExcluded = (NavigableMap) subMap_startIncluded_endExcluded; navigableMap_startIncluded_endIncluded = (NavigableMap) subMap_startIncluded_endIncluded; subMap_default_comparator = tm_comparator.subMap(objArray[100] .toString(), objArray[109].toString()); subMap_startExcluded_endExcluded_comparator = tm_comparator.subMap( objArray[100].toString(), false, objArray[109].toString(), false); subMap_startExcluded_endIncluded_comparator = tm_comparator .subMap(objArray[100].toString(), false, objArray[109] .toString(), true); subMap_startIncluded_endExcluded_comparator = tm_comparator .subMap(objArray[100].toString(), true, objArray[109] .toString(), false); subMap_startIncluded_endIncluded_comparator = tm_comparator.subMap( objArray[100].toString(), true, objArray[109].toString(), true); } @Override protected void tearDown() { tm = null; tm_comparator = null; subMap_default = null; subMap_startExcluded_endExcluded = null; subMap_startExcluded_endIncluded = null; subMap_startIncluded_endExcluded = null; subMap_startIncluded_endIncluded = null; subMap_default_beforeStart_100 = null; subMap_default_afterEnd_109 = null; subMap_default_comparator = null; subMap_startExcluded_endExcluded_comparator = null; subMap_startExcluded_endIncluded_comparator = null; subMap_startIncluded_endExcluded_comparator = null; subMap_startIncluded_endIncluded_comparator = null; } public void test_lower_null() throws Exception { NavigableMap map = tm.subMap(objArray[100].toString(), true, objArray[100].toString(), false); assertNull(map.ceilingKey(objArray[100].toString())); assertNull(map.floorKey(objArray[100].toString())); assertNull(map.lowerKey(objArray[100].toString())); assertNull(map.higherKey(objArray[100].toString())); assertNull(map.ceilingKey(objArray[111].toString())); assertNull(map.floorKey(objArray[111].toString())); assertNull(map.lowerKey(objArray[111].toString())); assertNull(map.higherKey(objArray[111].toString())); assertNull(map.ceilingKey(objArray[1].toString())); assertNull(map.floorKey(objArray[1].toString())); assertNull(map.lowerKey(objArray[1].toString())); assertNull(map.higherKey(objArray[1].toString())); map = map.descendingMap(); assertNull(map.ceilingKey(objArray[100].toString())); assertNull(map.floorKey(objArray[100].toString())); assertNull(map.lowerKey(objArray[100].toString())); assertNull(map.higherKey(objArray[100].toString())); assertNull(map.ceilingKey(objArray[111].toString())); assertNull(map.floorKey(objArray[111].toString())); assertNull(map.lowerKey(objArray[111].toString())); assertNull(map.higherKey(objArray[111].toString())); assertNull(map.ceilingKey(objArray[1].toString())); assertNull(map.floorKey(objArray[1].toString())); assertNull(map.lowerKey(objArray[1].toString())); assertNull(map.higherKey(objArray[1].toString())); } public void test_lower_tail() throws Exception { NavigableMap map = tm.subMap(objArray[102].toString(), true, objArray[103].toString(), false); assertTrue(map.containsKey(objArray[102].toString())); assertFalse(map.containsKey(objArray[101].toString())); assertFalse(map.containsKey(objArray[103].toString())); assertFalse(map.containsKey(objArray[104].toString())); map = map.descendingMap(); assertTrue(map.containsKey(objArray[102].toString())); assertFalse(map.containsKey(objArray[101].toString())); assertFalse(map.containsKey(objArray[103].toString())); assertFalse(map.containsKey(objArray[104].toString())); map = tm.subMap(objArray[102].toString(), true, objArray[102] .toString(), false); assertFalse(map.containsKey(objArray[102].toString())); assertFalse(map.containsKey(objArray[101].toString())); assertFalse(map.containsKey(objArray[103].toString())); assertFalse(map.containsKey(objArray[104].toString())); map = map.descendingMap(); assertFalse(map.containsKey(objArray[102].toString())); assertFalse(map.containsKey(objArray[101].toString())); assertFalse(map.containsKey(objArray[103].toString())); assertFalse(map.containsKey(objArray[104].toString())); } public void test_contains_null() throws Exception { NavigableMap map = tm.subMap(objArray[100].toString(), true, objArray[100].toString(), false); assertFalse(map.containsKey(objArray[100].toString())); assertFalse(map.containsKey(objArray[10].toString())); assertFalse(map.containsKey(objArray[101].toString())); assertFalse(map.containsKey(objArray[102].toString())); assertFalse(map.containsKey(objArray[1].toString())); map = map.descendingMap(); assertFalse(map.containsKey(objArray[100].toString())); assertFalse(map.containsKey(objArray[10].toString())); assertFalse(map.containsKey(objArray[101].toString())); assertFalse(map.containsKey(objArray[102].toString())); assertFalse(map.containsKey(objArray[1].toString())); } public void test_contains() throws Exception { NavigableMap map = tm.subMap(objArray[102].toString(), true, objArray[103].toString(), false); assertFalse(map.containsKey(objArray[100].toString())); assertFalse(map.containsKey(objArray[104].toString())); assertFalse(map.containsKey(objArray[101].toString())); assertTrue(map.containsKey(objArray[102].toString())); map = map.descendingMap(); assertFalse(map.containsKey(objArray[100].toString())); assertFalse(map.containsKey(objArray[104].toString())); assertFalse(map.containsKey(objArray[101].toString())); assertTrue(map.containsKey(objArray[102].toString())); } public void test_size() throws Exception { NavigableMap map = tm.subMap(objArray[102].toString(), true, objArray[103].toString(), false); assertEquals(0, map.headMap(objArray[102].toString(), false).size()); assertEquals(1, map.headMap(objArray[102].toString(), true).size()); try { assertEquals(1, map.headMap(objArray[103].toString(), true).size()); fail("should throw IAE"); } catch (IllegalArgumentException e) { } assertEquals(1, map.headMap(objArray[103].toString(), false).size()); assertEquals(1, map.tailMap(objArray[102].toString(), true).size()); assertEquals(0, map.tailMap(objArray[102].toString(), false).size()); assertTrue(map.headMap(objArray[103].toString(), false).containsKey( objArray[102].toString())); try { assertTrue(map.headMap(objArray[103].toString(), true).containsKey( objArray[102].toString())); fail("should throw IAE"); } catch (IllegalArgumentException e) { } assertFalse(map.headMap(objArray[102].toString(), false).containsKey( objArray[102].toString())); assertTrue(map.headMap(objArray[102].toString(), true).containsKey( objArray[102].toString())); assertTrue(map.tailMap(objArray[102].toString(), true).containsKey( objArray[102].toString())); assertFalse(map.tailMap(objArray[102].toString(), true).containsKey( objArray[103].toString())); try { assertEquals(0, map.tailMap(objArray[101].toString()).size()); fail("should throw IAE"); } catch (IllegalArgumentException e) { } map = map.descendingMap(); try { map = map.subMap(objArray[103].toString(), true, objArray[102] .toString(), true); fail("should throw IAE"); } catch (IllegalArgumentException e) { } map = map.subMap(objArray[102].toString(), true, objArray[102] .toString(), true); assertEquals(1, map.headMap(objArray[102].toString(), true).size()); assertEquals(0, map.headMap(objArray[102].toString(), false).size()); try { assertEquals(0, map.headMap(objArray[103].toString(), true).size()); fail("should throw IAE"); } catch (IllegalArgumentException e) { } assertEquals(1, map.tailMap(objArray[102].toString(), true).size()); try { assertFalse(map.headMap(objArray[103].toString(), true) .containsKey(objArray[102].toString())); fail("should throw IAE"); } catch (IllegalArgumentException e) { } assertTrue(map.headMap(objArray[102].toString(), true).containsKey( objArray[102].toString())); assertFalse(map.headMap(objArray[102].toString(), false).containsKey( objArray[102].toString())); assertTrue(map.tailMap(objArray[102].toString(), true).containsKey( objArray[102].toString())); assertFalse(map.tailMap(objArray[102].toString(), true).containsKey( objArray[103].toString())); try { assertEquals(0, map.tailMap(objArray[101].toString()).size()); fail("should throw IAE"); } catch (IllegalArgumentException e) { } } public void test_lower() throws Exception { NavigableMap map = tm.subMap(objArray[102].toString(), true, objArray[103].toString(), false); assertEquals(objArray[102].toString(), map.higherKey(objArray[101] .toString())); assertEquals(null, map.higherKey(objArray[102].toString())); assertEquals(null, map.higherKey(objArray[103].toString())); assertEquals(null, map.higherKey(objArray[104].toString())); assertEquals(objArray[102].toString(), map.ceilingKey(objArray[101] .toString())); assertEquals(objArray[102].toString(), map.ceilingKey(objArray[102] .toString())); assertEquals(null, map.ceilingKey(objArray[103].toString())); assertEquals(null, map.ceilingKey(objArray[104].toString())); assertEquals(null, map.lowerKey(objArray[101].toString())); assertEquals(null, map.lowerKey(objArray[102].toString())); assertEquals(objArray[102].toString(), map.lowerKey(objArray[103] .toString())); assertEquals(objArray[102].toString(), map.lowerKey(objArray[104] .toString())); assertEquals(null, map.floorKey(objArray[101].toString())); assertEquals(objArray[102].toString(), map.floorKey(objArray[102] .toString())); assertEquals(objArray[102].toString(), map.floorKey(objArray[103] .toString())); assertEquals(objArray[102].toString(), map.floorKey(objArray[104] .toString())); map = map.descendingMap(); assertEquals(null, map.higherKey(objArray[101].toString())); assertEquals(null, map.higherKey(objArray[102].toString())); assertEquals(objArray[102].toString(), map.higherKey(objArray[103] .toString())); assertEquals(objArray[102].toString(), map.higherKey(objArray[104] .toString())); assertEquals(null, map.ceilingKey(objArray[101].toString())); assertEquals(objArray[102].toString(), map.ceilingKey(objArray[102] .toString())); assertEquals(objArray[102].toString(), map.ceilingKey(objArray[103] .toString())); assertEquals(objArray[102].toString(), map.ceilingKey(objArray[104] .toString())); assertEquals(objArray[102].toString(), map.lowerKey(objArray[101] .toString())); assertEquals(null, map.lowerKey(objArray[102].toString())); assertEquals(null, map.lowerKey(objArray[103].toString())); assertEquals(null, map.lowerKey(objArray[104].toString())); assertEquals(objArray[102].toString(), map.floorKey(objArray[101] .toString())); assertEquals(objArray[102].toString(), map.floorKey(objArray[102] .toString())); assertEquals(null, map.floorKey(objArray[103].toString())); assertEquals(null, map.floorKey(objArray[104].toString())); } public void test_lowerkey() throws Exception { try { tm.subMap(objArray[100].toString(), true, objArray[100].toString(), false).descendingMap().firstKey(); fail("should throw NoSuchElementException"); } catch (Exception e) { // expected } try { tm.subMap(objArray[100].toString(), true, objArray[100].toString(), false).descendingMap().lastKey(); fail("should throw NoSuchElementException"); } catch (Exception e) { // expected } try { tm.subMap(objArray[100].toString(), true, objArray[100].toString(), false).firstKey(); fail("should throw NoSuchElementException"); } catch (Exception e) { // expected } try { tm.subMap(objArray[100].toString(), true, objArray[100].toString(), false).lastKey(); fail("should throw NoSuchElementException"); } catch (Exception e) { // expected } } public void test_headMap() throws Exception { TreeMap tree = new TreeMap(); tree.put(new Integer(0), null); tree.put(new Integer(1), null); Map submap = tree.subMap(tree.firstKey(), tree.lastKey()); tree.remove(tree.lastKey()); assertEquals(submap, tree); } public void testname() throws Exception { TreeMap nullTree = new TreeMap(new Comparator() { public int compare(Object o1, Object o2) { if (o1 == null) { return o2 == null ? 0 : -1; } return ((String) o1).compareTo((String) o2); } }); nullTree.put(new String("One"), 1); nullTree.put(new String("Two"), 2); nullTree.put(new String("Three"), 3); nullTree.put(new String("Four"), 4); nullTree.put(null, 0); nullTree.subMap(null, "two").size(); } }