Closed
Description
when initialLen equal capacity
t.Run("TestResetQueue", func(t *testing.T) {
type strInt struct {
A int
}
queue := fifo.NewBlocking([]*strInt{{A: 1}, {A: 2}, {A: 3}, {A: 4}, {A: 5}}, fifo.WithCapacity(5))
assert.Equal(t, queue.Offer(&strInt{A: 6}), fifo.ErrQueueIsFull)
_, err := queue.Get()
assert.Nil(t, err)
_, err = queue.Get()
assert.Nil(t, err)
targets := queue.Clear()
queue.Reset()
for _, item := range targets {
// is full, can't add back
err = queue.Offer(item)
assert.Equal(t, err, fifo.ErrQueueIsFull)
}
})
Cannot insert new elements after reset
because
// isFull returns true if the queue is full.
func (bq *Blocking[T]) isFull() bool {
if bq.capacity == nil {
return false
}
return len(bq.elements)-bq.elementsIndex >= *bq.capacity
}
5 - 0 >= 5
Metadata
Metadata
Assignees
Labels
No labels