package edu.stanford.nlp.util; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Random; import junit.framework.TestCase; import edu.stanford.nlp.util.CoreMapTest.IntegerA; /** * Tests for the CoreMaps utilities class. * * @author dramage */ public class CoreMapsTest extends TestCase { /** Tests the map view and extraction */ public void testMaps() { Random random = new Random(); List<CoreMap> maps = new LinkedList<CoreMap>(); for (int i = 0; i < 25; i++) { ArrayCoreMap m = new ArrayCoreMap(); m.set(CoreMapTest.IntegerA.class, random.nextInt()); maps.add(m); } Map<CoreMap,Integer> view = CoreMaps.asMap(maps, IntegerA.class); // test getting and setting for (CoreMap map : maps) { assertTrue(view.containsKey(map)); assertEquals(view.get(map), map.get(IntegerA.class)); Integer v = random.nextInt(); map.set(IntegerA.class, v); assertEquals(view.get(map), v); assertEquals(view.get(map), map.get(IntegerA.class)); } // test iterating and set views assertEquals(new LinkedList<CoreMap>(view.keySet()), maps); for (Map.Entry<CoreMap, Integer> entry : view.entrySet()) { assertEquals(entry.getKey().get(IntegerA.class), entry.getValue()); Integer v = random.nextInt(); entry.setValue(v); assertEquals(entry.getValue(), v); assertEquals(entry.getKey().get(IntegerA.class), v); } } }