Commit f8d205c8 authored by Archie Shahidullah's avatar Archie Shahidullah :expressionless:
Browse files

Update CircularArrayFixedSizeQueueTests.java

parent 86eab90b
1 merge request!1Review Tests for Project 3
Pipeline #36407 canceled with stage
Showing with 49 additions and 1 deletion
+49 -1
......@@ -17,6 +17,7 @@ import java.util.function.Function;
import static edu.caltech.cs2.project03.Project03TestOrdering.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
@Tag("B")
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
......@@ -70,6 +71,13 @@ public class CircularArrayFixedSizeQueueTests implements FixedSizeQueueTests {
Reflection.assertNoPublicFields(CircularArrayFixedSizeQueue.class);
}
@Order(classSpecificTestLevel)
@DisplayName("There are no protected fields")
@Test
public void testNoProtectedFields() {
Reflection.assertNoProtectedFields(LinkedDeque.class);
}
@Order(classSpecificTestLevel)
@DisplayName("The public interface is correct")
@Test
......@@ -158,4 +166,44 @@ public class CircularArrayFixedSizeQueueTests implements FixedSizeQueueTests {
RuntimeInstrumentation.assertAtMost("peek", RuntimeInstrumentation.ComplexityType.CONSTANT, provide, peek, 8);
}
}
\ No newline at end of file
@Order(fixedSizeQueueLevel)
@DisplayName("Test iterator matches reference")
@ParameterizedTest(name = "Test iterator with {1} random values with seed = {0} and fixed array size = {2}")
@CsvSource({
"69, 200, 20", "21, 300, 200"
})
public void testWrapAround(int seed, int numVals, int queueSize) {
Random r = new Random(seed);
Constructor c = Reflection.getConstructor(CircularArrayFixedSizeQueue.class, int.class);
IFixedSizeQueue<Object> me = newFixedSizeQueue(queueSize);
Queue<Object> reference = new java.util.ArrayDeque<>();
assertEquals(queueSize, me.capacity(), "capacity does not match expected value");
for (int i = 0; i < queueSize; i++) {
int num = r.nextInt();
assertEquals(false, me.isFull(), "queue should not be full");
assertEquals(true, me.enqueue(num), "enqueue should be successful");
reference.add(num);
}
for (int i = 0; i < numVals; i++) {
me.enqueue(me.dequeue());
reference.add(reference.remove());
assertEquals(reference.peek(), me.peek(),"return values of peek()s are not equal");
assertEquals(reference.size(), me.size(), "size()s are not equal");
assertEquals(queueSize, me.capacity(), "capacity does not match expected value");
Iterator<Object> meItr = me.iterator();
Iterator<Object> refItr = reference.iterator();
while (meItr.hasNext()) {
if (!refItr.hasNext()) {
fail("Implemented queue has more values than reference queue");
}
assertEquals(refItr.next(), meItr.next(), "next()s are not equal");
}
if (refItr.hasNext()) {
fail("Reference queue has more values than implemented queue");
}
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment