private <E> void doTest(E[] testData, int buffersNum, int bufferSize, Put<E> put, Get<E> get) { Buffer[] buffers = new Buffer[buffersNum]; for (int i = 0; i < buffers.length; i++) { buffers[i] = mm.allocate(bufferSize); } CompositeBuffer compositeBuffer = createCompositeBuffer(buffers); for (int i = 0; i < testData.length; i++) { put.put(compositeBuffer, testData[i]); } compositeBuffer.flip(); for (int i = 0; i < testData.length; i++) { assertEquals(testData[i], get.get(compositeBuffer)); } }
@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()); } }
@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()); }