mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-10 12:12:28 +08:00
init commit
This commit is contained in:
92
common/utils/alg/queue_test.go
Normal file
92
common/utils/alg/queue_test.go
Normal file
@@ -0,0 +1,92 @@
|
||||
package alg
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestLLQueue(t *testing.T) {
|
||||
queue := NewLLQueue()
|
||||
queue.EnQueue(float32(100.123))
|
||||
queue.EnQueue(uint8(66))
|
||||
queue.EnQueue("aaa")
|
||||
queue.EnQueue(int64(-123456789))
|
||||
queue.EnQueue(true)
|
||||
queue.EnQueue(5)
|
||||
for queue.Len() > 0 {
|
||||
value := queue.DeQueue()
|
||||
fmt.Println(value)
|
||||
}
|
||||
}
|
||||
|
||||
func TestALQueue(t *testing.T) {
|
||||
queue := NewALQueue[uint8]()
|
||||
queue.EnQueue(1)
|
||||
queue.EnQueue(2)
|
||||
queue.EnQueue(8)
|
||||
queue.EnQueue(9)
|
||||
for queue.Len() > 0 {
|
||||
value := queue.DeQueue()
|
||||
fmt.Println(value)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRAQueue(t *testing.T) {
|
||||
queue := NewRAQueue[uint8](1000)
|
||||
queue.EnQueue(1)
|
||||
queue.EnQueue(2)
|
||||
queue.EnQueue(8)
|
||||
queue.EnQueue(9)
|
||||
for queue.Len() > 0 {
|
||||
value := queue.DeQueue()
|
||||
fmt.Println(value)
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkLLQueue(b *testing.B) {
|
||||
data := ""
|
||||
for i := 0; i < 1024; i++ {
|
||||
data += "X"
|
||||
}
|
||||
queue := NewLLQueue()
|
||||
for i := 0; i < b.N; i++ {
|
||||
for i := 0; i < 100; i++ {
|
||||
queue.EnQueue(&data)
|
||||
}
|
||||
for i := 0; i < 100; i++ {
|
||||
queue.DeQueue()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkALQueue(b *testing.B) {
|
||||
data := ""
|
||||
for i := 0; i < 1024; i++ {
|
||||
data += "X"
|
||||
}
|
||||
queue := NewALQueue[*string]()
|
||||
for i := 0; i < b.N; i++ {
|
||||
for i := 0; i < 100; i++ {
|
||||
queue.EnQueue(&data)
|
||||
}
|
||||
for i := 0; i < 100; i++ {
|
||||
queue.DeQueue()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkRAQueue(b *testing.B) {
|
||||
data := ""
|
||||
for i := 0; i < 1024; i++ {
|
||||
data += "X"
|
||||
}
|
||||
queue := NewRAQueue[*string](1000)
|
||||
for i := 0; i < b.N; i++ {
|
||||
for i := 0; i < 100; i++ {
|
||||
queue.EnQueue(&data)
|
||||
}
|
||||
for i := 0; i < 100; i++ {
|
||||
queue.DeQueue()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user