diff options
Diffstat (limited to 'client/go/internal/list/array_list_test.go')
-rw-r--r-- | client/go/internal/list/array_list_test.go | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/client/go/internal/list/array_list_test.go b/client/go/internal/list/array_list_test.go new file mode 100644 index 00000000000..f31a94966c5 --- /dev/null +++ b/client/go/internal/list/array_list_test.go @@ -0,0 +1,111 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +package list + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestArrayApi1(t *testing.T) { + v := ArrayList[string]{"x", "y", "z"} + assert.Equal(t, 3, len(v)) + v.Append("a") + assert.Equal(t, 4, len(v)) + v.Insert(2, "b") + assert.Equal(t, 5, len(v)) + v.Insert(0, "c") + assert.Equal(t, 6, len(v)) + assert.Equal(t, "c", v[0]) + assert.Equal(t, "x", v[1]) + assert.Equal(t, "y", v[2]) + assert.Equal(t, "b", v[3]) + assert.Equal(t, "z", v[4]) + assert.Equal(t, "a", v[5]) +} + +func TestArrayApi2(t *testing.T) { + tmp := []string{"i", "j", "k"} + v := NewArrayList[string](10) + assert.Equal(t, 0, len(v)) + assert.Equal(t, 10, cap(v)) + v.AppendAll(tmp...) + assert.Equal(t, 3, len(v)) + assert.Equal(t, 10, cap(v)) + v.AppendAll(tmp...) + assert.Equal(t, 6, len(v)) + assert.Equal(t, 10, cap(v)) + v.AppendAll(tmp...) + assert.Equal(t, 9, len(v)) + assert.Equal(t, 10, cap(v)) + v.AppendAll(tmp...) + assert.Equal(t, 12, len(v)) + assert.Less(t, 11, cap(v)) +} + +func TestArrayApi3(t *testing.T) { + tmp := []string{"i", "j", "k"} + v := ArrayList[string]{ + "foo", "bar", + "baz", "qux", + } + assert.Equal(t, 4, len(v)) + v.InsertAll(0, "a", "b") + assert.Equal(t, 6, len(v)) + v.AppendAll(tmp...) + assert.Equal(t, 9, len(v)) + v.AppendAll("x", "y") + assert.Equal(t, 11, len(v)) + v.InsertAll(4, "foobar", "barfoo") + assert.Equal(t, 13, len(v)) + assert.Equal(t, "a", v[0]) + assert.Equal(t, "b", v[1]) + assert.Equal(t, "foo", v[2]) + assert.Equal(t, "bar", v[3]) + assert.Equal(t, "foobar", v[4]) + assert.Equal(t, "barfoo", v[5]) + assert.Equal(t, "baz", v[6]) + assert.Equal(t, "qux", v[7]) + assert.Equal(t, "i", v[8]) + assert.Equal(t, "j", v[9]) + assert.Equal(t, "k", v[10]) + assert.Equal(t, "x", v[11]) + assert.Equal(t, "y", v[12]) +} + +func TestArrayApi4(t *testing.T) { + v := NewArrayList[string](12) + arr := v[0:10] + v.InsertAll(0, "a", "b", "e") + v.InsertAll(3, "f", "g", "o") + v.InsertAll(2, "c", "d") + v.InsertAll(7, "h", "i", "j", "k", "l", "m", "n") + assert.Equal(t, 15, len(v)) + assert.Equal(t, "a", v[0]) + assert.Equal(t, "b", v[1]) + assert.Equal(t, "c", v[2]) + assert.Equal(t, "d", v[3]) + assert.Equal(t, "e", v[4]) + assert.Equal(t, "f", v[5]) + assert.Equal(t, "g", v[6]) + assert.Equal(t, "h", v[7]) + assert.Equal(t, "i", v[8]) + assert.Equal(t, "j", v[9]) + assert.Equal(t, "k", v[10]) + assert.Equal(t, "l", v[11]) + assert.Equal(t, "m", v[12]) + assert.Equal(t, "n", v[13]) + assert.Equal(t, "o", v[14]) + assert.Equal(t, 10, len(arr)) + assert.Equal(t, "a", arr[0]) + assert.Equal(t, "b", arr[1]) + assert.Equal(t, "c", arr[2]) + assert.Equal(t, "d", arr[3]) + assert.Equal(t, "e", arr[4]) + assert.Equal(t, "f", arr[5]) + assert.Equal(t, "g", arr[6]) + assert.Equal(t, "o", arr[7]) + assert.Equal(t, "", arr[8]) + assert.Equal(t, "", arr[9]) +} |