@@ -33,19 +33,19 @@ public void testDequeue() {
33
33
queue .put (10 );
34
34
queue .put (20 );
35
35
queue .put (30 );
36
- assertEquals (10 , queue .get ()); // First item out
37
- assertEquals (20 , queue .get ()); // Second item out
38
- assertEquals (30 , queue .get ()); // Third item out
36
+ assertEquals (10 , queue .get ());
37
+ assertEquals (20 , queue .get ());
38
+ assertEquals (30 , queue .get ());
39
39
}
40
40
41
41
@ Test
42
42
public void testInterleavedOperations () {
43
43
queue .put (10 );
44
44
queue .put (20 );
45
- assertEquals (10 , queue .get ()); // Dequeue first item
45
+ assertEquals (10 , queue .get ());
46
46
queue .put (30 );
47
- assertEquals (20 , queue .get ()); // Dequeue second item
48
- assertEquals (30 , queue .get ()); // Dequeue third item
47
+ assertEquals (20 , queue .get ());
48
+ assertEquals (30 , queue .get ());
49
49
}
50
50
51
51
@ Test
@@ -62,8 +62,76 @@ public void testQueueSize() {
62
62
63
63
@ Test
64
64
public void testEmptyQueueException () {
65
- assertThrows (NoSuchElementException .class , () -> {
66
- queue .get (); // Attempting to dequeue from empty queue
67
- });
65
+ assertThrows (NoSuchElementException .class , () -> queue .get ());
66
+ }
67
+
68
+ @ Test
69
+ public void testDequeueAllElements () {
70
+ for (int i = 1 ; i <= 5 ; i ++) {
71
+ queue .put (i );
72
+ }
73
+ for (int i = 1 ; i <= 5 ; i ++) {
74
+ assertEquals (i , queue .get ());
75
+ }
76
+ assertEquals (0 , queue .size ());
77
+ }
78
+
79
+ @ Test
80
+ public void testLargeNumberOfOperations () {
81
+ int n = 1000 ;
82
+ for (int i = 0 ; i < n ; i ++) {
83
+ queue .put (i );
84
+ }
85
+ for (int i = 0 ; i < n ; i ++) {
86
+ assertEquals (i , queue .get ());
87
+ }
88
+ assertEquals (0 , queue .size ());
89
+ }
90
+
91
+ @ Test
92
+ public void testRefillDuringDequeue () {
93
+ queue .put (1 );
94
+ queue .put (2 );
95
+ assertEquals (1 , queue .get ());
96
+ queue .put (3 );
97
+ queue .put (4 );
98
+ assertEquals (2 , queue .get ());
99
+ assertEquals (3 , queue .get ());
100
+ assertEquals (4 , queue .get ());
101
+ }
102
+
103
+ @ Test
104
+ public void testAlternatingPutAndGet () {
105
+ queue .put (1 );
106
+ assertEquals (1 , queue .get ());
107
+ queue .put (2 );
108
+ queue .put (3 );
109
+ assertEquals (2 , queue .get ());
110
+ queue .put (4 );
111
+ assertEquals (3 , queue .get ());
112
+ assertEquals (4 , queue .get ());
113
+ }
114
+
115
+ @ Test
116
+ public void testSizeStability () {
117
+ queue .put (100 );
118
+ int size1 = queue .size ();
119
+ int size2 = queue .size ();
120
+ assertEquals (size1 , size2 );
121
+ }
122
+
123
+ @ Test
124
+ public void testMultipleEmptyDequeues () {
125
+ assertThrows (NoSuchElementException .class , () -> queue .get ());
126
+ assertThrows (NoSuchElementException .class , () -> queue .get ());
127
+ }
128
+
129
+ @ Test
130
+ public void testQueueWithStrings () {
131
+ QueueByTwoStacks <String > stringQueue = new QueueByTwoStacks <>();
132
+ stringQueue .put ("a" );
133
+ stringQueue .put ("b" );
134
+ assertEquals ("a" , stringQueue .get ());
135
+ assertEquals ("b" , stringQueue .get ());
68
136
}
69
137
}
0 commit comments