@@ -33,19 +33,19 @@ public void testDequeue() {
3333 queue .put (10 );
3434 queue .put (20 );
3535 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 ());
3939 }
4040
4141 @ Test
4242 public void testInterleavedOperations () {
4343 queue .put (10 );
4444 queue .put (20 );
45- assertEquals (10 , queue .get ()); // Dequeue first item
45+ assertEquals (10 , queue .get ());
4646 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 ());
4949 }
5050
5151 @ Test
@@ -62,8 +62,76 @@ public void testQueueSize() {
6262
6363 @ Test
6464 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 ());
68136 }
69137}
0 commit comments