aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/sortedmap-api/pds.go
blob: 1a182c15ad461affeb40cc4552027c1601d8fb25 (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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,
		})
	})
}