Beispiel #1
0
  @Test
  public void testSet_GetBytes() {
    DataAccess da = createDataAccess(name);
    da.create(300);
    assertEquals(128, da.getSegmentSize());
    byte[] bytes = BitUtil.BIG.fromInt(Integer.MAX_VALUE / 3);
    da.setBytes(8, bytes, bytes.length);
    bytes = new byte[4];
    da.getBytes(8, bytes, bytes.length);
    assertEquals(Integer.MAX_VALUE / 3, BitUtil.BIG.toInt(bytes));

    da.setBytes(127, bytes, bytes.length);
    da.getBytes(127, bytes, bytes.length);
    assertEquals(Integer.MAX_VALUE / 3, BitUtil.BIG.toInt(bytes));

    da.close();

    long bytePos = 4294967296L + 11111;
    int segmentSizePower = 24;
    int segmentSizeInBytes = 1 << segmentSizePower;
    int indexDivisor = segmentSizeInBytes - 1;
    int bufferIndex = (int) (bytePos >>> segmentSizePower);
    int index = (int) (bytePos & indexDivisor);
    assertEquals(256, bufferIndex);
    assertEquals(11111, index);
  }