mirror of
https://github.com/TheAlgorithms/Java.git
synced 2026-03-13 08:40:43 +08:00
testing: improve QueueByTwoStacksTest (#6416)
testing: improve QueueByTwoStacksTest
This commit is contained in:
committed by
GitHub
parent
7c2af29d29
commit
3304cf2e58
@@ -33,19 +33,19 @@ public class QueueByTwoStacksTest {
|
|||||||
queue.put(10);
|
queue.put(10);
|
||||||
queue.put(20);
|
queue.put(20);
|
||||||
queue.put(30);
|
queue.put(30);
|
||||||
assertEquals(10, queue.get()); // First item out
|
assertEquals(10, queue.get());
|
||||||
assertEquals(20, queue.get()); // Second item out
|
assertEquals(20, queue.get());
|
||||||
assertEquals(30, queue.get()); // Third item out
|
assertEquals(30, queue.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testInterleavedOperations() {
|
public void testInterleavedOperations() {
|
||||||
queue.put(10);
|
queue.put(10);
|
||||||
queue.put(20);
|
queue.put(20);
|
||||||
assertEquals(10, queue.get()); // Dequeue first item
|
assertEquals(10, queue.get());
|
||||||
queue.put(30);
|
queue.put(30);
|
||||||
assertEquals(20, queue.get()); // Dequeue second item
|
assertEquals(20, queue.get());
|
||||||
assertEquals(30, queue.get()); // Dequeue third item
|
assertEquals(30, queue.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -62,8 +62,76 @@ public class QueueByTwoStacksTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testEmptyQueueException() {
|
public void testEmptyQueueException() {
|
||||||
assertThrows(NoSuchElementException.class, () -> {
|
assertThrows(NoSuchElementException.class, () -> queue.get());
|
||||||
queue.get(); // Attempting to dequeue from empty queue
|
}
|
||||||
});
|
|
||||||
|
@Test
|
||||||
|
public void testDequeueAllElements() {
|
||||||
|
for (int i = 1; i <= 5; i++) {
|
||||||
|
queue.put(i);
|
||||||
|
}
|
||||||
|
for (int i = 1; i <= 5; i++) {
|
||||||
|
assertEquals(i, queue.get());
|
||||||
|
}
|
||||||
|
assertEquals(0, queue.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLargeNumberOfOperations() {
|
||||||
|
int n = 1000;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
queue.put(i);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
assertEquals(i, queue.get());
|
||||||
|
}
|
||||||
|
assertEquals(0, queue.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRefillDuringDequeue() {
|
||||||
|
queue.put(1);
|
||||||
|
queue.put(2);
|
||||||
|
assertEquals(1, queue.get());
|
||||||
|
queue.put(3);
|
||||||
|
queue.put(4);
|
||||||
|
assertEquals(2, queue.get());
|
||||||
|
assertEquals(3, queue.get());
|
||||||
|
assertEquals(4, queue.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAlternatingPutAndGet() {
|
||||||
|
queue.put(1);
|
||||||
|
assertEquals(1, queue.get());
|
||||||
|
queue.put(2);
|
||||||
|
queue.put(3);
|
||||||
|
assertEquals(2, queue.get());
|
||||||
|
queue.put(4);
|
||||||
|
assertEquals(3, queue.get());
|
||||||
|
assertEquals(4, queue.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSizeStability() {
|
||||||
|
queue.put(100);
|
||||||
|
int size1 = queue.size();
|
||||||
|
int size2 = queue.size();
|
||||||
|
assertEquals(size1, size2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testMultipleEmptyDequeues() {
|
||||||
|
assertThrows(NoSuchElementException.class, () -> queue.get());
|
||||||
|
assertThrows(NoSuchElementException.class, () -> queue.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testQueueWithStrings() {
|
||||||
|
QueueByTwoStacks<String> stringQueue = new QueueByTwoStacks<>();
|
||||||
|
stringQueue.put("a");
|
||||||
|
stringQueue.put("b");
|
||||||
|
assertEquals("a", stringQueue.get());
|
||||||
|
assertEquals("b", stringQueue.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user