123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package collection
- import (
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestFifo(t *testing.T) {
- elements := [][]byte{
- []byte("hello"),
- []byte("world"),
- []byte("again"),
- }
- queue := NewQueue(8)
- for i := range elements {
- queue.Put(elements[i])
- }
- for _, element := range elements {
- body, ok := queue.Take()
- assert.True(t, ok)
- assert.Equal(t, string(element), string(body.([]byte)))
- }
- }
- func TestTakeTooMany(t *testing.T) {
- elements := [][]byte{
- []byte("hello"),
- []byte("world"),
- []byte("again"),
- }
- queue := NewQueue(8)
- for i := range elements {
- queue.Put(elements[i])
- }
- for range elements {
- queue.Take()
- }
- assert.True(t, queue.Empty())
- _, ok := queue.Take()
- assert.False(t, ok)
- }
- func TestPutMore(t *testing.T) {
- elements := [][]byte{
- []byte("hello"),
- []byte("world"),
- []byte("again"),
- }
- queue := NewQueue(2)
- for i := range elements {
- queue.Put(elements[i])
- }
- for _, element := range elements {
- body, ok := queue.Take()
- assert.True(t, ok)
- assert.Equal(t, string(element), string(body.([]byte)))
- }
- }
|