]> Cypherpunks repositories - gostls13.git/commitdiff
container/heap/heap_test.go: remove container/vector
authorRob Pike <r@golang.org>
Mon, 22 Aug 2011 03:55:22 +0000 (13:55 +1000)
committerRob Pike <r@golang.org>
Mon, 22 Aug 2011 03:55:22 +0000 (13:55 +1000)
R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/4919044

src/pkg/container/heap/heap_test.go

index c5c1f76e1e1e5a0248bb64994969b17d4eabaac4..6625e3a2b0f8db13c581c7857241f0f066be522d 100644 (file)
@@ -6,32 +6,46 @@ package heap_test
 
 import (
        "testing"
-       "container/vector"
        . "container/heap"
 )
 
-type myHeap struct {
-       // A vector.Vector implements sort.Interface except for Less,
-       // and it implements Push and Pop as required for heap.Interface.
-       vector.Vector
+type myHeap []int
+
+func (h *myHeap) Less(i, j int) bool {
+       return (*h)[i] < (*h)[j]
+}
+
+func (h *myHeap) Swap(i, j int) {
+       (*h)[i], (*h)[j] = (*h)[j], (*h)[i]
+}
+
+func (h *myHeap) Len() int {
+       return len(*h)
+}
+
+func (h *myHeap) Pop() (v interface{}) {
+       *h, v = (*h)[:h.Len()-1], (*h)[h.Len()-1]
+       return
 }
 
-func (h *myHeap) Less(i, j int) bool { return h.At(i).(int) < h.At(j).(int) }
+func (h *myHeap) Push(v interface{}) {
+       *h = append(*h, v.(int))
+}
 
-func (h *myHeap) verify(t *testing.T, i int) {
+func (h myHeap) verify(t *testing.T, i int) {
        n := h.Len()
        j1 := 2*i + 1
        j2 := 2*i + 2
        if j1 < n {
                if h.Less(j1, i) {
-                       t.Errorf("heap invariant invalidated [%d] = %d > [%d] = %d", i, h.At(i), j1, h.At(j1))
+                       t.Errorf("heap invariant invalidated [%d] = %d > [%d] = %d", i, h[i], j1, h[j1])
                        return
                }
                h.verify(t, j1)
        }
        if j2 < n {
                if h.Less(j2, i) {
-                       t.Errorf("heap invariant invalidated [%d] = %d > [%d] = %d", i, h.At(i), j1, h.At(j2))
+                       t.Errorf("heap invariant invalidated [%d] = %d > [%d] = %d", i, h[i], j1, h[j2])
                        return
                }
                h.verify(t, j2)