-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmin_heap_test.dart
66 lines (65 loc) · 1.92 KB
/
min_heap_test.dart
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
import "package:test/test.dart";
import "min_heap.dart";
void main() {
group("Min Heap", () {
test("should support size and isEmpty", () {
MinHeap<int> mh = new MinHeap<int>();
expect(mh.size, equals(0));
expect(mh.isEmpty(), equals(true));
});
test("should support insertion", () {
MinHeap<int> mh = new MinHeap<int>();
mh.insert(1);
expect(mh.size, equals(1));
expect(mh.isEmpty(), equals(false));
mh.insert(5);
expect(mh.size, equals(2));
expect(mh.isEmpty(), equals(false));
});
test("peekMin should return the smallest element", () {
MinHeap<int> mh = new MinHeap<int>();
mh.insert(5);
mh.insert(3);
expect(mh.peekMin(), equals(3));
mh.insert(2);
mh.insert(1);
mh.insert(0);
mh.insert(-1);
mh.insert(-2);
mh.insert(-3);
expect(mh.peekMin(), equals(-3));
mh.insert(7);
expect(mh.peekMin(), equals(-3));
});
test("extractMin should return the smallest element", () {
MinHeap<int> mh = new MinHeap<int>();
mh.insert(5);
mh.insert(3);
expect(mh.extractMin(), equals(3));
mh.insert(2);
mh.insert(1);
mh.insert(0);
mh.insert(-1);
mh.insert(-2);
mh.insert(-3);
expect(mh.extractMin(), equals(-3));
mh.insert(7);
expect(mh.extractMin(), equals(-2));
expect(mh.extractMin(), equals(-1));
expect(mh.extractMin(), equals(-0));
mh.insert(6);
expect(mh.extractMin(), equals(1));
expect(mh.extractMin(), equals(2));
expect(mh.extractMin(), equals(5));
expect(mh.extractMin(), equals(6));
expect(mh.extractMin(), equals(7));
// I couldn't get throwsA to work.
try {
mh.extractMin();
expect(true, equals(false), reason: "Should throw EmptyHeapException");
} on EmptyHeapError catch (_) {
expect(true, equals(true));
}
});
});
}