package rangemap_test import ( "jinx/pkg/libs/rangemap" "testing" "github.com/stretchr/testify/assert" ) func TestAppend(t *testing.T) { rm := rangemap.New[string]() assert.True(t, rm.AppendToLast(0, "a")) assert.True(t, rm.AppendToLast(1, "b")) assert.True(t, rm.AppendToLast(4, "c")) } func TestAppendAndGet(t *testing.T) { rm := rangemap.New[string]() assert.True(t, rm.AppendToLast(0, "a")) assert.True(t, rm.AppendToLast(1, "b")) assert.True(t, rm.AppendToLast(4, "c")) a, ok := rm.Get(0) assert.True(t, ok) assert.Equal(t, "a", *a) b, ok := rm.Get(1) assert.True(t, ok) assert.Equal(t, "b", *b) cfrom, ok := rm.Get(2) assert.True(t, ok) assert.Equal(t, "c", *cfrom) cmid, ok := rm.Get(3) assert.True(t, ok) assert.Equal(t, "c", *cmid) cto, ok := rm.Get(4) assert.True(t, ok) assert.Equal(t, "c", *cto) } func TestWrongAppend(t *testing.T) { rm := rangemap.New[string]() assert.True(t, rm.AppendToLast(0, "a")) assert.False(t, rm.AppendToLast(0, "b")) } func TestUnknownRange(t *testing.T) { rm := rangemap.New[string]() assert.True(t, rm.AppendToLast(6, "a")) a, ok := rm.Get(6) assert.True(t, ok) assert.Equal(t, "a", *a) b, ok := rm.Get(7) assert.False(t, ok) assert.Nil(t, b) } func TestNegativeAppend(t *testing.T) { rm := rangemap.New[string]() assert.False(t, rm.AppendToLast(-1, "a")) }