| // +build windows linux darwin openbsd freebsd netbsd |
| |
| package liner |
| |
| import "testing" |
| |
| type testItem struct { |
| list []string |
| prefix string |
| } |
| |
| func TestPrefix(t *testing.T) { |
| list := []testItem{ |
| {[]string{"food", "foot"}, "foo"}, |
| {[]string{"foo", "foot"}, "foo"}, |
| {[]string{"food", "foo"}, "foo"}, |
| {[]string{"food", "foe", "foot"}, "fo"}, |
| {[]string{"food", "foot", "barbeque"}, ""}, |
| {[]string{"cafeteria", "café"}, "caf"}, |
| {[]string{"cafe", "café"}, "caf"}, |
| {[]string{"cafè", "café"}, "caf"}, |
| {[]string{"cafés", "café"}, "café"}, |
| {[]string{"áéíóú", "áéíóú"}, "áéíóú"}, |
| {[]string{"éclairs", "éclairs"}, "éclairs"}, |
| {[]string{"éclairs are the best", "éclairs are great", "éclairs"}, "éclairs"}, |
| {[]string{"éclair", "éclairs"}, "éclair"}, |
| {[]string{"éclairs", "éclair"}, "éclair"}, |
| {[]string{"éclair", "élan"}, "é"}, |
| } |
| |
| for _, test := range list { |
| lcp := longestCommonPrefix(test.list) |
| if lcp != test.prefix { |
| t.Errorf("%s != %s for %+v", lcp, test.prefix, test.list) |
| } |
| } |
| } |