aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/jpillora/longestcommon
diff options
context:
space:
mode:
authorStefan Majewsky <stefan.majewsky@sap.com>2021-05-28 14:27:59 +0200
committerStefan Majewsky <stefan.majewsky@sap.com>2021-05-28 14:44:42 +0200
commit651cd5a02f2f9cce3d9f256bfa85553b8e17c3a0 (patch)
tree9bffcfa33d8ebb1b84aa69e4cc297d2b178cd4c1 /vendor/github.com/jpillora/longestcommon
parentf5332c147be25b138294151b3dd57ec4e0f28e26 (diff)
downloadgo-schwift-651cd5a02f2f9cce3d9f256bfa85553b8e17c3a0.tar.gz
use Go modules, update Makefile to my current conventions
Diffstat (limited to 'vendor/github.com/jpillora/longestcommon')
-rw-r--r--vendor/github.com/jpillora/longestcommon/README.md45
-rw-r--r--vendor/github.com/jpillora/longestcommon/lc.go82
-rw-r--r--vendor/github.com/jpillora/longestcommon/lc_test.go111
3 files changed, 0 insertions, 238 deletions
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 &lt;dev@jpillora.com&gt;
-
-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])
- }
-}