aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/map-api/pds.go
blob: 2fc0a8c8b79e9af92bb2eaa793b050c054553c9e (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
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,
		})
	})
}