Files
deep_go/homework/maps/homewrok_test.go

84 lines
1.6 KiB
Go
Raw Normal View History

package main
import (
"reflect"
"testing"
"github.com/stretchr/testify/assert"
)
// go test -v homework_test.go
type OrderedMap struct {
// need to implement
}
func NewOrderedMap() OrderedMap {
return OrderedMap{} // need to implement
}
func (m *OrderedMap) Insert(key, value int) {
// need to implement
}
func (m *OrderedMap) Erase(key int) {
// need to implement
}
func (m *OrderedMap) Contains(key int) bool {
return false // need to implement
}
func (m *OrderedMap) Size() int {
return 0 // need to implement
}
func (m *OrderedMap) ForEach(action func(int, int)) {
// need to implement
}
func TestCircularQueue(t *testing.T) {
data := NewOrderedMap()
assert.Zero(t, data.Size())
data.Insert(10, 10)
data.Insert(5, 5)
data.Insert(15, 15)
data.Insert(2, 2)
data.Insert(4, 4)
data.Insert(12, 12)
data.Insert(14, 14)
assert.Equal(t, 7, data.Size())
assert.True(t, data.Contains(4))
assert.True(t, data.Contains(12))
assert.False(t, data.Contains(3))
assert.False(t, data.Contains(13))
var keys []int
expectedKeys := []int{2, 4, 5, 10, 12, 14, 15}
data.ForEach(func(key, _ int) {
keys = append(keys, key)
})
assert.True(t, reflect.DeepEqual(expectedKeys, keys))
data.Erase(15)
data.Erase(14)
data.Erase(2)
assert.Equal(t, 4, data.Size())
assert.True(t, data.Contains(4))
assert.True(t, data.Contains(12))
assert.False(t, data.Contains(2))
assert.False(t, data.Contains(14))
keys = nil
expectedKeys = []int{4, 5, 10, 12}
data.ForEach(func(key, _ int) {
keys = append(keys, key)
})
assert.True(t, reflect.DeepEqual(expectedKeys, keys))
}