Skip to content

Commit

Permalink
bugfix: SliceContainsAll should pass cmp.Option to SliceContainsSubset (
Browse files Browse the repository at this point in the history
#137)

* SliceContainsAll should pass cmp.Option
to SliceContainsSubset

* remove unnecessary newline
  • Loading branch information
pkazmierczak authored May 17, 2023
1 parent 9e5847f commit b8f0ac5
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions internal/assertions/assertions.go
Original file line number Diff line number Diff line change
Expand Up @@ -414,22 +414,22 @@ func SliceNotContainsFunc[A, B any](slice []A, item B, eq func(a A, b B) bool) (
return
}

func SliceContainsAll[A any](slice, items []A) (s string) {
func SliceContainsAll[A any](slice, items []A, opts ...cmp.Option) (s string) {
if len(slice) != len(items) {
s = "expected slice and items to contain same number of elements\n"
s += bullet("len(slice): %d\n", len(slice))
s += bullet("len(items): %d\n", len(items))
return s
}
return SliceContainsSubset(slice, items)
return SliceContainsSubset(slice, items, opts...)
}

func SliceContainsSubset[A any](slice, items []A) (s string) {
func SliceContainsSubset[A any](slice, items []A, opts ...cmp.Option) (s string) {
OUTER:
for _, target := range items {
var item A
for _, item = range slice {
if cmp.Equal(target, item) {
if cmp.Equal(target, item, opts...) {
continue OUTER
}
}
Expand Down
4 changes: 2 additions & 2 deletions must/must.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions test.go
Original file line number Diff line number Diff line change
Expand Up @@ -229,14 +229,14 @@ func SliceNotContainsFunc[A, B any](t T, slice []A, item B, eq func(a A, b B) bo
// same.
func SliceContainsAll[A any](t T, slice, items []A, settings ...Setting) {
t.Helper()
invoke(t, assertions.SliceContainsAll(slice, items), settings...)
invoke(t, assertions.SliceContainsAll(slice, items, options(settings...)...), settings...)
}

// SliceContainsSubset asserts slice contains each item in items, in no particular
// order. There could be additional elements in slice not in items.
func SliceContainsSubset[A any](t T, slice, items []A, settings ...Setting) {
t.Helper()
invoke(t, assertions.SliceContainsSubset(slice, items), settings...)
invoke(t, assertions.SliceContainsSubset(slice, items, options(settings...)...), settings...)
}

// Positive asserts n > 0.
Expand Down

0 comments on commit b8f0ac5

Please sign in to comment.