forked from TheAlgorithms/Java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPriorityQueuesTest.java
More file actions
114 lines (100 loc) · 3.17 KB
/
PriorityQueuesTest.java
File metadata and controls
114 lines (100 loc) · 3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.thealgorithms.datastructures.queues;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class PriorityQueuesTest {
@Test
void testPQInsertion() {
PriorityQueue myQueue = new PriorityQueue(4);
myQueue.insert(2);
Assertions.assertEquals(myQueue.peek(), 2);
myQueue.insert(5);
myQueue.insert(3);
Assertions.assertEquals(myQueue.peek(), 5);
myQueue.insert(10);
Assertions.assertEquals(myQueue.peek(), 10);
}
@Test
void testPQDeletion() {
PriorityQueue myQueue = new PriorityQueue(4);
myQueue.insert(2);
myQueue.insert(5);
myQueue.insert(3);
myQueue.insert(10);
myQueue.remove();
Assertions.assertEquals(myQueue.peek(), 5);
myQueue.remove();
myQueue.remove();
Assertions.assertEquals(myQueue.peek(), 2);
}
@Test
void testPQExtra() {
PriorityQueue myQueue = new PriorityQueue(4);
Assertions.assertEquals(myQueue.isEmpty(), true);
Assertions.assertEquals(myQueue.isFull(), false);
myQueue.insert(2);
myQueue.insert(5);
Assertions.assertEquals(myQueue.isFull(), false);
myQueue.insert(3);
myQueue.insert(10);
Assertions.assertEquals(myQueue.isEmpty(), false);
Assertions.assertEquals(myQueue.isFull(), true);
myQueue.remove();
Assertions.assertEquals(myQueue.getSize(), 3);
Assertions.assertEquals(myQueue.peek(), 5);
myQueue.remove();
myQueue.remove();
Assertions.assertEquals(myQueue.peek(), 2);
Assertions.assertEquals(myQueue.getSize(), 1);
}
@Test
void testInsertUntilFull() {
PriorityQueue pq = new PriorityQueue(3);
pq.insert(1);
pq.insert(4);
pq.insert(2);
Assertions.assertTrue(pq.isFull());
Assertions.assertEquals(4, pq.peek());
}
@Test
void testRemoveFromEmpty() {
PriorityQueue pq = new PriorityQueue(3);
Assertions.assertThrows(RuntimeException.class, pq::remove);
}
@Test
void testInsertDuplicateValues() {
PriorityQueue pq = new PriorityQueue(5);
pq.insert(5);
pq.insert(5);
pq.insert(3);
Assertions.assertEquals(5, pq.peek());
pq.remove();
Assertions.assertEquals(5, pq.peek());
pq.remove();
Assertions.assertEquals(3, pq.peek());
}
@Test
void testSizeAfterInsertAndRemove() {
PriorityQueue pq = new PriorityQueue(4);
Assertions.assertEquals(0, pq.getSize());
pq.insert(2);
Assertions.assertEquals(1, pq.getSize());
pq.insert(10);
Assertions.assertEquals(2, pq.getSize());
pq.remove();
Assertions.assertEquals(1, pq.getSize());
pq.remove();
Assertions.assertEquals(0, pq.getSize());
}
@Test
void testInsertAndRemoveAll() {
PriorityQueue pq = new PriorityQueue(3);
pq.insert(8);
pq.insert(1);
pq.insert(6);
Assertions.assertTrue(pq.isFull());
pq.remove();
pq.remove();
pq.remove();
Assertions.assertTrue(pq.isEmpty());
}
}