package edu.stanford.nlp.util;
import junit.framework.TestCase;
import java.util.Map;
import java.util.HashMap;
import java.util.Random;
/**
* @author Sebastian Riedel
*/
public class DeltaMapTest extends TestCase {
private Map<Integer,Integer> originalMap;
private Map<Integer,Integer> originalCopyMap;
private Map<Integer,Integer> deltaCopyMap;
private Map<Integer,Integer> deltaMap;
private static final int BOUND3 = 100;
private static final int BOUND2 = 90;
private static final int BOUND4 = 110;
private static final int BOUND1 = 10;
@Override
@SuppressWarnings("unchecked")
protected void setUp(){
originalMap = new HashMap<>();
Random r = new Random();
for (int i = 0; i < BOUND3; i++) {
originalMap.put(i, r.nextInt(BOUND3));
}
originalCopyMap = new HashMap<>(originalMap);
deltaCopyMap = new HashMap<>(originalMap);
deltaMap = new DeltaMap(originalMap);
// now make a lot of changes to deltaMap;
// add and change some stuff
for (int i = BOUND2; i < BOUND4; i++) {
Integer rInt = r.nextInt(BOUND3);
//noinspection unchecked
deltaMap.put(i, rInt);
deltaCopyMap.put(i, rInt);
}
// remove some stuff
for (int i = 0; i < BOUND1; i++) {
Integer rInt = r.nextInt(BOUND4);
deltaMap.remove(rInt);
deltaCopyMap.remove(rInt);
}
// set some stuff to null
for (int i = 0; i < BOUND1; i++) {
Integer rInt = r.nextInt(BOUND4);
deltaMap.put(rInt, null);
deltaCopyMap.put(rInt, null);
}
}
public void testOriginalPreserved(){
assertEquals(originalCopyMap,originalMap);
}
public void testDeltaAccurate(){
assertEquals(deltaCopyMap, deltaMap);
}
}