github.com/chenjiandongx/go-queue@v0.0.0-20191023082232-e2a36f382f84/lifo_queue_test.go (about)

     1  package collections
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestLifoQueue(t *testing.T) {
    10  	q := NewLifoQueue()
    11  
    12  	var item interface{}
    13  	var ok bool
    14  
    15  	for i := 0; i < nums; i++ {
    16  		q.Put(i)
    17  	}
    18  	for i := nums - 1; i >= 0; i-- {
    19  		item, ok = q.Get()
    20  		assert.Equal(t, i, item.(int))
    21  		assert.Equal(t, ok, true)
    22  	}
    23  
    24  	item, ok = q.Get()
    25  	assert.Equal(t, nil, item)
    26  	assert.Equal(t, ok, false)
    27  
    28  	item, ok = q.Get()
    29  	assert.Equal(t, nil, item)
    30  	assert.Equal(t, ok, false)
    31  }