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()) }