package edu.stanford.nlp.util;
import junit.framework.TestCase;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/**
* Tests the ArrayMap class by running it through some standard
* map operations.
*
* @author John Bauer
*/
public class ArrayMapTest extends TestCase {
ArrayMap<String, Integer> map;
HashMap<String, Integer> hmap;
public void setUp() {
map = new ArrayMap<String, Integer>();
hmap = new HashMap<String, Integer>();
map.put("Foo", 5);
map.put("Bar", 50);
map.put("Baz", 500);
hmap.put("Foo", 5);
hmap.put("Bar", 50);
hmap.put("Baz", 500);
}
public void testEquals() {
assertEquals(map, map);
assertTrue(map.equals(map));
assertEquals(map, hmap);
assertEquals(hmap, map);
}
public void testClear() {
assertFalse(map.isEmpty());
map.clear();
assertTrue(map.isEmpty());
map.put("aaa", 5);
assertEquals(1, map.size());
}
public void testPutAll() {
map.clear();
assertTrue(map.isEmpty());
map.putAll(hmap);
testEquals();
HashMap<String, Integer> newmap = new HashMap<String, Integer>();
newmap.putAll(map);
assertEquals(newmap, map);
assertEquals(map, newmap);
}
public void testEntrySet() {
Set<Map.Entry<String, Integer>> entries = map.entrySet();
Map.Entry<String, Integer> entry = entries.iterator().next();
entries.remove(entry);
assertFalse(map.containsKey(entry.getKey()));
assertEquals(2, map.size());
entries.clear();
assertEquals(0, map.size());
assertTrue(map.isEmpty());
}
public void testValues() {
Set<Integer> hmapValues = new HashSet<Integer>();
hmapValues.addAll(hmap.values());
Set<Integer> mapValues = new HashSet<Integer>();
mapValues.addAll(map.values());
assertEquals(hmapValues, mapValues);
}
public void testPutDuplicateValues() {
map.clear();
map.put("Foo", 6);
assertEquals(6, map.get("Foo").intValue());
assertEquals(1, map.size());
map.put("Foo", 5);
assertEquals(5, map.get("Foo").intValue());
assertEquals(1, map.size());
}
}