mirror of
https://github.com/duke-git/lancet.git
synced 2025-09-27 03:45:58 +08:00
107 lines
1.9 KiB
Go
107 lines
1.9 KiB
Go
package datastructure
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/duke-git/lancet/v2/internal"
|
|
)
|
|
|
|
func TestLinkedQueue_Enqueue(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
assert := internal.NewAssert(t, "TestLinkedQueue_Enqueue")
|
|
|
|
queue := NewLinkedQueue[int]()
|
|
queue.Enqueue(1)
|
|
queue.Enqueue(2)
|
|
queue.Enqueue(3)
|
|
|
|
assert.Equal([]int{1, 2, 3}, queue.Data())
|
|
assert.Equal(3, queue.Size())
|
|
}
|
|
|
|
func TestLinkedQueue_Dequeue(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
assert := internal.NewAssert(t, "TestLinkedQueue_DeQueue")
|
|
|
|
queue := NewLinkedQueue[int]()
|
|
queue.Enqueue(1)
|
|
queue.Enqueue(2)
|
|
queue.Enqueue(3)
|
|
|
|
val, _ := queue.Dequeue()
|
|
|
|
queue.Print()
|
|
|
|
assert.Equal([]int{2, 3}, queue.Data())
|
|
assert.Equal(1, *val)
|
|
}
|
|
|
|
func TestLinkedQueue_Front(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
assert := internal.NewAssert(t, "TestLinkedQueue_Front")
|
|
|
|
queue := NewLinkedQueue[int]()
|
|
_, err := queue.Front()
|
|
assert.IsNotNil(err)
|
|
|
|
queue.Enqueue(1)
|
|
queue.Enqueue(2)
|
|
queue.Enqueue(3)
|
|
|
|
val, err := queue.Front()
|
|
assert.Equal(1, *val)
|
|
assert.IsNil(err)
|
|
}
|
|
|
|
func TestLinkedQueue_Back(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
assert := internal.NewAssert(t, "TestLinkedQueue_Back")
|
|
|
|
queue := NewLinkedQueue[int]()
|
|
_, err := queue.Back()
|
|
assert.IsNotNil(err)
|
|
|
|
queue.Enqueue(1)
|
|
queue.Enqueue(2)
|
|
queue.Enqueue(3)
|
|
|
|
val, err := queue.Back()
|
|
assert.Equal(3, *val)
|
|
assert.IsNil(err)
|
|
}
|
|
|
|
func TestLinkedQueue_Clear(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
assert := internal.NewAssert(t, "TestLinkedQueue_Back")
|
|
|
|
queue := NewLinkedQueue[int]()
|
|
assert.Equal(true, queue.IsEmpty())
|
|
|
|
queue.Enqueue(1)
|
|
queue.Enqueue(2)
|
|
queue.Enqueue(3)
|
|
assert.Equal(false, queue.IsEmpty())
|
|
|
|
queue.Clear()
|
|
assert.Equal(true, queue.IsEmpty())
|
|
}
|
|
|
|
func TestLinkedQueue_Contain(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
assert := internal.NewAssert(t, "TestLinkedQueue_Contain")
|
|
|
|
queue := NewLinkedQueue[int]()
|
|
queue.Enqueue(1)
|
|
queue.Enqueue(2)
|
|
queue.Enqueue(3)
|
|
|
|
assert.Equal(true, queue.Contain(1))
|
|
assert.Equal(false, queue.Contain(4))
|
|
}
|