/*
* LazyHashMapMapTest.java - This file is part of the Jakstab project.
* Copyright 2007-2015 Johannes Kinder <jk@jakstab.org>
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, see <http://www.gnu.org/licenses/>.
*/
package org.jakstab.util;
import static org.junit.Assert.*;
import java.util.Iterator;
import java.util.Map;
import org.jakstab.util.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class LazyHashMapMapTest {
@SuppressWarnings("unused")
private static final Logger logger = Logger
.getLogger(LazyHashMapMapTest.class);
LazyHashMapMap<Integer, Integer, Integer> map1;
LazyHashMapMap<Integer, Integer, Integer> map2;
LazyHashMapMap<Integer, Integer, Integer> map3;
@Before
public void setUp() throws Exception {
map1 = new LazyHashMapMap<Integer, Integer, Integer>();
map1.put(-2, 6, -18);
map1.put(12, -36, 108);
map1.put(12, 14, 50);
map1.put(12, 0, 493);
map1.put(4, -12, 36);
map1.put(4, 22, 33);
map2 = new LazyHashMapMap<Integer, Integer, Integer>(map1);
}
@After
public void tearDown() throws Exception {
}
@Test
public void testLazyHashMapMapLazyHashMapMapOfKLV() {
map3 = new LazyHashMapMap<Integer, Integer, Integer>(map2);
assertEquals(map1, map3);
}
@Test
public void testClear() {
map2.clear();
assertEquals(108, map1.get(12, -36).intValue());
}
@Test
public void testGetSubMap() {
Map<Integer, Integer> twelve = map1.getSubMap(12);
assertEquals(50, twelve.get(14).intValue());
/*
twelve.put(5, 3);
assertEquals(3, map1.get(12, 5).intValue());
assertFalse(map2.containsKey(12, 5));
*/
}
@Test
public void testSubMapIterator() {
for (Iterator<Map.Entry<Integer,Integer>> it = map1.subMapIterator(12);
it.hasNext();) {
Map.Entry<Integer,Integer> entry = it.next();
if (entry.getKey() < 0)
it.remove();
}
assertTrue(map1.containsKey(12, 14));
assertTrue(map1.containsKey(12, 0));
assertFalse(map1.containsKey(12, -36));
assertTrue(map2.containsKey(12, 14));
assertTrue(map2.containsKey(12, 0));
assertTrue(map2.containsKey(12, -36));
}
}