From c9f41a65afd9ea6f85dbada0b3f268be9cb0fedb Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 23 Aug 2018 15:00:25 +0200 Subject: [PATCH] Improve docs and tests of utils package --- utils/slices.go | 7 ++++++- utils/slices_test.go | 15 ++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/utils/slices.go b/utils/slices.go index 949634a..c91496f 100644 --- a/utils/slices.go +++ b/utils/slices.go @@ -1,6 +1,7 @@ package utils -func StringInSlice(s string, a []string) bool { +// StringInSlice returns whether the given string is in the string slice. +func StringInSlice(a []string, s string) bool { for _, entry := range a { if entry == s { return true @@ -9,6 +10,7 @@ func StringInSlice(s string, a []string) bool { return false } +// RemoveFromStringSlice removes the given string from the slice and returns a new slice. func RemoveFromStringSlice(a []string, s string) []string { for key, entry := range a { if entry == s { @@ -19,12 +21,14 @@ func RemoveFromStringSlice(a []string, s string) []string { return a } +// DuplicateStrings returns a new copy of the given string slice. func DuplicateStrings(a []string) []string { b := make([]string, len(a)) copy(b, a) return b } +// StringSliceEqual returns whether the given string slices are equal. func StringSliceEqual(a []string, b []string) bool { if len(a) != len(b) { return false @@ -37,6 +41,7 @@ func StringSliceEqual(a []string, b []string) bool { return true } +// DuplicateBytes returns a new copy of the given byte slice. func DuplicateBytes(a []byte) []byte { b := make([]byte, len(a)) copy(b, a) diff --git a/utils/slices_test.go b/utils/slices_test.go index d917880..15c7580 100644 --- a/utils/slices_test.go +++ b/utils/slices_test.go @@ -13,23 +13,23 @@ var ( ) func TestStringInSlice(t *testing.T) { - if !StringInSlice("a", stringTestSlice) { + if !StringInSlice(stringTestSlice, "a") { t.Fatal("string reported not in slice (1), but it is") } - if !StringInSlice("d", stringTestSlice) { + if !StringInSlice(stringTestSlice, "d") { t.Fatal("string reported not in slice (2), but it is") } - if !StringInSlice("j", stringTestSlice) { + if !StringInSlice(stringTestSlice, "j") { t.Fatal("string reported not in slice (3), but it is") } - if StringInSlice("0", stringTestSlice) { + if StringInSlice(stringTestSlice, "0") { t.Fatal("string reported in slice (1), but is not") } - if StringInSlice("x", stringTestSlice) { + if StringInSlice(stringTestSlice, "x") { t.Fatal("string reported in slice (2), but is not") } - if StringInSlice("k", stringTestSlice) { + if StringInSlice(stringTestSlice, "k") { t.Fatal("string reported in slice (3), but is not") } } @@ -37,12 +37,13 @@ func TestStringInSlice(t *testing.T) { func TestRemoveFromStringSlice(t *testing.T) { test1 := DuplicateStrings(stringTestSlice) test1 = RemoveFromStringSlice(test1, "b") - if StringInSlice("b", test1) { + if StringInSlice(test1, "b") { t.Fatal("string reported in slice, but was removed") } if len(test1) != len(stringTestSlice)-1 { t.Fatalf("new string slice length not as expected: is %d, should be %d\nnew slice is %v", len(test1), len(stringTestSlice)-1, test1) } + RemoveFromStringSlice(test1, "b") } func TestDuplicateStrings(t *testing.T) {