blob: 5754468eb4498d809edb4de42031ddddd5d878da [file] [log] [blame]
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();
}
}