package slice import ( "fmt" "testing" ) func TestIntersection(t *testing.T) { a := []int{1, 2, 3} b := []int{1, 2, 0, 56, 89} c := []int{1, 2, 4} fmt.Println(Intersection(a, b)) fmt.Println(Intersection(a, c)) } func TestUnion(t *testing.T) { a := []int{1, 2, 3} b := []int{1, 2, 0, 56, 89} c := []int{1, 2, 4} fmt.Println(Union(a, b)) fmt.Println(Union(a, c)) } func TestUniqueBy(t *testing.T) { a := []int{1, 2, 3} b := []int{1, 2, 3} c := []int{1, 2, 4} fmt.Println(UniqueBy(a, func(i int) int { return i })) fmt.Println(UniqueBy(b, func(i int) int { return i })) fmt.Println(UniqueBy(c, func(i int) int { return i })) } func TestUnique(t *testing.T) { a := []int{1, 2, 3, 1, 2, 3} b := []int{1, 2, 3} c := []int{1, 2, 4} d := []int{13, 32, 43, 56, 65, 76, 87, 98, 87, 76, 65, 43, 32, 13} fmt.Println(Unique(a)) fmt.Println(Unique(b)) fmt.Println(Unique(c)) fmt.Println(Unique(d)) } func TestUpdateAt(t *testing.T) { a := []int{1, 2, 3} fmt.Println(UpdateAt(a, 1, 4)) fmt.Println(UpdateAt(a, 2, 4)) fmt.Println(UpdateAt(a, 3, 4)) fmt.Println(UpdateAt(a, 4, 4)) } func TestInsertAt(t *testing.T) { a := []int{1, 2, 3} fmt.Println(InsertAt(a, 1, 4)) fmt.Println(InsertAt(a, 2, 4)) fmt.Println(InsertAt(a, 3, 4)) fmt.Println(InsertAt(a, 4, 4)) } func TestDrop(t *testing.T) { a := []int{1, 2, 3} fmt.Println(Drop(a, 1)) fmt.Println(Drop(a, 2)) fmt.Println(Drop(a, 3)) fmt.Println(Drop(a, 4)) } func TestDeleteAt(t *testing.T) { a := []int{1, 2, 3} fmt.Println(DeleteAt(a, 1)) fmt.Println(DeleteAt(a, 2)) fmt.Println(DeleteAt(a, 3)) fmt.Println(DeleteAt(a, 4)) } func TestIntSlice(t *testing.T) { a := []int{1, 2, 3} b := []int{1, 2, 3} c := []int{1, 2, 4} fmt.Println(IntSlice(a)) fmt.Println(IntSlice(b)) fmt.Println(IntSlice(c)) } func TestStringSlice(t *testing.T) { a := []string{"hello", "world"} c := []string{"hello", "world", "!"} d := []int{1, 2, 3} fmt.Println(StringSlice(a)) fmt.Println(StringSlice(d)) fmt.Println(StringSlice(c)) } func TestEqualWith(t *testing.T) { a := []int{1, 2, 3} b := []int{1, 2, 3} c := []int{1, 2, 4} fmt.Println(EqualWith(a, b, func(i, j int) bool { return i == j })) fmt.Println(EqualWith(a, c, func(i, j int) bool { return i == j })) } func TestEqual(t *testing.T) { a := []int{1, 2, 3} b := []int{1, 2, 3} c := []int{1, 2, 4} fmt.Println(Equal(a, b)) fmt.Println(Equal(a, c)) } func TestChunk(t *testing.T) { a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} b := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} c := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} fmt.Println(Chunk(a, 2)) fmt.Println(Chunk(b, 10)) fmt.Println(Chunk(c, 3)) }