Add unit tests for android/util.go
Bug: 62815515 Test: lunch aosp_sailfish-userdebug && make # runs soong unit tests Change-Id: I34f06abdc78bfb28af3b5250491bbcddb7595c9b
This commit is contained in:
parent
f7463f8dd2
commit
5e877b1a86
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue