1
1
package com .thealgorithms .datastructures .queues ;
2
2
3
- import static org .junit .jupiter .api .Assertions .assertEquals ;
4
- import static org .junit .jupiter .api .Assertions .assertNull ;
5
- import static org .junit .jupiter .api .Assertions .assertTrue ;
6
-
3
+ import static org .junit .jupiter .api .Assertions .*;
7
4
import org .junit .jupiter .api .Test ;
8
5
9
6
class GenericArrayListQueueTest {
@@ -13,43 +10,87 @@ void testAdd() {
13
10
GenericArrayListQueue <Integer > queue = new GenericArrayListQueue <>();
14
11
assertTrue (queue .add (10 ));
15
12
assertTrue (queue .add (20 ));
13
+ assertEquals (10 , queue .peek ()); // Ensure the first added element is at the front
16
14
}
17
15
18
16
@ Test
19
17
void testPeek () {
20
18
GenericArrayListQueue <Integer > queue = new GenericArrayListQueue <>();
21
- assertNull (queue .peek ());
19
+ assertNull (queue .peek (), "Peek should return null for an empty queue" );
22
20
23
21
queue .add (10 );
24
22
queue .add (20 );
25
23
26
- assertEquals (10 , queue .peek ());
24
+ assertEquals (10 , queue .peek (), "Peek should return the first element (10)" );
27
25
queue .poll ();
28
- assertEquals (20 , queue .peek ());
26
+ assertEquals (20 , queue .peek (), "Peek should return the next element (20) after poll" );
29
27
}
30
28
31
29
@ Test
32
30
void testPoll () {
33
31
GenericArrayListQueue <Integer > queue = new GenericArrayListQueue <>();
34
- assertNull (queue .poll ());
32
+ assertNull (queue .poll (), "Poll should return null for an empty queue" );
35
33
36
34
queue .add (10 );
37
35
queue .add (20 );
38
36
39
- assertEquals (10 , queue .poll ());
40
- assertEquals (20 , queue .poll ());
41
- assertNull (queue .poll ());
37
+ assertEquals (10 , queue .poll (), "Poll should return and remove the first element (10)" );
38
+ assertEquals (20 , queue .poll (), "Poll should return and remove the next element (20)" );
39
+ assertNull (queue .poll (), "Poll should return null when queue is empty after removals" );
42
40
}
43
41
44
42
@ Test
45
43
void testIsEmpty () {
46
44
GenericArrayListQueue <Integer > queue = new GenericArrayListQueue <>();
47
- assertNull (queue .peek ());
48
- assertNull (queue .poll ());
45
+ assertTrue (queue .isEmpty (), "Queue should initially be empty" );
49
46
50
47
queue .add (30 );
51
- assertEquals (30 , queue .peek ());
52
- assertEquals (30 , queue .poll ());
53
- assertNull (queue .peek ());
48
+ assertFalse (queue .isEmpty (), "Queue should not be empty after adding an element" );
49
+ queue .poll ();
50
+ assertTrue (queue .isEmpty (), "Queue should be empty after removing the only element" );
51
+ }
52
+
53
+ @ Test
54
+ void testClearQueueAndReuse () {
55
+ GenericArrayListQueue <Integer > queue = new GenericArrayListQueue <>();
56
+ queue .add (5 );
57
+ queue .add (10 );
58
+ queue .poll ();
59
+ queue .poll (); // Remove all elements
60
+
61
+ assertTrue (queue .isEmpty (), "Queue should be empty after all elements are removed" );
62
+ assertNull (queue .peek (), "Peek should return null on an empty queue after clear" );
63
+ assertTrue (queue .add (15 ), "Queue should be reusable after being emptied" );
64
+ assertEquals (15 , queue .peek (), "Newly added element should be accessible in the empty queue" );
65
+ }
66
+
67
+ @ Test
68
+ void testOrderMaintained () {
69
+ GenericArrayListQueue <String > queue = new GenericArrayListQueue <>();
70
+ queue .add ("First" );
71
+ queue .add ("Second" );
72
+ queue .add ("Third" );
73
+
74
+ assertEquals ("First" , queue .poll (), "Order should be maintained; expected 'First'" );
75
+ assertEquals ("Second" , queue .poll (), "Order should be maintained; expected 'Second'" );
76
+ assertEquals ("Third" , queue .poll (), "Order should be maintained; expected 'Third'" );
77
+ }
78
+
79
+ @ Test
80
+ void testVariousDataTypes () {
81
+ GenericArrayListQueue <Double > queue = new GenericArrayListQueue <>();
82
+ queue .add (1.1 );
83
+ queue .add (2.2 );
84
+
85
+ assertEquals (1.1 , queue .peek (), "Queue should handle Double data type correctly" );
86
+ assertEquals (1.1 , queue .poll (), "Poll should return correct Double value" );
87
+ assertEquals (2.2 , queue .peek (), "Peek should show next Double value in the queue" );
88
+ }
89
+
90
+ @ Test
91
+ void testEmptyPollAndPeekBehavior () {
92
+ GenericArrayListQueue <Integer > queue = new GenericArrayListQueue <>();
93
+ assertNull (queue .peek (), "Peek on an empty queue should return null" );
94
+ assertNull (queue .poll (), "Poll on an empty queue should return null" );
54
95
}
55
96
}
0 commit comments