mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-05-06 22:18:28 +00:00
Slices & maps comparision.
This commit is contained in:
+33
-1
@@ -6,7 +6,7 @@ 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, 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 {
|
||||||
@@ -21,3 +21,35 @@ func StringsIsSubset(subset []string, full []string, errorFmt string) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StrSlicesEqual compares two slices for equality
|
||||||
|
func StrSlicesEqual(s1, s2 []string) bool {
|
||||||
|
if len(s1) != len(s2) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, s := range s1 {
|
||||||
|
if s != s2[i] {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// StrMapsEqual compares two map[string]string
|
||||||
|
func StrMapsEqual(m1, m2 map[string]string) bool {
|
||||||
|
if len(m1) != len(m2) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v := range m1 {
|
||||||
|
v2, ok := m2[k]
|
||||||
|
if !ok || v != v2 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -16,3 +16,24 @@ func (s *ListSuite) TestStringsIsSubset(c *C) {
|
|||||||
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\\]")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *ListSuite) TestStrSlicesEqual(c *C) {
|
||||||
|
c.Check(StrSlicesEqual(nil, nil), Equals, true)
|
||||||
|
c.Check(StrSlicesEqual(nil, []string{}), Equals, true)
|
||||||
|
c.Check(StrSlicesEqual([]string{}, nil), Equals, true)
|
||||||
|
c.Check(StrSlicesEqual([]string{"a", "b"}, []string{"a", "b"}), Equals, true)
|
||||||
|
|
||||||
|
c.Check(StrSlicesEqual(nil, []string{"a"}), Equals, false)
|
||||||
|
c.Check(StrSlicesEqual([]string{"a", "c"}, []string{"a", "b"}), Equals, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *ListSuite) TestStrMapsEqual(c *C) {
|
||||||
|
c.Check(StrMapsEqual(map[string]string{}, nil), Equals, true)
|
||||||
|
c.Check(StrMapsEqual(nil, map[string]string{}), Equals, true)
|
||||||
|
c.Check(StrMapsEqual(nil, nil), Equals, true)
|
||||||
|
c.Check(StrMapsEqual(map[string]string{"a": "1", "b": "2"}, map[string]string{"a": "1", "b": "2"}), Equals, true)
|
||||||
|
|
||||||
|
c.Check(StrMapsEqual(map[string]string{"a": "1", "b": "2"}, map[string]string{"a": "1", "b": "3"}), Equals, false)
|
||||||
|
c.Check(StrMapsEqual(map[string]string{"a": "1", "b": "2"}, map[string]string{"a": "1", "c": "2"}), Equals, false)
|
||||||
|
c.Check(StrMapsEqual(map[string]string{"a": "1", "b": "2"}, map[string]string{"a": "1"}), Equals, false)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user