blob: 3bf0c658b83a3d04c9f90b82e827c5c50f29ee36 [file] [log] [blame]
Colin Cross74d1ec02015-04-28 13:30:13 -07001package cc
2
3import (
4 "reflect"
5 "testing"
6)
7
8var lastUniqueElementsTestCases = []struct {
9 in []string
10 out []string
11}{
12 {
13 in: []string{"a"},
14 out: []string{"a"},
15 },
16 {
17 in: []string{"a", "b"},
18 out: []string{"a", "b"},
19 },
20 {
21 in: []string{"a", "a"},
22 out: []string{"a"},
23 },
24 {
25 in: []string{"a", "b", "a"},
26 out: []string{"b", "a"},
27 },
28 {
29 in: []string{"b", "a", "a"},
30 out: []string{"b", "a"},
31 },
32 {
33 in: []string{"a", "a", "b"},
34 out: []string{"a", "b"},
35 },
36 {
37 in: []string{"a", "b", "a", "b"},
38 out: []string{"a", "b"},
39 },
40 {
41 in: []string{"liblog", "libdl", "libc++", "libdl", "libc", "libm"},
42 out: []string{"liblog", "libc++", "libdl", "libc", "libm"},
43 },
44}
45
46func TestLastUniqueElements(t *testing.T) {
47 for _, testCase := range lastUniqueElementsTestCases {
48 out := lastUniqueElements(testCase.in)
49 if !reflect.DeepEqual(out, testCase.out) {
50 t.Errorf("incorrect output:")
51 t.Errorf(" input: %#v", testCase.in)
52 t.Errorf(" expected: %#v", testCase.out)
53 t.Errorf(" got: %#v", out)
54 }
55 }
56}