mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-15 10:12:29 +08:00
test: add unit test for PriorityQueue Enqueue function
This commit is contained in:
@@ -34,6 +34,16 @@ func (q *PriorityQueue[T]) IsFull() bool {
|
|||||||
return q.size == len(q.items)-1
|
return q.size == len(q.items)-1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Data return data slice in the queue
|
||||||
|
func (q *PriorityQueue[T]) Data() []T {
|
||||||
|
data := make([]T, q.size)
|
||||||
|
for i := 1; i < q.size+1; i++ {
|
||||||
|
data[i-1] = q.items[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
// Enqueue insert value into queue
|
// Enqueue insert value into queue
|
||||||
func (q *PriorityQueue[T]) Enqueue(val T) error {
|
func (q *PriorityQueue[T]) Enqueue(val T) error {
|
||||||
if q.IsFull() {
|
if q.IsFull() {
|
||||||
|
|||||||
41
datastructure/queue/priorityqueue_test.go
Normal file
41
datastructure/queue/priorityqueue_test.go
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
package datastructure
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/duke-git/lancet/v2/internal"
|
||||||
|
)
|
||||||
|
|
||||||
|
type intComparator struct{}
|
||||||
|
|
||||||
|
func (c *intComparator) Compare(v1, v2 any) int {
|
||||||
|
val1, _ := v1.(int)
|
||||||
|
val2, _ := v2.(int)
|
||||||
|
|
||||||
|
if val1 < val2 {
|
||||||
|
return -1
|
||||||
|
} else if val1 > val2 {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
func TestPriorityQueue_Enqueue(t *testing.T) {
|
||||||
|
assert := internal.NewAssert(t, "TestPriorityQueue_Enqueue")
|
||||||
|
|
||||||
|
comparator := &intComparator{}
|
||||||
|
pq := NewPriorityQueue[int](10, comparator)
|
||||||
|
|
||||||
|
assert.Equal(true, pq.IsEmpty())
|
||||||
|
assert.Equal(false, pq.IsFull())
|
||||||
|
|
||||||
|
for i := 1; i < 11; i++ {
|
||||||
|
pq.Enqueue(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Equal(true, pq.IsFull())
|
||||||
|
|
||||||
|
queueData := pq.Data()
|
||||||
|
assert.Equal([]int{10, 9, 6, 7, 8, 2, 5, 1, 4, 3}, queueData)
|
||||||
|
|
||||||
|
// assert.IsNotNil(err)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user