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 }