### Question:
L3GMap { public final boolean put(final long k1, final long k2, final long k3, final T insertValue) { if (keys == null) { reallocate(Constants.MAP_INITIAL_CAPACITY); setKey(0, k1, k2, k3); if (_withValue) { setValue(0, insertValue); } final int hashIndex = abs((int) ((k1 ^ k2 ^ k3) % (capacity * 2))); setHash(hashIndex, 0, capacity); setNext(0, -1); mapSize++; return true; } else { long hashCapacity = capacity * 2; int insertKeyHash = abs((int) ((k1 ^ k2 ^ k3) % hashCapacity)); int currentHash = hash(insertKeyHash, capacity); int m = currentHash; int found = -1; while (m >= 0) { if (k1 == keys[m * GROUP] && k2 == keys[m * GROUP + 1] && k3 == keys[m * GROUP + 2]) { found = m; break; } m = next(m); } if (found == -1) { final int lastIndex = mapSize; if (lastIndex == capacity) { reallocate(capacity * 2); hashCapacity = capacity * 2; insertKeyHash = abs((int) ((k1 ^ k2 ^ k3) % hashCapacity)); currentHash = hash(insertKeyHash, capacity); } setKey(lastIndex, k1, k2, k3); if (_withValue) { setValue(lastIndex, insertValue); } setHash(insertKeyHash, lastIndex, capacity); setNext(lastIndex, currentHash); mapSize++; return true; } else { if (_withValue) { if (value(found) != insertValue) { setValue(found, insertValue); return true; } } } return false; } } L3GMap(final boolean withValue); final boolean contains(final long k1, final long k2, final long k3); final T get(final long k1, final long k2, final long k3); final int size(); final boolean put(final long k1, final long k2, final long k3, final T insertValue); static final int GROUP; public long[] keys; }### Answer:
@Test public void insetTest() { L3GMap map = new L3GMap(true); map.put(0, -9007199254740990L, 6047313952769L, ""); }