Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3-pq
Commits
528751cd
Commit
528751cd
authored
Oct 30, 2019
by
Dirk McCormick
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test: add Peek() tests
parent
c506dea4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
0 deletions
+8
-0
pq_test.go
pq_test.go
+8
-0
No files found.
pq_test.go
View file @
528751cd
...
@@ -51,10 +51,12 @@ func TestCorrectnessOfPop(t *testing.T) {
...
@@ -51,10 +51,12 @@ func TestCorrectnessOfPop(t *testing.T) {
q
.
Push
(
&
e
)
q
.
Push
(
&
e
)
}
}
var
priorities
[]
int
var
priorities
[]
int
var
peekPriorities
[]
int
for
q
.
Len
()
>
0
{
for
q
.
Len
()
>
0
{
i
:=
q
.
Pop
()
.
(
*
TestElem
)
.
Priority
i
:=
q
.
Pop
()
.
(
*
TestElem
)
.
Priority
t
.
Logf
(
"popped %v"
,
i
)
t
.
Logf
(
"popped %v"
,
i
)
priorities
=
append
(
priorities
,
i
)
priorities
=
append
(
priorities
,
i
)
peekPriorities
=
append
(
peekPriorities
,
i
)
}
}
if
!
sort
.
IntsAreSorted
(
priorities
)
{
if
!
sort
.
IntsAreSorted
(
priorities
)
{
t
.
Fatal
(
"the values were not returned in sorted order"
)
t
.
Fatal
(
"the values were not returned in sorted order"
)
...
@@ -73,12 +75,18 @@ func TestUpdate(t *testing.T) {
...
@@ -73,12 +75,18 @@ func TestUpdate(t *testing.T) {
q
.
Push
(
middle
)
q
.
Push
(
middle
)
q
.
Push
(
highest
)
q
.
Push
(
highest
)
q
.
Push
(
lowest
)
q
.
Push
(
lowest
)
if
q
.
Peek
()
.
(
*
TestElem
)
.
Key
!=
highest
.
Key
{
t
.
Fatal
(
"head element doesn't have the highest priority"
)
}
if
q
.
Pop
()
.
(
*
TestElem
)
.
Key
!=
highest
.
Key
{
if
q
.
Pop
()
.
(
*
TestElem
)
.
Key
!=
highest
.
Key
{
t
.
Fatal
(
"popped element doesn't have the highest priority"
)
t
.
Fatal
(
"popped element doesn't have the highest priority"
)
}
}
q
.
Push
(
highest
)
// re-add the popped element
q
.
Push
(
highest
)
// re-add the popped element
highest
.
Priority
=
0
// update the PQ
highest
.
Priority
=
0
// update the PQ
q
.
Update
(
highest
.
Index
())
// fix the PQ
q
.
Update
(
highest
.
Index
())
// fix the PQ
if
q
.
Peek
()
.
(
*
TestElem
)
.
Key
!=
middle
.
Key
{
t
.
Fatal
(
"middle element should now have the highest priority"
)
}
if
q
.
Pop
()
.
(
*
TestElem
)
.
Key
!=
middle
.
Key
{
if
q
.
Pop
()
.
(
*
TestElem
)
.
Key
!=
middle
.
Key
{
t
.
Fatal
(
"middle element should now have the highest priority"
)
t
.
Fatal
(
"middle element should now have the highest priority"
)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment