package ser; import junit.framework.Assert; import org.junit.Test; import org.nustaq.offheap.BinaryQueue; import org.nustaq.offheap.bytez.ByteSink; import org.nustaq.offheap.bytez.onheap.HeapBytez; import java.util.Arrays; /** * Created by ruedi on 09.09.2015. */ public class TestQ { @Test public void simple() { BinaryQueue bq = new BinaryQueue(3); bq.add((byte)1); bq.add((byte)2); bq.add((byte)3); bq.add((byte)4); bq.add((byte)5); bq.add((byte)6); bq.add((byte)7); for (int i = 0; i < 4; i++) { int poll = bq.poll(); System.out.println(poll); Assert.assertTrue(poll==i+1); } System.out.println(bq.capacity()); } @Test public void simpleCycle() { BinaryQueue bq = new BinaryQueue(3); for( int ii = 0; ii < 1_000; ii++ ) { int loop = (int) (Math.random()*32); for (int i = 0; i < loop; i++) { bq.add((byte)i); } Assert.assertTrue(bq.available() == loop); for (int i = 0; i < loop; i++) { int poll = bq.poll(); Assert.assertTrue(poll==i); } Assert.assertTrue(bq.available()==0); } } @Test public void fat() { BinaryQueue bq = new BinaryQueue(3); bq.add(new HeapBytez(new byte[] {1,1,1,1,1}) ); bq.add(new HeapBytez(new byte[] {2,1,1,1,1})); bq.add(new HeapBytez(new byte[] {3,1,1,1,1})); bq.add(new HeapBytez(new byte[] {4,1,1,1,1})); bq.add(new HeapBytez(new byte[] {5,1,1,1,1})); bq.add(new HeapBytez(new byte[] {6,1,1,1,1})); bq.add(new HeapBytez(new byte[] {7,1,1,1,1})); HeapBytez sink = new HeapBytez(new byte[5]); for (int i = 0; i < 7; i++) { long poll = bq.poll(sink,0,5); System.out.println(Arrays.toString(sink.asByteArray())); Assert.assertTrue(sink.get(0) == i + 1); } } @Test public void cycle() { BinaryQueue bq = new BinaryQueue(3); for ( int ii = 0; ii < 20; ii++ ) { bq.add(new HeapBytez(new byte[] {1,1,1,1,1}) ); bq.add(new HeapBytez(new byte[] {2,1,1,1,1})); bq.add(new HeapBytez(new byte[] {3,1,1,1,1})); bq.add(new HeapBytez(new byte[] {4,1,1,1,1})); bq.add(new HeapBytez(new byte[] {5,1,1,1,1})); bq.add(new HeapBytez(new byte[] {6,1,1,1,1})); bq.add(new HeapBytez(new byte[]{7, 1, 1, 1, 1})); HeapBytez sink = new HeapBytez(new byte[5]); for (int i = 0; i < 7; i++) { long poll = bq.poll(sink,0,5); System.out.println(Arrays.toString(sink.asByteArray())); Assert.assertTrue(sink.get(0) == i + 1); } Assert.assertTrue(bq.poll(sink,0,5)==0); } System.out.println(bq.capacity()); } }