Исходники и презентации
This commit is contained in:
86
homework/slices_and_arrays/homework_test.go
Normal file
86
homework/slices_and_arrays/homework_test.go
Normal file
@ -0,0 +1,86 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// go test -v homework_test.go
|
||||
|
||||
type CircularQueue struct {
|
||||
values []int
|
||||
// need to implement
|
||||
}
|
||||
|
||||
func NewCircularQueue(size int) CircularQueue {
|
||||
return CircularQueue{} // need to implement
|
||||
}
|
||||
|
||||
func (q *CircularQueue) Push(value int) bool {
|
||||
return false // need to implement
|
||||
}
|
||||
|
||||
func (q *CircularQueue) Pop() bool {
|
||||
return false // need to implement
|
||||
}
|
||||
|
||||
func (q *CircularQueue) Front() int {
|
||||
return -1 // need to implement
|
||||
}
|
||||
|
||||
func (q *CircularQueue) Back() int {
|
||||
return -1 // need to implement
|
||||
}
|
||||
|
||||
func (q *CircularQueue) Empty() bool {
|
||||
return false // need to implement
|
||||
}
|
||||
|
||||
func (q *CircularQueue) Full() bool {
|
||||
return false // need to implement
|
||||
}
|
||||
|
||||
func TestCircularQueue(t *testing.T) {
|
||||
const queueSize = 3
|
||||
queue := NewCircularQueue(queueSize)
|
||||
|
||||
assert.True(t, queue.Empty())
|
||||
assert.False(t, queue.Full())
|
||||
|
||||
assert.Equal(t, -1, queue.Front())
|
||||
assert.Equal(t, -1, queue.Back())
|
||||
assert.False(t, queue.Pop())
|
||||
|
||||
assert.True(t, queue.Push(1))
|
||||
assert.True(t, queue.Push(2))
|
||||
assert.True(t, queue.Push(3))
|
||||
assert.False(t, queue.Push(4))
|
||||
|
||||
assert.True(t, reflect.DeepEqual([]int{1, 2, 3}, queue.values))
|
||||
|
||||
assert.False(t, queue.Empty())
|
||||
assert.True(t, queue.Full())
|
||||
|
||||
assert.Equal(t, 1, queue.Front())
|
||||
assert.Equal(t, 3, queue.Back())
|
||||
|
||||
assert.True(t, queue.Pop())
|
||||
assert.False(t, queue.Empty())
|
||||
assert.False(t, queue.Full())
|
||||
assert.True(t, queue.Push(4))
|
||||
|
||||
assert.True(t, reflect.DeepEqual([]int{4, 2, 3}, queue.values))
|
||||
|
||||
assert.Equal(t, 2, queue.Front())
|
||||
assert.Equal(t, 4, queue.Back())
|
||||
|
||||
assert.True(t, queue.Pop())
|
||||
assert.True(t, queue.Pop())
|
||||
assert.True(t, queue.Pop())
|
||||
assert.False(t, queue.Pop())
|
||||
|
||||
assert.True(t, queue.Empty())
|
||||
assert.False(t, queue.Full())
|
||||
}
|
||||
Reference in New Issue
Block a user