/*
* Copyright (C) 2011-2016 Markus Junginger, greenrobot (http://greenrobot.org)
*
* This file is part of greenDAO Generator.
*
* greenDAO Generator is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* greenDAO Generator 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 for more details.
*
* You should have received a copy of the GNU General Public License
* along with greenDAO Generator. If not, see <http://www.gnu.org/licenses/>.
*/
package org.greenrobot.greendao.daotest;
import java.util.Random;
import junit.framework.TestCase;
import org.greenrobot.greendao.internal.LongHashMap;
public class LongHashMapTest extends TestCase {
Random random;
private String traceName;
private long start;
public LongHashMapTest() {
this.random = new Random();
}
public void testLongHashMapSimple() {
LongHashMap<Object> map = new LongHashMap<Object>();
map.put(1l << 33, "OK");
assertNull(map.get(0));
assertEquals("OK", map.get(1l << 33));
long keyLong = 0x7fffffffl << 33l + 14;
assertNull(map.remove(keyLong));
map.put(keyLong, "OK");
assertTrue(map.containsKey(keyLong));
assertEquals("OK", map.remove(keyLong));
keyLong = Long.MAX_VALUE;
map.put(keyLong, "OK");
assertTrue(map.containsKey(keyLong));
keyLong = 8064216579113853113l;
map.put(keyLong, "OK");
assertTrue(map.containsKey(keyLong));
}
public void testLongHashMapRandom() {
LongHashMap<Object> map = new LongHashMap<Object>();
for (int i = 0; i < 5000; i++) {
long key = random.nextLong();
String value = "Value-" + key;
map.put(key, value);
assertTrue("" + key, map.containsKey(key));
int keyInt = (int) key;
String valueInt = "Value-" + keyInt;
map.put(keyInt, valueInt);
assertTrue(map.containsKey(keyInt));
assertEquals(value, map.get(key));
assertEquals(valueInt, map.get(keyInt));
assertEquals(value, map.remove(key));
assertEquals(valueInt, map.remove(keyInt));
assertNull(map.get(key));
assertNull(map.get(keyInt));
}
}
}