aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/list-api/pds.go
blob: c4290c8be97469628776516f190c028df6bcb652 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package pds

import (
	g "gobang"
)



func MainTest() {
	g.Testing("NewList() - API usage", func() {
		l := NewList[string]().Append("foo").Append("bar").Append("baz")
		g.TAssertEqual(l.Get(0), "foo")
		g.TAssertEqual(l.Get(1), "bar")
		g.TAssertEqual(l.Get(2), "baz")

		l = l.Prepend("a").Prepend("b").Prepend("c")
		g.TAssertEqual(l.Get(0), "c")
		g.TAssertEqual(l.Get(1), "b")
		g.TAssertEqual(l.Get(2), "a")

		l = l.Set(0, "_")
		g.TAssertEqual(l.Get(0), "_")

		l = l.Slice(1, 3)
		g.TAssertEqual(l.Get(0), "b")
		g.TAssertEqual(l.Get(1), "a")
		g.TAssertEqual(l.Len(), 2)
	})

	g.Testing("NewList().Iterator() - API usage", func() {
		l := NewList[string]()
		l = l.Append("foo")
		l = l.Append("bar")
		l = l.Append("baz")

		indexes := []int{}
		values  := []string{}
		itr := l.Iterator()
		for !itr.Done() {
			i, v := itr.Next()
			indexes = append(indexes, i)
			values  = append(values,  v)
		}
		itr.Last()
		for !itr.Done() {
			i, v := itr.Prev()
			indexes = append(indexes, i)
			values  = append(values,  v)
		}

		g.TAssertEqual(indexes, []int{0, 1, 2, 2, 1, 0})
		g.TAssertEqual(values, []string{
			"foo",
			"bar",
			"baz",
			"baz",
			"bar",
			"foo",
		})
	})
}