@Override public void put(CompositeBuffer buffer, Byte value) { buffer.put(value); } },
@Test public void testSingleBufferIndexedAccess() { Buffer buffer = mm.allocate(1 + 2 + 2 + 4 + 8 + 4 + 8); CompositeBuffer compositeBuffer = createCompositeBuffer(buffer); byte v1 = (byte) 127; char v2 = 'c'; short v3 = (short) -1; int v4 = Integer.MIN_VALUE; long v5 = Long.MAX_VALUE; float v6 = 0.3f; double v7 = -0.5; compositeBuffer.put(0, v1); compositeBuffer.putChar(1, v2); compositeBuffer.putShort(3, v3); compositeBuffer.putInt(5, v4); compositeBuffer.putLong(9, v5); compositeBuffer.putFloat(17, v6); compositeBuffer.putDouble(21, v7); assertEquals(v1, compositeBuffer.get(0)); assertEquals(v2, compositeBuffer.getChar(1)); assertEquals(v3, compositeBuffer.getShort(3)); assertEquals(v4, compositeBuffer.getInt(5)); assertEquals(v5, compositeBuffer.getLong(9)); assertEquals(v6, v6, compositeBuffer.getFloat(17)); assertEquals(v7, v7, compositeBuffer.getDouble(21)); }
@Test public void testSingleBuffer() { Buffer buffer = mm.allocate(1 + 2 + 2 + 4 + 8 + 4 + 8); CompositeBuffer compositeBuffer = createCompositeBuffer(buffer); byte v1 = (byte) 127; char v2 = 'c'; short v3 = (short) -1; int v4 = Integer.MIN_VALUE; long v5 = Long.MAX_VALUE; float v6 = 0.3f; double v7 = -0.5; compositeBuffer.put(v1); compositeBuffer.putChar(v2); compositeBuffer.putShort(v3); compositeBuffer.putInt(v4); compositeBuffer.putLong(v5); compositeBuffer.putFloat(v6); compositeBuffer.putDouble(v7); compositeBuffer.flip(); assertEquals(v1, compositeBuffer.get()); assertEquals(v2, compositeBuffer.getChar()); assertEquals(v3, compositeBuffer.getShort()); assertEquals(v4, compositeBuffer.getInt()); assertEquals(v5, compositeBuffer.getLong()); assertEquals(v6, v6, compositeBuffer.getFloat()); assertEquals(v7, v7, compositeBuffer.getDouble()); }
@Override public void putIndexed(CompositeBuffer buffer, int index, Byte value) { buffer.put(index, value); } },
private void doTestSplit(int size) { for (int i = 1; i <= size; i++) { final int num = size / i; final int remainder = size - (num * i); int j = 1; try { for (; j <= size; j++) { Buffer[] buffers = new Buffer[num]; for (int k = 0; k < buffers.length; k++) { buffers[k] = mm.allocate(i); } if (remainder > 0) { buffers = Arrays.copyOf(buffers, num + 1); buffers[num] = mm.allocate(remainder); } CompositeBuffer compositeBuffer = createCompositeBuffer(buffers); for (int k = 0; k < compositeBuffer.remaining(); k++) { compositeBuffer.put(k, (byte) (k % 127)); } Buffer slice2 = compositeBuffer.split(j); assertEquals("Slice1 unexpected length", j, compositeBuffer.remaining()); assertEquals("Slice2 unexpected length", size - j, slice2.remaining()); } } catch (Exception e) { throw new IllegalStateException("Exception happened. size=" + size + " chunkSize=" + i + " splitPos=" + j, e); } } }
@Test public void testBuffers() { Buffer sampleBuffer = Buffers.wrap(mm, new byte[]{-1, 0, 1, 1, 2, 3, 4}); Buffer b1 = mm.allocate(3); Buffer b2 = mm.allocate(4); CompositeBuffer compositeBuffer = createCompositeBuffer(b1, b2); compositeBuffer.put(sampleBuffer); compositeBuffer.flip(); sampleBuffer.flip(); while (sampleBuffer.hasRemaining()) { assertEquals(sampleBuffer.get(), compositeBuffer.get()); } }