package utility

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestUnique(t *testing.T) {
	testSet := []string{"A", "B", "C", "A", "B", "c"}
	expectedSet := []string{"A", "B", "C", "c"}
	assert.Equal(t, expectedSet, Unique(testSet), "Unique test")
}

func TestDiff(t *testing.T) {
	testSet1 := []string{"A", "B", "C", "A", "B", "c"}
	testSet2 := []string{"C", "A", "testStuff"}
	expectedSet := []string{"B", "c"}
	assert.Equal(t, expectedSet, Diff(testSet1, testSet2), "Unique test")
}

func TestTwoSidedDiff(t *testing.T) {
	testSet1 := []string{"A", "B", "C", "A", "B", "c"}
	testSet2 := []string{"C", "A", "testStuff"}
	expectedSet := []string{"B", "c", "testStuff"}
	assert.Equal(t, expectedSet, TwoSidedDiff(testSet1, testSet2), "Unique test")
}

func TestRemove(t *testing.T) {
	testSet := []string{"A", "B", "C", "D", "E", "F"}
	expectedSet := []string{"A", "B", "F", "D", "E"}
	assert.Equal(t, expectedSet, Remove(testSet, 2), "Remove test")
}
