### Question:
ConcurrentLongLongHashMap { public long computeIfAbsent(long key, LongLongFunction provider) { checkBiggerEqualZero(key); checkNotNull(provider); long h = hash(key); return getSection(h).put(key, ValueNotFound, (int) h, true, provider); } ConcurrentLongLongHashMap();  ConcurrentLongLongHashMap(int expectedItems);  ConcurrentLongLongHashMap(int expectedItems, int concurrencyLevel); long size(); long capacity(); boolean isEmpty(); long get(long key); boolean containsKey(long key); long put(long key, long value); long putIfAbsent(long key, long value); long computeIfAbsent(long key, LongLongFunction provider); long addAndGet(long key, long delta); boolean compareAndSet(long key, long currentValue, long newValue); long remove(long key); boolean remove(long key, long value); int removeIf(LongPredicate filter); int removeIf(LongLongPredicate filter); void clear(); void forEach(BiConsumerLong processor); List<Long> keys(); List<Long> values(); Map<Long, Long> asMap();  }### Answer:
@Test public void testComputeIfAbsent() { ConcurrentLongLongHashMap map = new ConcurrentLongLongHashMap(16, 1); AtomicLong counter = new AtomicLong(); LongLongFunction provider = new LongLongFunction() { public long apply(long key) { return counter.getAndIncrement(); } }; assertEquals(map.computeIfAbsent(0, provider), 0); assertEquals(map.get(0), 0); assertEquals(map.computeIfAbsent(1, provider), 1); assertEquals(map.get(1), 1); assertEquals(map.computeIfAbsent(1, provider), 1); assertEquals(map.get(1), 1); assertEquals(map.computeIfAbsent(2, provider), 2); assertEquals(map.get(2), 2); }