### Question:
BigLongIntMap implements LongIntMap { @Override public int put( long key, int value ) { int segment = Math.abs((int) ((key >> 32) ^ key)) % maps.length; return maps[segment].put(key, value); } BigLongIntMap( long maxSize, int noNumber );  BigLongIntMap( long maxSize, int minSegments, int noNumber ); @Override int put( long key, int value ); @Override int get( long key ); long getCapacity(); @Override long getSize(); @Override String toString(); void clear(); @Override int getMemoryUsage(); @Override void optimize();  }### Answer:
@Test public void testPut() { int segments = 10; BigLongIntMap instance = new BigLongIntMap(1000, segments, -1); assertEquals(-1, instance.put(Long.MAX_VALUE / 2, 123)); assertEquals(123, instance.get(Long.MAX_VALUE / 2)); assertEquals(1, instance.getSize()); instance.clear(); for (int i = 0; i < segments; i++) { assertEquals(-1, instance.put(Integer.MAX_VALUE * i, 123)); } assertEquals(segments, instance.getSize()); }