package test.collection;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import collection.concrete.Queue;
import static util.TestUtil.*;
import junit.framework.TestCase;
public class QueueTest extends TestCase {
private Queue<Integer> myQueue;
@Override
@Before
public void setUp() throws Exception {
myQueue = new Queue<Integer>();
}
@Override
@After
public void tearDown() throws Exception {
myQueue = null;
}
@Test
public void testIsEmpty() {
assertEquals(true, myQueue.isEmpty());
myQueue.enQueue(getRandomNumber());
assertEquals(false, myQueue.isEmpty());
}
@Test
public void testEnQueue() {
enQueueIntWithNatureOrder(myQueue, getRandomNumber());
}
@Test
public void testDeQueue() {
enQueueIntWithNatureOrder(myQueue, getRandomNumber());
int size = myQueue.size();
for (int i = 0; i < size; i++) {
assertEquals(size - i, myQueue.size());
int expect = i;
int actual = myQueue.deQueue();
assertEquals(expect, actual);
}
assertEquals(null, myQueue.deQueue());
assertEquals(null, myQueue.element());
assertEquals(null, myQueue.get(0));
}
@Test
public void testelement() {
int expected = 0;
int element1 = 0;
int repeated = 0;
for (int i = 0; i < 10; i++) {
myQueue.enQueue(i);
expected = i;
element1 = myQueue.element();
assertEquals(expected, element1);
for (int j = 0; j < i; j++) {
repeated = myQueue.element();
assertEquals(expected, repeated);
}
myQueue.deQueue();
}
}
@Test
public void testSize() {
for (int i = 0; i < 10000; i++) {
assertEquals(i, myQueue.size());
myQueue.enQueue(i);
}
}
@Test
public void testAdd() {
for (int i = 0; i < 10; i++) {
myQueue.add(i);
Integer actual = new Integer(myQueue.get(i));
Integer expected = new Integer(i);
assertEquals(expected, actual);
}
}
}