35 lines
481 B
Go
35 lines
481 B
Go
package gonads
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestQueue(t *testing.T) {
|
|
q := NewQueue[int](5)
|
|
for i := range make([]struct{}, 5) {
|
|
q.Push(i)
|
|
}
|
|
|
|
|
|
for range make([]struct{}, 5) {
|
|
t.Log(q.Pop())
|
|
}
|
|
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
if sr, ok := r.(string); ok {
|
|
t.Log(sr)
|
|
return
|
|
}
|
|
panic(r)
|
|
}
|
|
} ()
|
|
|
|
ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond)
|
|
q.Push(1)
|
|
t.Log(q.TryPop(ctx))
|
|
q.TryPop(ctx)
|
|
}
|