github.com/chenjiandongx/go-queue@v0.0.0-20191023082232-e2a36f382f84/deque_test.go (about) 1 package collections 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestDeque(t *testing.T) { 10 q := NewDeque() 11 12 var item interface{} 13 var ok bool 14 15 for i := 0; i < nums; i++ { 16 q.PutLeft(i) 17 } 18 assert.True(t, q.Qsize() == nums) 19 20 for i := nums - 1; i >= 0; i-- { 21 q.PutRight(i) 22 } 23 assert.True(t, q.Qsize() == nums*2) 24 25 for i := 0; i < nums; i++ { 26 item, ok = q.GetRight() 27 assert.Equal(t, i, item) 28 assert.Equal(t, ok, true) 29 } 30 for i := nums - 1; i >= 0; i-- { 31 item, ok = q.GetLeft() 32 assert.Equal(t, i, item) 33 assert.Equal(t, ok, true) 34 } 35 assert.True(t, q.Qsize() == 0) 36 37 item, ok = q.GetLeft() 38 assert.Equal(t, nil, item) 39 assert.Equal(t, ok, false) 40 41 item, ok = q.GetRight() 42 assert.Equal(t, nil, item) 43 assert.Equal(t, ok, false) 44 }