package test.com.coding.basic.queue;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.coding.basic.queue.CircleQueue;
public class CircleQueueTest {
CircleQueue<Object> qe;;
@Before
public void setup() {
qe = new CircleQueue<>();
}
@Test
public void testIsEmpty() {
Assert.assertEquals(true, qe.isEmpty());
}
@Test
public void testSize() {
for (int i = 0; i < 9; i++) {
qe.enQueue(i);
}
Assert.assertEquals(9, qe.size());
}
@Test//(expected = IndexOutOfBoundsException.class)
public void testEnQueue() {
for (int i = 0; i < 7; i++) {
qe.enQueue(i);
}
Assert.assertEquals("[0,1,2,3,4,5,6]", qe.toString());
//打开下面测试一场
/*for (int i = 7; i < 10; i++) {
qe.enQueue(i);
}*/
}
@Test
public void testDeQueue() {
for (int i = 0; i < 9; i++) {
qe.enQueue(i);
}
Assert.assertEquals(9,qe.size());
Assert.assertEquals(0,qe.deQueue());
Assert.assertEquals("[1,2,3,4,5,6,7,8]", qe.toString());
Assert.assertEquals(8,qe.size());
Assert.assertEquals(1,qe.deQueue());
Assert.assertEquals("[2,3,4,5,6,7,8]", qe.toString());
Assert.assertEquals(7,qe.size());
qe.enQueue(1);
Assert.assertEquals("[2,3,4,5,6,7,8,1]", qe.toString());
Assert.assertEquals(8,qe.size());
qe.enQueue(0);
Assert.assertEquals("[2,3,4,5,6,7,8,1,0]", qe.toString());
Assert.assertEquals(9,qe.size());
for (int i = 0; i < 9; i++) {
qe.deQueue();
qe.enQueue(i);
}
Assert.assertEquals(9,qe.size());
qe.deQueue();qe.deQueue();
Assert.assertEquals(7,qe.size());
qe.enQueue(4);
Assert.assertEquals(8,qe.size());
qe.enQueue(4);
Assert.assertEquals(9,qe.size());
}
}