diff options
Diffstat (limited to 'tests/functional')
l--------- | tests/functional/list-api/main.go | 1 | ||||
-rw-r--r-- | tests/functional/list-api/pds.go | 61 | ||||
l--------- | tests/functional/list-builder-api/main.go | 1 | ||||
-rw-r--r-- | tests/functional/list-builder-api/pds.go | 53 | ||||
l--------- | tests/functional/map-api/main.go | 1 | ||||
-rw-r--r-- | tests/functional/map-api/pds.go | 88 | ||||
l--------- | tests/functional/map-builder-api/main.go | 1 | ||||
-rw-r--r-- | tests/functional/map-builder-api/pds.go | 44 | ||||
l--------- | tests/functional/sortedmap-api/main.go | 1 | ||||
-rw-r--r-- | tests/functional/sortedmap-api/pds.go | 89 | ||||
l--------- | tests/functional/sortedmap-builder-api/main.go | 1 | ||||
-rw-r--r-- | tests/functional/sortedmap-builder-api/pds.go | 44 |
12 files changed, 385 insertions, 0 deletions
diff --git a/tests/functional/list-api/main.go b/tests/functional/list-api/main.go new file mode 120000 index 0000000..f67563d --- /dev/null +++ b/tests/functional/list-api/main.go @@ -0,0 +1 @@ +../../main.go
\ No newline at end of file diff --git a/tests/functional/list-api/pds.go b/tests/functional/list-api/pds.go new file mode 100644 index 0000000..c4290c8 --- /dev/null +++ b/tests/functional/list-api/pds.go @@ -0,0 +1,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", + }) + }) +} diff --git a/tests/functional/list-builder-api/main.go b/tests/functional/list-builder-api/main.go new file mode 120000 index 0000000..f67563d --- /dev/null +++ b/tests/functional/list-builder-api/main.go @@ -0,0 +1 @@ +../../main.go
\ No newline at end of file diff --git a/tests/functional/list-builder-api/pds.go b/tests/functional/list-builder-api/pds.go new file mode 100644 index 0000000..c7b632c --- /dev/null +++ b/tests/functional/list-builder-api/pds.go @@ -0,0 +1,53 @@ +package pds + +import ( + g "gobang" +) + + + +func MainTest() { + g.Testing("API usage", func() { + b1 := NewListBuilder[string]() + b1.Append("foo") + b1.Append("bar") + b1.Append("baz") + + l1 := b1.List() + g.TAssertEqual(l1.Get(0), "foo") + g.TAssertEqual(l1.Get(1), "bar") + g.TAssertEqual(l1.Get(2), "baz") + + + b2 := NewListBuilder[string]() + b2.Prepend("foo") + b2.Prepend("bar") + b2.Prepend("baz") + + l2 := b2.List() + g.TAssertEqual(l2.Get(0), "baz") + g.TAssertEqual(l2.Get(1), "bar") + g.TAssertEqual(l2.Get(2), "foo") + + + b3 := NewListBuilder[string]() + b3.Append("foo") + b3.Append("bar") + b3.Set(1, "___") + l3 := b3.List() + g.TAssertEqual(l3.Get(0), "foo") + g.TAssertEqual(l3.Get(1), "___") + + + b4 := NewListBuilder[string]() + b4.Append("foo") + b4.Append("bar") + b4.Append("baz") + b4.Slice(1, 3) + + l4 := b4.List() + g.TAssertEqual(l4.Len(), 2) + g.TAssertEqual(l4.Get(0), "bar") + g.TAssertEqual(l4.Get(1), "baz") + }) +} diff --git a/tests/functional/map-api/main.go b/tests/functional/map-api/main.go new file mode 120000 index 0000000..f67563d --- /dev/null +++ b/tests/functional/map-api/main.go @@ -0,0 +1 @@ +../../main.go
\ No newline at end of file diff --git a/tests/functional/map-api/pds.go b/tests/functional/map-api/pds.go new file mode 100644 index 0000000..2fc0a8c --- /dev/null +++ b/tests/functional/map-api/pds.go @@ -0,0 +1,88 @@ +package pds + +import ( + g "gobang" +) + + + +func MainTest() { + g.Testing("NewMap[]().Set()", func() { + m := NewMap[string, any](nil) + m = m.Set("foo", "bar") + m = m.Set("baz", 100) + + v, ok := m.Get("foo") + g.TAssertEqual(v, "bar") + g.TAssertEqual(ok, true) + + v, ok = m.Get("baz") + g.TAssertEqual(v, 100) + g.TAssertEqual(ok, true) + + v, ok = m.Get("bat") + g.TAssertEqual(v, nil) + g.TAssertEqual(ok, false) + }) + + g.Testing("NewMap[]().Delete()", func() { + m := NewMap[string, any](nil) + m = m.Set("foo", "bar") + m = m.Set("baz", 100) + m = m.Delete("baz") + + v, ok := m.Get("foo") + g.TAssertEqual(v, "bar") + g.TAssertEqual(ok, true) + + v, ok = m.Get("baz") + g.TAssertEqual(v, nil) + g.TAssertEqual(ok, false) + }) + + g.Testing("NewMap[]().Iterator()", func() { + m := NewMap[string, int](nil) + m = m.Set("apple", 100) + m = m.Set("grape", 200) + m = m.Set("kiwi", 300) + m = m.Set("mango", 400) + m = m.Set("orange", 500) + m = m.Set("peach", 600) + m = m.Set("pear", 700) + m = m.Set("pineapple", 800) + m = m.Set("strawberry", 900) + + keys := []string{} + values := []int{} + + itr := m.Iterator() + for !itr.Done() { + k, v, _ := itr.Next() + keys = append(keys, k) + values = append(values, v) + } + + g.TAssertEqual(keys, []string{ + "mango", + "pear", + "pineapple", + "grape", + "orange", + "strawberry", + "kiwi", + "peach", + "apple", + }) + g.TAssertEqual(values, []int{ + 400, + 700, + 800, + 200, + 500, + 900, + 300, + 600, + 100, + }) + }) +} diff --git a/tests/functional/map-builder-api/main.go b/tests/functional/map-builder-api/main.go new file mode 120000 index 0000000..f67563d --- /dev/null +++ b/tests/functional/map-builder-api/main.go @@ -0,0 +1 @@ +../../main.go
\ No newline at end of file diff --git a/tests/functional/map-builder-api/pds.go b/tests/functional/map-builder-api/pds.go new file mode 100644 index 0000000..18bd873 --- /dev/null +++ b/tests/functional/map-builder-api/pds.go @@ -0,0 +1,44 @@ +package pds + +import ( + g "gobang" +) + + + +func MainTest() { + g.Testing("NewMapBuilder[]().Set()", func() { + b := NewMapBuilder[string, any](nil) + b.Set("foo", "bar") + b.Set("baz", 100) + + m := b.Map() + v, ok := m.Get("foo") + g.TAssertEqual(v, "bar") + g.TAssertEqual(ok, true) + + v, ok = m.Get("baz") + g.TAssertEqual(v, 100) + g.TAssertEqual(ok, true) + + v, ok = m.Get("bat") + g.TAssertEqual(v, nil) + g.TAssertEqual(ok, false) + }) + + g.Testing("NewMapBuilder[]().Delete()", func() { + b := NewMapBuilder[string, any](nil) + b.Set("foo", "bar") + b.Set("baz", 100) + b.Delete("baz") + + m := b.Map() + v, ok := m.Get("foo") + g.TAssertEqual(v, "bar") + g.TAssertEqual(ok, true) + + v, ok = m.Get("baz") + g.TAssertEqual(v, nil) + g.TAssertEqual(ok, false) + }) +} diff --git a/tests/functional/sortedmap-api/main.go b/tests/functional/sortedmap-api/main.go new file mode 120000 index 0000000..f67563d --- /dev/null +++ b/tests/functional/sortedmap-api/main.go @@ -0,0 +1 @@ +../../main.go
\ No newline at end of file diff --git a/tests/functional/sortedmap-api/pds.go b/tests/functional/sortedmap-api/pds.go new file mode 100644 index 0000000..1a182c1 --- /dev/null +++ b/tests/functional/sortedmap-api/pds.go @@ -0,0 +1,89 @@ +package pds + +import ( + g "gobang" +) + + + +func MainTest() { + g.Testing("NewSortedMap[string, any]().Set()", func() { + m := NewSortedMap[string, any](nil) + m = m.Set("foo", "bar") + m = m.Set("baz", 100) + + v, ok := m.Get("foo") + g.TAssertEqual(v, "bar") + g.TAssertEqual(ok, true) + + v, ok = m.Get("baz") + g.TAssertEqual(v, 100) + g.TAssertEqual(ok, true) + + v, ok = m.Get("bat") // does not exist + g.TAssertEqual(v, nil) + g.TAssertEqual(ok, false) + }) + + g.Testing("NewSortedMap[string, any]().Delete()", func() { + m := NewSortedMap[string, any](nil) + m = m.Set("foo", "bar") + m = m.Set("baz", 100) + m = m.Delete("baz") + + v, ok := m.Get("foo") + g.TAssertEqual(v, "bar") + g.TAssertEqual(ok, true) + + v, ok = m.Get("baz") + g.TAssertEqual(v, nil) + g.TAssertEqual(ok, false) + }) + + g.Testing("NewSortedMap[string, any]().Iterator()", func() { + m := NewSortedMap[string, int](nil) + m = m.Set("strawberry", 900) + m = m.Set("kiwi", 300) + m = m.Set("apple", 100) + m = m.Set("pear", 700) + m = m.Set("pineapple", 800) + m = m.Set("peach", 600) + m = m.Set("orange", 500) + m = m.Set("grape", 200) + m = m.Set("mango", 400) + + keys := []string{} + values := []int{} + + itr := m.Iterator() + for !itr.Done() { + k, v, _ := itr.Next() + keys = append(keys, k) + values = append(values, v) + } + + g.TAssertEqual(keys, []string{ + "apple", + "grape", + "kiwi", + "mango", + "orange", + "peach", + "pear", + "pineapple", + "strawberry", + }) + + g.TAssertEqual(values, []int{ + 100, + 200, + 300, + 400, + 500, + 600, + 700, + 800, + 900, + }) + }) +} diff --git a/tests/functional/sortedmap-builder-api/main.go b/tests/functional/sortedmap-builder-api/main.go new file mode 120000 index 0000000..f67563d --- /dev/null +++ b/tests/functional/sortedmap-builder-api/main.go @@ -0,0 +1 @@ +../../main.go
\ No newline at end of file diff --git a/tests/functional/sortedmap-builder-api/pds.go b/tests/functional/sortedmap-builder-api/pds.go new file mode 100644 index 0000000..e40948f --- /dev/null +++ b/tests/functional/sortedmap-builder-api/pds.go @@ -0,0 +1,44 @@ +package pds + +import ( + g "gobang" +) + + + +func MainTest() { + g.Testing("NewSortedMapBuilder[]().Set()", func() { + b := NewSortedMapBuilder[string, any](nil) + b.Set("foo", "bar") + b.Set("baz", 100) + + m := b.Map() + v, ok := m.Get("foo") + g.TAssertEqual(v, "bar") + g.TAssertEqual(ok, true) + + v, ok = m.Get("baz") + g.TAssertEqual(v, 100) + g.TAssertEqual(ok, true) + + v, ok = m.Get("bat") + g.TAssertEqual(v, nil) + g.TAssertEqual(ok, false) + }) + + g.Testing("NewSortedMapBuilder[]().Delete()", func() { + b := NewSortedMapBuilder[string, any](nil) + b.Set("foo", "bar") + b.Set("baz", 100) + b.Delete("baz") + + m := b.Map() + v, ok := m.Get("foo") + g.TAssertEqual(v, "bar") + g.TAssertEqual(ok, true) + + v, ok = m.Get("baz") + g.TAssertEqual(v, nil) + g.TAssertEqual(ok, false) + }) +} |