package org.limewire.collection;
import junit.framework.Test;
import org.limewire.util.BaseTestCase;
@SuppressWarnings("unchecked")
public class LongHashMapTest extends BaseTestCase {
public LongHashMapTest(String name) {
super(name);
}
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public static Test suite() {
return buildTestSuite(LongHashMapTest.class);
}
public void testMap() {
LongHashMap map = new LongHashMap();
for(long i = -100; i < 100; i++)
map.put(i, new Long(i));
for(long i = -100; i < 100; i++) {
assertTrue(map.containsKey(i));
assertEquals(new Long(i), map.get(i));
assertEquals(new Long(i), map.remove(i));
}
assertEquals(0, map.size());
}
public void testDowncast() {
LongHashMap map = new LongHashMap();
for(long i = Integer.MIN_VALUE; i > Integer.MIN_VALUE - 1000; i--) {
map.put(i, new Long(i));
map.put((int)i, new Long((int)i));
}
for(long i = Integer.MAX_VALUE; i < Integer.MAX_VALUE + 1000; i++) {
map.put(i, new Long(i));
map.put((int)i, new Long((int)i));
}
for(long i = Integer.MIN_VALUE; i > Integer.MIN_VALUE - 1000; i--) {
assertTrue(map.containsKey(i));
assertTrue(map.containsKey((int)i));
assertNotEquals(i, ((int)i));
assertEquals(new Long(i), map.get(i));
assertEquals(new Long((int)i), map.get((int)i));
assertNotEquals(new Long(i), map.get((int)i));
assertNotEquals(new Long((int)i), map.get(i));
assertEquals(new Long(i), map.remove(i));
assertEquals(new Long((int)i), map.remove((int)i));
}
for(long i = Integer.MAX_VALUE; i < Integer.MAX_VALUE + 1000; i++) {
assertTrue(map.containsKey(i));
assertTrue(map.containsKey((int)i));
assertNotEquals(i, ((int)i));
assertEquals(new Long(i), map.get(i));
assertEquals(new Long((int)i), map.get((int)i));
assertNotEquals(new Long(i), map.get((int)i));
assertNotEquals(new Long((int)i), map.get(i));
assertEquals(new Long(i), map.remove(i));
assertEquals(new Long((int)i), map.remove((int)i));
}
assertEquals(0, map.size());
}
}