github.com/zhiqiangxu/util@v0.0.0-20230112053021-0a7aee056cd5/skl/lf/list_test.go (about)

     1  package lf
     2  
     3  import (
     4  	"testing"
     5  
     6  	"reflect"
     7  
     8  	"gotest.tools/assert"
     9  )
    10  
    11  func TestList(t *testing.T) {
    12  	l := NewList(1024)
    13  	isNew, err := l.Insert([]byte("a"), []byte("a"))
    14  	assert.Assert(t, isNew && err == nil)
    15  
    16  	v, exists := l.Get([]byte("a"))
    17  	assert.Assert(t, exists && reflect.DeepEqual(v, []byte("a")))
    18  
    19  	isNew, err = l.Insert([]byte("a"), []byte("b"))
    20  	assert.Assert(t, !isNew && err == nil)
    21  
    22  	v, exists = l.Get([]byte("a"))
    23  	assert.Assert(t, exists && reflect.DeepEqual(v, []byte("b")))
    24  
    25  	isNew, err = l.Insert([]byte("b"), []byte("b"))
    26  	assert.Assert(t, isNew && err == nil)
    27  
    28  	deleted := l.Delete([]byte("a"))
    29  	assert.Assert(t, deleted)
    30  	v, exists = l.Get([]byte("a"))
    31  	assert.Assert(t, !exists && v == nil)
    32  }