mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +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(20);
|
||||
queue.put(30);
|
||||
assertEquals(10, queue.get()); // First item out
|
||||
assertEquals(20, queue.get()); // Second item out
|
||||
assertEquals(30, queue.get()); // Third item out
|
||||
assertEquals(10, queue.get());
|
||||
assertEquals(20, queue.get());
|
||||
assertEquals(30, queue.get());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInterleavedOperations() {
|
||||
queue.put(10);
|
||||
queue.put(20);
|
||||
assertEquals(10, queue.get()); // Dequeue first item
|
||||
assertEquals(10, queue.get());
|
||||
queue.put(30);
|
||||
assertEquals(20, queue.get()); // Dequeue second item
|
||||
assertEquals(30, queue.get()); // Dequeue third item
|
||||
assertEquals(20, queue.get());
|
||||
assertEquals(30, queue.get());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -62,8 +62,76 @@ public class QueueByTwoStacksTest {
|
||||
|
||||
@Test
|
||||
public void testEmptyQueueException() {
|
||||
assertThrows(NoSuchElementException.class, () -> {
|
||||
queue.get(); // Attempting to dequeue from empty queue
|
||||
});
|
||||
assertThrows(NoSuchElementException.class, () -> queue.get());
|
||||
}
|
||||
|
||||
@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