/* * Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License, * Version 1.0, and under the Eclipse Public License, Version 1.0 * (http://h2database.com/html/license.html). * Initial Developer: H2 Group */ package org.h2.test.unit; import java.util.Random; import org.h2.test.TestBase; import org.h2.util.IntIntHashMap; /** * Tests the IntHashMap class. */ public class TestIntIntHashMap extends TestBase { private Random rand = new Random(); /** * Run just this test. * * @param a ignored */ public static void main(String... a) throws Exception { TestBase.createCaller().init().test(); } public void test() { IntIntHashMap map = new IntIntHashMap(); map.put(1, 1); map.put(1, 2); assertEquals(1, map.size()); map.put(0, 1); map.put(0, 2); assertEquals(2, map.size()); rand.setSeed(10); test(true); test(false); } private void test(boolean random) { int len = 2000; int[] x = new int[len]; for (int i = 0; i < len; i++) { int key = random ? rand.nextInt() : i; x[i] = key; } IntIntHashMap map = new IntIntHashMap(); for (int i = 0; i < len; i++) { map.put(x[i], i); } for (int i = 0; i < len; i++) { if (map.get(x[i]) != i) { throw new AssertionError("get " + x[i] + " = " + map.get(i) + " should be " + i); } } for (int i = 1; i < len; i += 2) { map.remove(x[i]); } for (int i = 1; i < len; i += 2) { if (map.get(x[i]) != -1) { throw new AssertionError("get " + x[i] + " = " + map.get(i) + " should be <=0"); } } for (int i = 1; i < len; i += 2) { map.put(x[i], i); } for (int i = 0; i < len; i++) { if (map.get(x[i]) != i) { throw new AssertionError("get " + x[i] + " = " + map.get(i) + " should be " + i); } } } }