62 lines
948 B
Go
62 lines
948 B
Go
package sets
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func getTestSet(t *testing.T) *Set[int] {
|
|
t.Helper()
|
|
|
|
return &Set[int]{
|
|
store: map[int]struct{}{
|
|
0: {},
|
|
1: {},
|
|
2: {},
|
|
3: {},
|
|
4: {},
|
|
5: {},
|
|
6: {},
|
|
7: {},
|
|
8: {},
|
|
9: {},
|
|
},
|
|
}
|
|
}
|
|
|
|
func TestSetSize(t *testing.T) {
|
|
s := getTestSet(t)
|
|
|
|
require.Equal(t, 10, s.Size())
|
|
}
|
|
|
|
func TestSetContains(t *testing.T) {
|
|
s := getTestSet(t)
|
|
|
|
require.True(t, s.Contains(0))
|
|
require.False(t, s.Contains(10))
|
|
}
|
|
|
|
func TestSetInsert(t *testing.T) {
|
|
s := getTestSet(t)
|
|
|
|
require.True(t, s.Insert(0))
|
|
require.False(t, s.Insert(10))
|
|
require.Contains(t, s.store, 10)
|
|
}
|
|
|
|
func TestSetDelete(t *testing.T) {
|
|
s := getTestSet(t)
|
|
|
|
require.False(t, s.Delete(10))
|
|
require.True(t, s.Delete(0))
|
|
require.NotContains(t, s.store, 0)
|
|
}
|
|
|
|
func TestSetSlice(t *testing.T) {
|
|
s := getTestSet(t)
|
|
|
|
require.ElementsMatch(t, []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, s.Slice())
|
|
}
|