tikhomirov@278: /* tikhomirov@278: * Copyright (c) 2011 TMate Software Ltd tikhomirov@278: * tikhomirov@278: * This program is free software; you can redistribute it and/or modify tikhomirov@278: * it under the terms of the GNU General Public License as published by tikhomirov@278: * the Free Software Foundation; version 2 of the License. tikhomirov@278: * tikhomirov@278: * This program is distributed in the hope that it will be useful, tikhomirov@278: * but WITHOUT ANY WARRANTY; without even the implied warranty of tikhomirov@278: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the tikhomirov@278: * GNU General Public License for more details. tikhomirov@278: * tikhomirov@278: * For information on how to redistribute this software under tikhomirov@278: * the terms of a license other than GNU General Public License tikhomirov@278: * contact TMate Software at support@hg4j.com tikhomirov@278: */ tikhomirov@278: package org.tmatesoft.hg.test; tikhomirov@278: tikhomirov@278: import static org.junit.Assert.assertEquals; tikhomirov@278: tikhomirov@415: import java.util.HashMap; tikhomirov@415: import java.util.Iterator; tikhomirov@415: import java.util.Map; tikhomirov@415: import java.util.Map.Entry; tikhomirov@415: tikhomirov@278: import org.junit.Test; tikhomirov@278: import org.tmatesoft.hg.internal.IntMap; tikhomirov@278: tikhomirov@278: /** tikhomirov@278: * tikhomirov@278: * @author Artem Tikhomirov tikhomirov@278: * @author TMate Software Ltd. tikhomirov@278: */ tikhomirov@278: public class TestIntMap { tikhomirov@278: tikhomirov@278: public static void main(String[] args) { tikhomirov@278: TestIntMap t = new TestIntMap(); tikhomirov@278: t.testBasic(); tikhomirov@278: } tikhomirov@278: tikhomirov@278: @Test tikhomirov@278: public void testBasic() { tikhomirov@278: IntMap m = new IntMap(2); tikhomirov@278: m.put(18, "18"); tikhomirov@278: m.put(1, "1"); tikhomirov@278: m.put(9, "9"); tikhomirov@278: m.put(20, "20"); tikhomirov@278: m.put(2, "2"); tikhomirov@278: m.put(3, "3"); tikhomirov@278: m.put(21, "21"); tikhomirov@278: m.put(15, "15"); tikhomirov@278: m.put(12, "12"); tikhomirov@278: m.put(11, "11"); tikhomirov@278: m.put(31, "31"); tikhomirov@278: assertEquals(11, m.size()); tikhomirov@278: assertEquals(1, m.firstKey()); tikhomirov@278: assertEquals(31, m.lastKey()); tikhomirov@278: int actualCount = 0; tikhomirov@278: for (int i = m.firstKey(); i <= m.lastKey(); i++) { tikhomirov@278: if (m.containsKey(i)) { tikhomirov@278: actualCount++; tikhomirov@278: assertEquals(m.get(i), Integer.toString(i)); tikhomirov@278: } tikhomirov@278: } tikhomirov@278: assertEquals(m.size(), actualCount); tikhomirov@278: } tikhomirov@415: tikhomirov@415: @Test tikhomirov@415: public void testIterators() { tikhomirov@415: IntMap m = new IntMap(20); tikhomirov@415: for (int i = 0; i <= 30; i+= 5) { tikhomirov@415: m.put(i, Boolean.TRUE); tikhomirov@415: } tikhomirov@415: HashMap hm = new HashMap(); tikhomirov@415: for (Iterator> it = m.entryIterator(); it.hasNext(); ) { tikhomirov@415: Entry next = it.next(); tikhomirov@415: hm.put(next.getKey(), next.getValue()); tikhomirov@415: } tikhomirov@415: assertEquals(m.size(), hm.size()); tikhomirov@415: for (int i = 0; i <= 30; i++) { tikhomirov@415: assertEquals(m.get(i), hm.get(i)); tikhomirov@415: } tikhomirov@415: // tikhomirov@415: HashMap hm2 = new HashMap(); tikhomirov@415: m.fill(hm2); tikhomirov@415: assertEquals(hm, hm2); tikhomirov@415: } tikhomirov@278: }