@Test
public void testComputeIfAbsent() {

   ConcurrentLongHashMap<Integer> map = new ConcurrentLongHashMap<>(16, 1);
   AtomicInteger counter = new AtomicInteger();
   LongFunction<Integer> provider = key -> counter.getAndIncrement();
   assertEquals(map.computeIfAbsent(0, provider).intValue(), 0);
   assertEquals(map.get(0).intValue(), 0);
   assertEquals(map.computeIfAbsent(1, provider).intValue(), 1);
   assertEquals(map.get(1).intValue(), 1);
   assertEquals(map.computeIfAbsent(1, provider).intValue(), 1);
   assertEquals(map.get(1).intValue(), 1);
   assertEquals(map.computeIfAbsent(2, provider).intValue(), 2);
   assertEquals(map.get(2).intValue(), 2);
}