### Question:
NibbleArray { public int get(int index) { int bitStartIndex = index * bitsPreEntry; int arrayStartIndex = bitStartIndex >>> 6; int arrayEndIndex = (bitStartIndex + bitsPreEntry - 1) >>> 6; Validate.inclusiveBetween(0, array.length - 1, arrayEndIndex); int offset = bitStartIndex & 63; if (arrayStartIndex == arrayEndIndex) { return (int) (array[arrayStartIndex] >>> offset & maxEntryValue); } else { return (int) ((array[arrayStartIndex] >>> offset | array[arrayEndIndex] << (64 - offset)) & this.maxEntryValue); } } NibbleArray(int bitsPreEntry, int length); int getBitsPreEntry(); int length(); long getMaxEntryValue(); int get(int index); void set(int index, int value); int getAndSet(int index, int value); int[] toArray(); long[] getBackingArray();  }### Answer:
@Test public void get() { assertArrayEquals(bit8RawArray, bit8Array.toArray()); assertArrayEquals(bit24RawArray, bit24Array.toArray()); assertArrayEquals(bit31RawArray, bit31Array.toArray()); }