Adding the challenge 0101
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
|||||||
|
package db0101
|
||||||
|
|
||||||
|
type KV struct {
|
||||||
|
mem map[string][]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
func (kv *KV) Open() error {
|
||||||
|
kv.mem = map[string][]byte{} // empty
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (kv *KV) Close() error { return nil }
|
||||||
|
|
||||||
|
func (kv *KV) Get(key []byte) (val []byte, ok bool, err error)
|
||||||
|
|
||||||
|
func (kv *KV) Set(key []byte, val []byte) (updated bool, err error)
|
||||||
|
|
||||||
|
func (kv *KV) Del(key []byte) (deleted bool, err error)
|
||||||
|
|
||||||
|
// QzBQWVJJOUhU https://trialofcode.org/
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package db0101
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestKVBasic(t *testing.T) {
|
||||||
|
kv := KV{}
|
||||||
|
err := kv.Open()
|
||||||
|
assert.Nil(t, err)
|
||||||
|
defer kv.Close()
|
||||||
|
|
||||||
|
updated, err := kv.Set([]byte("k1"), []byte("v1"))
|
||||||
|
assert.True(t, updated && err == nil)
|
||||||
|
|
||||||
|
val, ok, err := kv.Get([]byte("k1"))
|
||||||
|
assert.True(t, string(val) == "v1" && ok && err == nil)
|
||||||
|
|
||||||
|
_, ok, err = kv.Get([]byte("xxx"))
|
||||||
|
assert.True(t, !ok && err == nil)
|
||||||
|
|
||||||
|
updated, err = kv.Del([]byte("xxx"))
|
||||||
|
assert.True(t, !updated && err == nil)
|
||||||
|
|
||||||
|
updated, err = kv.Del([]byte("k1"))
|
||||||
|
assert.True(t, updated && err == nil)
|
||||||
|
|
||||||
|
_, ok, err = kv.Get([]byte("xxx"))
|
||||||
|
assert.True(t, !ok && err == nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// QzBQWVJJOUhU https://trialofcode.org/
|
||||||
Reference in New Issue
Block a user