From 651cd5a02f2f9cce3d9f256bfa85553b8e17c3a0 Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Fri, 28 May 2021 14:27:59 +0200 Subject: use Go modules, update Makefile to my current conventions --- vendor/github.com/jpillora/longestcommon/README.md | 45 --------- vendor/github.com/jpillora/longestcommon/lc.go | 82 --------------- .../github.com/jpillora/longestcommon/lc_test.go | 111 --------------------- 3 files changed, 238 deletions(-) delete mode 100644 vendor/github.com/jpillora/longestcommon/README.md delete mode 100644 vendor/github.com/jpillora/longestcommon/lc.go delete mode 100644 vendor/github.com/jpillora/longestcommon/lc_test.go (limited to 'vendor/github.com/jpillora') diff --git a/vendor/github.com/jpillora/longestcommon/README.md b/vendor/github.com/jpillora/longestcommon/README.md deleted file mode 100644 index f32d865..0000000 --- a/vendor/github.com/jpillora/longestcommon/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# longestcommon - -Find the longest common prefix/suffix across of list of strings in Go (Golang). Runs in `O(n)`. - -[![GoDoc](https://godoc.org/github.com/jpillora/longestcommon?status.svg)](https://godoc.org/github.com/jpillora/longestcommon) [![Circle CI](https://circleci.com/gh/jpillora/longestcommon.svg?style=shield)](https://circleci.com/gh/jpillora/longestcommon) - -### Install - -``` -$ go get -v github.com/jpillora/longestcommon -``` - -### Usage - -``` go -longestcommon.Prefix([]string{"flower","flow","fleet"}) //"fl" -longestcommon.Suffix([]string{"flower","power","lower"}) //"ower" -``` - -### TODO - -* Include [Longest Common Subsequence](https://github.com/jpillora/lcs) with its TODOs completed - -#### MIT License - -Copyright © 2015 Jaime Pillora <dev@jpillora.com> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/jpillora/longestcommon/lc.go b/vendor/github.com/jpillora/longestcommon/lc.go deleted file mode 100644 index 788a7a6..0000000 --- a/vendor/github.com/jpillora/longestcommon/lc.go +++ /dev/null @@ -1,82 +0,0 @@ -package longestcommon - -import "strings" - -//TrimPrefix removes the longest common prefix from all provided strings -func TrimPrefix(strs []string) { - p := Prefix(strs) - if p == "" { - return - } - for i, s := range strs { - strs[i] = strings.TrimPrefix(s, p) - } -} - -//TrimSuffix removes the longest common suffix from all provided strings -func TrimSuffix(strs []string) { - p := Suffix(strs) - if p == "" { - return - } - for i, s := range strs { - strs[i] = strings.TrimSuffix(s, p) - } -} - -//Prefix returns the longest common prefix of the provided strings -func Prefix(strs []string) string { - return longestCommonXfix(strs, true) -} - -//Suffix returns the longest common suffix of the provided strings -func Suffix(strs []string) string { - return longestCommonXfix(strs, false) -} - -func longestCommonXfix(strs []string, pre bool) string { - //short-circuit empty list - if len(strs) == 0 { - return "" - } - xfix := strs[0] - //short-circuit single-element list - if len(strs) == 1 { - return xfix - } - //compare first to rest - for _, str := range strs[1:] { - xfixl := len(xfix) - strl := len(str) - //short-circuit empty strings - if xfixl == 0 || strl == 0 { - return "" - } - //maximum possible length - maxl := xfixl - if strl < maxl { - maxl = strl - } - //compare letters - if pre { - //prefix, iterate left to right - for i := 0; i < maxl; i++ { - if xfix[i] != str[i] { - xfix = xfix[:i] - break - } - } - } else { - //suffix, iternate right to left - for i := 0; i < maxl; i++ { - xi := xfixl - i - 1 - si := strl - i - 1 - if xfix[xi] != str[si] { - xfix = xfix[xi+1:] - break - } - } - } - } - return xfix -} diff --git a/vendor/github.com/jpillora/longestcommon/lc_test.go b/vendor/github.com/jpillora/longestcommon/lc_test.go deleted file mode 100644 index 136e3ff..0000000 --- a/vendor/github.com/jpillora/longestcommon/lc_test.go +++ /dev/null @@ -1,111 +0,0 @@ -package longestcommon - -import ( - "strings" - "testing" -) - -func doTest(t *testing.T, lines, pre, suf string) { - strs := []string{} - if lines != "" { - strs = strings.Split(lines, "\n") - } - p := Prefix(strs) - if p != pre { - t.Fatalf("fail: expected prefix '%s', got '%s'", pre, p) - } - s := Suffix(strs) - if s != suf { - t.Fatalf("fail: expected suffix '%s', got '%s'", suf, s) - } -} - -func TestXFix1(t *testing.T) { - doTest(t, ``, "", "") -} - -func TestXFix2(t *testing.T) { - doTest(t, `single`, "single", "single") -} - -func TestXFix3(t *testing.T) { - doTest(t, "single\ndouble", "", "le") -} - -func TestXFix4(t *testing.T) { - doTest(t, "flower\nflow\nfleet", "fl", "") -} - -func TestXFix5(t *testing.T) { - doTest(t, `My Awesome Album - 01.mp3 -My Awesome Album - 11.mp3 -My Awesome Album - 03.mp3 -My Awesome Album - 04.mp3 -My Awesome Album - 05.mp3 -My Awesome Album - 06.mp3 -My Awesome Album - 07.mp3 -My Awesome Album - 08.mp3 -My Awesome Album - 09.mp3 -My Awesome Album - 10.mp3 -My Awesome Album - 11.mp3 -My Awesome Album - 12.mp3 -My Awesome Album - 13.mp3 -My Awesome Album - 14.mp3 -My Awesome Album - 15.mp3 -My Awesome Album - 16.mp3 -My Awesome Album - 17.mp3 -My Awesome Album - 18.mp3 -My Awesome Album - 19.mp3 -My Awesome Album - 20.mp3 -My Awesome Album - 21.mp3 -My Awesome Album - 22.mp3 -My Awesome Album - 23.mp3 -My Awesome Album - 24.mp3 -My Awesome Album - 25.mp3 -My Awesome Album - 26.mp3 -My Awesome Album - 27.mp3 -My Awesome Album - 28.mp3 -My Awesome Album - 29.mp3 -My Awesome Album - 30.mp3 -My Awesome Album - 31.mp3 -My Awesome Album - 32.mp3 -My Awesome Album - 33.mp3 -My Awesome Album - 34.mp3 -My Awesome Album - 35.mp3 -My Awesome Album - 36.mp3 -My Awesome Album - 37.mp3 -My Awesome Album - 38.mp3 -My Awesome Album - 39.mp3`, "My Awesome Album - ", ".mp3") -} - -func TestTrimPrefix1(t *testing.T) { - strs := []string{"flower", "flow", "fleet"} - TrimPrefix(strs) - if strs[0] != "ower" { - t.Fatalf("fail: expected result string to be 'ower', got '%s'", strs[0]) - } -} - -func TestTrimPrefix2(t *testing.T) { - strs := []string{"flower", "tree"} - TrimPrefix(strs) //no common prefix - if strs[0] != "flower" { - t.Fatalf("fail: expected result string to be 'flower', got '%s'", strs[0]) - } -} - -func TestTrimSuffix1(t *testing.T) { - strs := []string{"flower", "power"} - TrimSuffix(strs) - if strs[0] != "fl" { - t.Fatalf("fail: expected result string to be 'fl', got '%s'", strs[0]) - } -} - -func TestTrimSuffix2(t *testing.T) { - strs := []string{"flower", "tree"} - TrimSuffix(strs) //no common suffix - if strs[0] != "flower" { - t.Fatalf("fail: expected result string to be 'flower', got '%s'", strs[0]) - } -} -- cgit v1.2.3