| package com.intellij.util.containers; |
| |
| import junit.framework.Assert; |
| |
| /** |
| * @author Sergey Simonchik |
| */ |
| public class ByteArrayQueueTest { |
| |
| @org.junit.Test |
| public void testSingleAdd() throws Exception { |
| ByteArrayQueue queue = new ByteArrayQueue(0); |
| byte value = 1; |
| queue.add(value); |
| Assert.assertEquals(1, queue.size()); |
| Assert.assertEquals(value, queue.poll()); |
| Assert.assertEquals(-1, queue.poll()); |
| } |
| |
| @org.junit.Test |
| public void testResize1() throws Exception { |
| ByteArrayQueue queue = new ByteArrayQueue(4); |
| byte[] buf = new byte[] {1, 2, 3, 4, 5}; |
| queue.addAll(buf); |
| Assert.assertEquals(queue.size(), buf.length); |
| for (byte b : buf) { |
| Assert.assertEquals(b, queue.poll()); |
| } |
| Assert.assertEquals(-1, queue.poll()); |
| } |
| |
| @org.junit.Test |
| public void testResize2() throws Exception { |
| ByteArrayQueue queue = new ByteArrayQueue(4); |
| byte[] buf = new byte[] {1, 2, 3, 4, 5, 6, 7, 8}; |
| queue.addAll(buf); |
| Assert.assertEquals(queue.size(), buf.length); |
| Assert.assertEquals(buf[0], queue.poll()); |
| Assert.assertEquals(buf[1], queue.poll()); |
| byte v = 9; |
| queue.add(v); |
| queue.add(v); |
| |
| queue.addAll(buf); // array resize with myHead > myTail |
| Assert.assertEquals(queue.size(), buf.length * 2); |
| for (int i = 2; i < buf.length; i++) { |
| Assert.assertEquals(buf[i], queue.poll()); |
| } |
| Assert.assertEquals(v, queue.poll()); |
| Assert.assertEquals(v, queue.poll()); |
| for (byte b : buf) { |
| Assert.assertEquals(b, queue.poll()); |
| } |
| Assert.assertEquals(-1, queue.poll()); |
| } |
| |
| } |