Add unit tests for android/util.go
Bug: 62815515 Test: lunch aosp_sailfish-userdebug && make # runs soong unit tests Merged-In: I34f06abdc78bfb28af3b5250491bbcddb7595c9b Change-Id: I34f06abdc78bfb28af3b5250491bbcddb7595c9b
This commit is contained in:
@@ -118,3 +118,185 @@ func TestLastUniqueStrings(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestJoinWithPrefix(t *testing.T) {
|
||||||
|
testcases := []struct {
|
||||||
|
name string
|
||||||
|
input []string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "zero_inputs",
|
||||||
|
input: []string{},
|
||||||
|
expected: "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "one_input",
|
||||||
|
input: []string{"a"},
|
||||||
|
expected: "prefix:a",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "two_inputs",
|
||||||
|
input: []string{"a", "b"},
|
||||||
|
expected: "prefix:a prefix:b",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
prefix := "prefix:"
|
||||||
|
|
||||||
|
for _, testCase := range testcases {
|
||||||
|
t.Run(testCase.name, func(t *testing.T) {
|
||||||
|
out := JoinWithPrefix(testCase.input, prefix)
|
||||||
|
if out != testCase.expected {
|
||||||
|
t.Errorf("incorrect output:")
|
||||||
|
t.Errorf(" input: %#v", testCase.input)
|
||||||
|
t.Errorf(" prefix: %#v", prefix)
|
||||||
|
t.Errorf(" expected: %#v", testCase.expected)
|
||||||
|
t.Errorf(" got: %#v", out)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestIndexList(t *testing.T) {
|
||||||
|
input := []string{"a", "b", "c"}
|
||||||
|
|
||||||
|
testcases := []struct {
|
||||||
|
key string
|
||||||
|
expected int
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
key: "a",
|
||||||
|
expected: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "b",
|
||||||
|
expected: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "c",
|
||||||
|
expected: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "X",
|
||||||
|
expected: -1,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, testCase := range testcases {
|
||||||
|
t.Run(testCase.key, func(t *testing.T) {
|
||||||
|
out := IndexList(testCase.key, input)
|
||||||
|
if out != testCase.expected {
|
||||||
|
t.Errorf("incorrect output:")
|
||||||
|
t.Errorf(" key: %#v", testCase.key)
|
||||||
|
t.Errorf(" input: %#v", input)
|
||||||
|
t.Errorf(" expected: %#v", testCase.expected)
|
||||||
|
t.Errorf(" got: %#v", out)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestInList(t *testing.T) {
|
||||||
|
input := []string{"a"}
|
||||||
|
|
||||||
|
testcases := []struct {
|
||||||
|
key string
|
||||||
|
expected bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
key: "a",
|
||||||
|
expected: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "X",
|
||||||
|
expected: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, testCase := range testcases {
|
||||||
|
t.Run(testCase.key, func(t *testing.T) {
|
||||||
|
out := InList(testCase.key, input)
|
||||||
|
if out != testCase.expected {
|
||||||
|
t.Errorf("incorrect output:")
|
||||||
|
t.Errorf(" key: %#v", testCase.key)
|
||||||
|
t.Errorf(" input: %#v", input)
|
||||||
|
t.Errorf(" expected: %#v", testCase.expected)
|
||||||
|
t.Errorf(" got: %#v", out)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPrefixInList(t *testing.T) {
|
||||||
|
prefixes := []string{"a", "b"}
|
||||||
|
|
||||||
|
testcases := []struct {
|
||||||
|
str string
|
||||||
|
expected bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
str: "a-example",
|
||||||
|
expected: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
str: "b-example",
|
||||||
|
expected: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
str: "X-example",
|
||||||
|
expected: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, testCase := range testcases {
|
||||||
|
t.Run(testCase.str, func(t *testing.T) {
|
||||||
|
out := PrefixInList(testCase.str, prefixes)
|
||||||
|
if out != testCase.expected {
|
||||||
|
t.Errorf("incorrect output:")
|
||||||
|
t.Errorf(" str: %#v", testCase.str)
|
||||||
|
t.Errorf(" prefixes: %#v", prefixes)
|
||||||
|
t.Errorf(" expected: %#v", testCase.expected)
|
||||||
|
t.Errorf(" got: %#v", out)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestFilterList(t *testing.T) {
|
||||||
|
input := []string{"a", "b", "c", "c", "b", "d", "a"}
|
||||||
|
filter := []string{"a", "c"}
|
||||||
|
remainder, filtered := FilterList(input, filter)
|
||||||
|
|
||||||
|
expected := []string{"b", "b", "d"}
|
||||||
|
if !reflect.DeepEqual(remainder, expected) {
|
||||||
|
t.Errorf("incorrect remainder output:")
|
||||||
|
t.Errorf(" input: %#v", input)
|
||||||
|
t.Errorf(" filter: %#v", filter)
|
||||||
|
t.Errorf(" expected: %#v", expected)
|
||||||
|
t.Errorf(" got: %#v", remainder)
|
||||||
|
}
|
||||||
|
|
||||||
|
expected = []string{"a", "c", "c", "a"}
|
||||||
|
if !reflect.DeepEqual(filtered, expected) {
|
||||||
|
t.Errorf("incorrect filtered output:")
|
||||||
|
t.Errorf(" input: %#v", input)
|
||||||
|
t.Errorf(" filter: %#v", filter)
|
||||||
|
t.Errorf(" expected: %#v", expected)
|
||||||
|
t.Errorf(" got: %#v", filtered)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRemoveListFromList(t *testing.T) {
|
||||||
|
input := []string{"a", "b", "c", "d", "a", "c", "d"}
|
||||||
|
filter := []string{"a", "c"}
|
||||||
|
expected := []string{"b", "d", "d"}
|
||||||
|
out := RemoveListFromList(input, filter)
|
||||||
|
if !reflect.DeepEqual(out, expected) {
|
||||||
|
t.Errorf("incorrect output:")
|
||||||
|
t.Errorf(" input: %#v", input)
|
||||||
|
t.Errorf(" filter: %#v", filter)
|
||||||
|
t.Errorf(" expected: %#v", expected)
|
||||||
|
t.Errorf(" got: %#v", out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user