aboutsummaryrefslogtreecommitdiffstats
path: root/skate/set/set_test.go
blob: 403b6df884928983dd9a69b89e6d50801df230ce (plain)
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
package set

import (
	"testing"

	"github.com/matryer/is"
)

func TestSet(t *testing.T) {
	is := is.New(t)

	s := make(Set)
	is.Equal(s.Len(), 0)
	is.True(s.IsEmpty())

	s.Add("1")
	is.Equal(s.Len(), 1)
	is.True(!s.IsEmpty())
	is.True(s.Contains("1"))
	is.True(!s.Contains("2"))
	is.Equal(s.Slice(), []string{"1"})

	r := make(Set)
	r.Add("2")
	is.True(s.Intersection(&r).IsEmpty())
	is.Equal(s.Union(&r).Len(), 2)
	is.Equal(s.Union(&r).SortedSlice(), []string{"1", "2"})

	r.Add("3")
	r.Add("4")
	r.Add("5")
	r.Add("6")
	r.Add("7")
	r.Add("8")
	top := make(Set)
	top.Add("2")
	top.Add("3")
	is.Equal(r.TopK(2), &top)

	r.Clear()
	is.Equal(r.Len(), 0)
}