utils/comparisons_test.go

94 lines
2.6 KiB
Go
Raw Normal View History

2024-06-04 21:41:28 +02:00
package utils
import (
"reflect"
"testing"
)
2024-06-30 22:50:11 +02:00
func TestGetSharedElementsOfStringSlices(t *testing.T) {
data := []map[string][]string{
{
"a": []string{"apple", "banana", "cherry"},
"b": []string{"banana", "cherry", "date", "fig"},
"expectedResult": []string{"banana", "cherry"},
},
{
"a": []string{"banana", "cherry", "date", "fig"},
"b": []string{"apple", "banana", "cherry"},
"expectedResult": []string{"banana", "cherry"},
},
{
"a": []string{"apple", "banana", "cherry"},
"b": []string{"apple", "banana", "cherry"},
"expectedResult": []string{"apple", "banana", "cherry"},
},
{
"a": []string{},
"b": []string{"apple", "banana", "cherry"},
"expectedResult": []string{},
},
{
"a": []string{"apple", "banana", "cherry"},
"b": []string{},
"expectedResult": []string{},
},
{
"a": []string{},
"b": []string{},
"expectedResult": []string{},
},
}
for _, test := range data {
result := GetSharedElementsOfStringSlices(test["a"], test["b"])
if !reflect.DeepEqual(result, test["expectedResult"]) {
if len(result) == 0 && len(test["expectedResult"]) == 0 {
continue
}
t.Errorf("\ngot: %q\nwanted: %q\nfor: %q", result, test["expectedResult"], test)
}
}
}
2024-06-04 21:41:28 +02:00
func TestGetUniqueElementsOfStringSlices(t *testing.T) {
data := []map[string][]string{
{
"a": []string{"apple", "banana", "cherry"},
"b": []string{"banana", "cherry", "date", "fig"},
"expectedResult": []string{"apple"},
},
{
"a": []string{"banana", "cherry", "date", "fig"},
"b": []string{"apple", "banana", "cherry"},
"expectedResult": []string{"date", "fig"},
},
{
"a": []string{"apple", "banana", "cherry"},
"b": []string{"apple", "banana", "cherry"},
"expectedResult": []string{},
},
{
"a": []string{},
"b": []string{"apple", "banana", "cherry"},
"expectedResult": []string{},
},
{
"a": []string{"apple", "banana", "cherry"},
"b": []string{},
"expectedResult": []string{"apple", "banana", "cherry"},
},
}
for _, test := range data {
result := GetUniqueElementsOfStringSlices(test["a"], test["b"])
if !reflect.DeepEqual(result, test["expectedResult"]) {
if len(result) == 0 && len(test["expectedResult"]) == 0 {
continue
}
t.Errorf("\ngot: %q\nwanted: %q\nfor: %q", result, test["expectedResult"], test)
}
}
}