public void testGetAndIncrement_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.getAndIncrement(key)); assertEquals(1L, map.get(key)); assertEquals(1L, map.getAndDecrement(key)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(0L, map.getAndIncrement(key)); assertEquals(1L, map.get(key)); }
public void testGetAndAdd_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long value = random.nextInt(MAX_ADDEND); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.getAndAdd(key, value)); assertEquals(value, map.get(key)); assertEquals(value, map.getAndAdd(key, -1 * value)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(0L, map.getAndAdd(key, value)); assertEquals(value, map.get(key)); }
public void testConsistentHash_probabilities() { AtomicLongMap<Integer> map = AtomicLongMap.create(); Random r = new Random(9); for (int i = 0; i < ITERS; i++) { countRemaps(r.nextLong(), map); } for (int shard = 2; shard <= MAX_SHARDS; shard++) { // Rough: don't exceed 1.2x the expected number of remaps by more than 20 assertTrue(map.get(shard) <= 1.2 * ITERS / shard + 20); } }
public void testGetAndIncrement() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; for (int i = 0; i < ITERATIONS; i++) { long before = map.get(key); long result = map.getAndIncrement(key); long after = map.get(key); assertEquals(before + 1, after); assertEquals(before, result); } assertEquals(1, map.size()); assertTrue(!map.isEmpty()); assertTrue(map.containsKey(key)); assertEquals(ITERATIONS, (int) map.get(key)); }
public void testGetAndDecrement() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; for (int i = 0; i < ITERATIONS; i++) { long before = map.get(key); long result = map.getAndDecrement(key); long after = map.get(key); assertEquals(before - 1, after); assertEquals(before, result); } assertEquals(1, map.size()); assertTrue(!map.isEmpty()); assertTrue(map.containsKey(key)); assertEquals(-1 * ITERATIONS, (int) map.get(key)); }
public void testAddAndGet_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long value = random.nextInt(MAX_ADDEND); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(value, map.addAndGet(key, value)); assertEquals(value, map.get(key)); assertEquals(0L, map.addAndGet(key, -1 * value)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(value, map.addAndGet(key, value)); assertEquals(value, map.get(key)); }
public void testGetAndAdd() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long addend = random.nextInt(MAX_ADDEND); for (int i = 0; i < ITERATIONS; i++) { long before = map.get(key); long result = map.getAndAdd(key, addend); long after = map.get(key); assertEquals(before + addend, after); assertEquals(before, result); addend = after; } assertEquals(1, map.size()); assertTrue(!map.isEmpty()); assertTrue(map.containsKey(key)); }
public void testGetAndDecrement_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.getAndDecrement(key)); assertEquals(-1L, map.get(key)); assertEquals(-1L, map.getAndIncrement(key)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(0L, map.getAndDecrement(key)); assertEquals(-1L, map.get(key)); }
public void testPut_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long value = random.nextInt(MAX_ADDEND); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.put(key, value)); assertEquals(value, map.get(key)); assertEquals(value, map.put(key, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(0L, map.put(key, value)); assertEquals(value, map.get(key)); }
public void testPutIfAbsent_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long value = random.nextInt(MAX_ADDEND); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.putIfAbsent(key, value)); assertEquals(value, map.get(key)); assertEquals(value, map.put(key, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(0L, map.putIfAbsent(key, value)); assertEquals(value, map.get(key)); }
public void testReplace_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long value = random.nextInt(MAX_ADDEND); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertTrue(map.replace(key, 0L, value)); assertEquals(value, map.get(key)); assertTrue(map.replace(key, value, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertTrue(map.replace(key, 0L, value)); assertEquals(value, map.get(key)); }
public void testIncrementAndGet_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(1L, map.incrementAndGet(key)); assertEquals(1L, map.get(key)); assertEquals(0L, map.decrementAndGet(key)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(1L, map.incrementAndGet(key)); assertEquals(1L, map.get(key)); }
public void testDecrementAndGet_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(-1L, map.decrementAndGet(key)); assertEquals(-1L, map.get(key)); assertEquals(0L, map.incrementAndGet(key)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(-1L, map.decrementAndGet(key)); assertEquals(-1L, map.get(key)); }
public void testIncrementAndGet() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; for (int i = 0; i < ITERATIONS; i++) { long before = map.get(key); long result = map.incrementAndGet(key); long after = map.get(key); assertEquals(before + 1, after); assertEquals(after, result); } assertEquals(1, map.size()); assertTrue(!map.isEmpty()); assertTrue(map.containsKey(key)); assertEquals(ITERATIONS, (int) map.get(key)); }
public void testDecrementAndGet() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; for (int i = 0; i < ITERATIONS; i++) { long before = map.get(key); long result = map.decrementAndGet(key); long after = map.get(key); assertEquals(before - 1, after); assertEquals(after, result); } assertEquals(1, map.size()); assertTrue(!map.isEmpty()); assertTrue(map.containsKey(key)); assertEquals(-1 * ITERATIONS, (int) map.get(key)); }
public void testCreate_map() { Map<String, Long> in = ImmutableMap.of("1", 1L, "2", 2L, "3", 3L); AtomicLongMap<String> map = AtomicLongMap.create(in); assertFalse(map.isEmpty()); assertSame(3, map.size()); assertTrue(map.containsKey("1")); assertTrue(map.containsKey("2")); assertTrue(map.containsKey("3")); assertEquals(1L, map.get("1")); assertEquals(2L, map.get("2")); assertEquals(3L, map.get("3")); }
public void testAddAndGet() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; long addend = random.nextInt(MAX_ADDEND); for (int i = 0; i < ITERATIONS; i++) { long before = map.get(key); long result = map.addAndGet(key, addend); long after = map.get(key); assertEquals(before + addend, after); assertEquals(after, result); addend = after; } assertEquals(1, map.size()); assertTrue(!map.isEmpty()); assertTrue(map.containsKey(key)); }
public void testRemove_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.remove(key)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.put(key, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertEquals(0L, map.remove(key)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); }
public void testRemoveValue_zero() { AtomicLongMap<String> map = AtomicLongMap.create(); String key = "key"; assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertFalse(map.remove(key, 0L)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); assertEquals(0L, map.put(key, 0L)); assertEquals(0L, map.get(key)); assertTrue(map.containsKey(key)); assertTrue(map.remove(key, 0L)); assertEquals(0L, map.get(key)); assertFalse(map.containsKey(key)); }
public void testEmpty() { AtomicLongMap<String> map = AtomicLongMap.create(); assertEquals(0L, map.get("a")); assertEquals(0, map.size()); assertTrue(map.isEmpty()); assertFalse(map.remove("a", 1L)); assertFalse(map.remove("a", 0L)); assertFalse(map.replace("a", 1L, 0L)); }