mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-01-12 03:21:33 +00:00
Slices & maps comparision.
This commit is contained in:
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
// StringsIsSubset checks that subset is strict subset of full, and returns
|
||||
// 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 {
|
||||
found := false
|
||||
for _, s := range full {
|
||||
@@ -21,3 +21,35 @@ func StringsIsSubset(subset []string, full []string, errorFmt string) error {
|
||||
}
|
||||
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]")
|
||||
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