Programming Resources
For Fun and Learning
Charles Cusack
Computer Science
Hope College
main

Python
C++

JAVA


PHP
SQL
Assignments

QueueExample


TestQueue.java

import java.util.Iterator;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

/**
 * A simple test program for a queue
 * 
 * @author Chuck Cusack
 * @version 1.0, February 2008
 * @modified Feb 2013 (Updated to use JUnit)
 */
public class TestQueue extends Object {
	@Test
	public void testArrayListqueue() {
		QueueInterface<String> queue = new ArrayListQueue<String>();
		testThisqueue(queue);

	}

	@Test
	public void testLinkedqueue() {
		QueueInterface<String> queue = new LinkedQueue<String>();
		testThisqueue(queue);

	}

	@Test
	public void testArrayqueue() {
		QueueInterface<String> queue = new ArrayQueue<String>(4);
		testThisqueue(queue);

	}

	public void testThisqueue(QueueInterface<String> queue) {

		// It should be empty to start.
		assertTrue(queue.isEmpty());

		// It should definitely not be full.
		assertFalse(queue.isFull());

		// Adding one element makes it neither full nor empty.
		queue.enqueue("blah");
		assertFalse(queue.isEmpty());
		assertFalse(queue.isFull());

		// Add two more elements
		queue.enqueue("foo");
		queue.enqueue("ferzle");


		// Does the iterator work?
		Iterator<String> it = queue.iterator();
		String[] elements = { "blah", "foo", "ferzle" };
		int i = 0;
		while (it.hasNext()) {
			String s = it.next();
			assertEquals(elements[i], s);
			i++;
		}

		// queue should not be full.
		assertFalse(queue.isFull());
		//
		assertEquals("blah", queue.peek());
		assertEquals("blah", queue.dequeue());
		assertEquals("foo", queue.dequeue());
		assertEquals("ferzle", queue.dequeue());
		assertTrue(queue.isEmpty());
	}
}