aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/sortedmap-api/pds.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/sortedmap-api/pds.go')
-rw-r--r--tests/functional/sortedmap-api/pds.go89
1 files changed, 89 insertions, 0 deletions
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,
+ })
+ })
+}