diff options
Diffstat (limited to 'tests/functional/sortedmap-api/pds.go')
-rw-r--r-- | tests/functional/sortedmap-api/pds.go | 89 |
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, + }) + }) +} |