Fix string search.

This commit is contained in:
Andrey Smirnov
2013-12-16 16:39:57 +04:00
parent f58db85edf
commit 247acf819e
2 changed files with 6 additions and 4 deletions
+3 -3
View File
@@ -7,16 +7,16 @@ import (
// StringsIsSubset checks that subset is strict subset of full, and returns // StringsIsSubset checks that subset is strict subset of full, and returns
// error formatted with errorFmt otherwise // error formatted with errorFmt otherwise
func StringsIsSubset(subset []string, full []string, errorFmt string) error { func StringsIsSubset(subset []string, full []string, errorFmt string) error {
for checked := range subset { for _, checked := range subset {
found := false found := false
for s := range full { for _, s := range full {
if checked == s { if checked == s {
found = true found = true
break break
} }
} }
if !found { if !found {
return fmt.Errorf(errorFmt, checked, full) return fmt.Errorf(errorFmt, checked)
} }
} }
return nil return nil
+3 -1
View File
@@ -7,10 +7,12 @@ import (
type ListSuite struct { type ListSuite struct {
} }
var _ = Suite(&ListSuite{})
func (s *ListSuite) TestStringsIsSubset(c *C) { func (s *ListSuite) TestStringsIsSubset(c *C) {
err := StringsIsSubset([]string{"a", "b"}, []string{"a", "b", "c"}, "[%s]") err := StringsIsSubset([]string{"a", "b"}, []string{"a", "b", "c"}, "[%s]")
c.Assert(err, IsNil) c.Assert(err, IsNil)
err = StringsIsSubset([]string{"b", "a"}, []string{"b", "c"}, "[%s]") err = StringsIsSubset([]string{"b", "a"}, []string{"b", "c"}, "[%s]")
c.Assert(err, ErrorMatches, "[a]") c.Assert(err, ErrorMatches, "\\[a\\]")
} }