Skip to content

Commit 537acdb

Browse files
committed
Added tests for common.go
1 parent 7cf5247 commit 537acdb

1 file changed

Lines changed: 87 additions & 0 deletions

File tree

common_test.go

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package clusters
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestQueueEmptyWhenCreated(t *testing.T) {
8+
queue := newPriorityQueue(0)
9+
if queue.NotEmpty() {
10+
t.Error("Newly created queue is not empty")
11+
}
12+
}
13+
14+
func TestQueueNowEmptyAfterAdd(t *testing.T) {
15+
queue := newPriorityQueue(0)
16+
17+
queue.Push(&pItem{
18+
v: 0,
19+
p: 0.5,
20+
})
21+
22+
if !queue.NotEmpty() {
23+
t.Error("Queue is empty after a single add")
24+
}
25+
}
26+
27+
func TestQueueReturnsInPriorityOrder(t *testing.T) {
28+
queue := newPriorityQueue(0)
29+
30+
var (
31+
itemOne = &pItem{
32+
v: 0,
33+
p: 0.5,
34+
}
35+
itemTwo = &pItem{
36+
v: 1,
37+
p: 0.6,
38+
}
39+
)
40+
41+
queue.Push(itemTwo)
42+
queue.Push(itemOne)
43+
44+
if queue.Pop().(*pItem) != itemOne {
45+
t.Error("Queue is should return itemOne first")
46+
}
47+
48+
if queue.Pop().(*pItem) != itemTwo {
49+
t.Error("Queue is should return itemTwo next")
50+
}
51+
52+
if queue.NotEmpty() {
53+
t.Error("Queue is not empty")
54+
}
55+
}
56+
57+
func TestQueueReturnsInPriorityOrderAfterUpdate(t *testing.T) {
58+
queue := newPriorityQueue(0)
59+
60+
var (
61+
itemOne = &pItem{
62+
v: 0,
63+
p: 0.5,
64+
}
65+
itemTwo = &pItem{
66+
v: 1,
67+
p: 0.6,
68+
}
69+
)
70+
71+
queue.Push(itemTwo)
72+
queue.Push(itemOne)
73+
74+
queue.Update(itemTwo, 1, 0.4)
75+
76+
if queue.Pop().(*pItem) != itemTwo {
77+
t.Error("Queue is should return itemTwo first")
78+
}
79+
80+
if queue.Pop().(*pItem) != itemOne {
81+
t.Error("Queue is should return itemOne next")
82+
}
83+
84+
if queue.NotEmpty() {
85+
t.Error("Queue is not empty")
86+
}
87+
}

0 commit comments

Comments
 (0)