1package funk
2
3import (
4	"fmt"
5	"testing"
6
7	"github.com/stretchr/testify/assert"
8)
9
10func TestWithout(t *testing.T) {
11	testCases := []struct {
12		Arr    interface{}
13		Values []interface{}
14		Expect interface{}
15	}{
16		{[]string{"foo", "bar"}, []interface{}{"bar"}, []string{"foo"}},
17		{[]int{0, 1, 2, 3, 4}, []interface{}{3, 4}, []int{0, 1, 2}},
18		{[]*Foo{f, b}, []interface{}{b, c}, []*Foo{f}},
19	}
20
21	for idx, tt := range testCases {
22		t.Run(fmt.Sprintf("test case #%d", idx+1), func(t *testing.T) {
23			is := assert.New(t)
24
25			actual := Without(tt.Arr, tt.Values...)
26			is.Equal(tt.Expect, actual)
27		})
28	}
29}
30