All checks were successful
sample gradle build and test / build (pull_request) Successful in 1m35s
76 lines
2.0 KiB
Java
76 lines
2.0 KiB
Java
package com.hithomelabs.princeton1.module4;
|
|
|
|
import java.util.Iterator;
|
|
import org.junit.jupiter.api.AfterEach;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.DisplayName;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
class ArrayQueueTest {
|
|
|
|
private Queue<Integer> queue;
|
|
|
|
@BeforeEach
|
|
void setUp() {
|
|
queue = new ArrayQueue<Integer>();
|
|
}
|
|
|
|
@AfterEach
|
|
void tearDown() {
|
|
queue = null;
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Empty queue must return size zero")
|
|
public void testEmptyQueueSize(){
|
|
assertEquals(0, queue.size());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Enqueuing must work as expected")
|
|
public void testEnqueue(){
|
|
queue.enqueue(1);
|
|
queue.enqueue(2);
|
|
assertEquals(2,queue.size());
|
|
Iterator<Integer> iterator = queue.iterator();
|
|
assertEquals(1, iterator.next());
|
|
assertEquals(2, iterator.next());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Dequeueing must work as expected")
|
|
public void testDequeue(){
|
|
queue.enqueue(1);
|
|
queue.enqueue(2);
|
|
assertEquals(1, queue.dequeue());
|
|
queue.enqueue(3);
|
|
assertEquals(2, queue.size());
|
|
assertEquals(2, queue.dequeue());
|
|
assertEquals(3, queue.dequeue());
|
|
assertEquals(0, queue.size());
|
|
assertNull(queue.dequeue());
|
|
}
|
|
|
|
@Test
|
|
@DisplayName("Testing resizable array and iterator")
|
|
public void testResize(){
|
|
for(int i = 0; i < 21; i++)
|
|
queue.enqueue(i);
|
|
for(int i = 0; i < 13; i++){
|
|
queue.dequeue();
|
|
}
|
|
assertEquals(13, queue.dequeue());
|
|
assertEquals(7,queue.size());
|
|
Integer[] arr = new Integer[queue.size()];
|
|
Iterator<Integer> iterator = queue.iterator();
|
|
int count = 0;
|
|
while(iterator.hasNext()){
|
|
arr[count++] = iterator.next();
|
|
}
|
|
assertArrayEquals(new Integer[]{14, 15, 16, 17, 18, 19, 20}, arr);
|
|
}
|
|
|
|
} |