1 package test.prefuse.data.util; 2 3 import java.util.Arrays ; 4 import java.util.Iterator ; 5 import java.util.NoSuchElementException ; 6 7 import junit.framework.TestCase; 8 import prefuse.util.collections.IntIterator; 9 import prefuse.util.collections.LiteralIterator; 10 import prefuse.util.collections.ObjectIntTreeMap; 11 12 public class ObjectIntTreeMapTest extends TestCase { 13 14 ObjectIntTreeMap map = new ObjectIntTreeMap(true); 15 int[] keys = { 1, 2, 5, 3, 4, 5, 10 }; 16 int[] sort; 17 18 public ObjectIntTreeMapTest() { 19 sort = (int[])keys.clone(); 20 Arrays.sort(sort); 21 } 22 23 protected void setUp() throws Exception { 24 super.setUp(); 25 for ( int i=0; i<keys.length; ++i ) { 26 map.put(new Integer (keys[i]),keys[i]); 27 } 28 } 29 30 protected void tearDown() throws Exception { 31 super.tearDown(); 32 map.clear(); 33 } 34 35 38 public void testClear() { 39 map.clear(); 40 assertTrue(map.isEmpty()); 41 try { 42 map.keyIterator().next(); 43 fail("Iterator should be empty"); 44 } catch ( NoSuchElementException success ) { 45 } 46 assertEquals(map.get(new Integer (1)),Integer.MIN_VALUE); 47 } 48 49 52 public void testGet() { 53 for ( int i=0; i<map.size(); ++i ) { 54 assertEquals(map.get(new Integer (keys[i])),keys[i]); 55 } 56 } 57 58 61 public void testPut() { 62 map.clear(); 63 int size = 0; 64 for ( int i=0; i<keys.length; ++i ) { 65 map.put(new Integer (keys[i]),keys[i]); 66 assertEquals(++size, map.size()); 67 assertEquals(map.get(new Integer (keys[i])), keys[i]); 68 } 69 } 70 71 74 public void testRemoveInt() { 75 int size = map.size(); 76 for ( int i=0; i<keys.length; ++i ) { 77 int val = map.remove(new Integer (keys[i])); 78 assertEquals(keys[i], val); 79 assertEquals(--size, map.size()); 80 } 81 for ( int i=0; i<keys.length; ++i ) { 82 assertEquals(map.get(new Integer (keys[i])), Integer.MIN_VALUE); 83 } 84 } 85 86 89 public void testFirstKey() { 90 assertEquals(((Integer )map.firstKey()).intValue(), sort[0]); 91 } 92 93 96 public void testLastKey() { 97 assertEquals(((Integer )map.lastKey()).intValue(), sort[sort.length-1]); 98 } 99 100 103 public void testKeyIterator() { 104 Iterator iter = map.keyIterator(); 105 for ( int i=0; iter.hasNext(); ++i ) { 106 Integer key = (Integer )iter.next(); 107 assertEquals(sort[i], key.intValue()); 108 } 109 } 110 111 114 public void testSubMap() { 115 int k1, i1, i2, i, k, len = sort.length-1; 116 for ( i=0, k=sort[0]; k==sort[0]; ++i, k=sort[i] ); 117 k1 = k; i1 = i; 118 for ( i=len, k=sort[len]; i>=0 && k==sort[len]; --i, k=sort[i] ); 119 i2 = i; 120 121 Object loKey = new Integer (k1); 122 Object hiKey = new Integer (sort[len]); 123 124 Iterator iter = map.keyRangeIterator(loKey, true, hiKey, false); 125 for ( i=i1; iter.hasNext() && i <= i2; ++i ) { 126 assertEquals(((Integer )iter.next()).intValue(), sort[i]); 127 } 128 assertTrue(!iter.hasNext() && i == i2+1); 129 130 IntIterator liter = map.valueRangeIterator(loKey, true, hiKey, false); 131 for ( i=i1; liter.hasNext() && i <= i2; ++i ) { 132 assertEquals(liter.nextInt(), sort[i]); 133 } 134 assertTrue(!iter.hasNext() && i == i2+1); 135 } 136 137 140 public void testSize() { 141 assertEquals(map.size(), keys.length); 142 } 143 144 147 public void testIsEmpty() { 148 assertFalse(map.isEmpty()); 149 } 150 151 154 public void testValueIterator() { 155 LiteralIterator iter = map.valueIterator(true); 156 for ( int i=0; iter.hasNext(); ++i ) { 157 int val = iter.nextInt(); 158 assertEquals(sort[i], val); 159 } 160 } 161 162 } 163 | Popular Tags |