SuperSetOf
func SuperSetOf(expectedItems ...any) TestDeep
SuperSetOf operator compares the contents of an array or a slice (or a pointer on array/slice) ignoring duplicates and without taking care of the order of items.
During a match, each expected item should match in the compared array/slice. But some items in the compared array/slice may not be expected.
td.Cmp(t, []int{1, 1, 2}, td.SuperSetOf(1)) // succeeds
td.Cmp(t, []int{1, 1, 2}, td.SuperSetOf(1, 3)) // fails, 3 is missing
// works with slices/arrays of any type
td.Cmp(t, personSlice, td.SuperSetOf(
Person{Name: "Bob", Age: 32},
Person{Name: "Alice", Age: 26},
))
To flatten a non-[]any
slice/array, use Flatten
function
and so avoid boring and inefficient copies:
expected := []int{2, 1}
td.Cmp(t, []int{1, 1, 2, 8}, td.SuperSetOf(td.Flatten(expected))) // succeeds
// = td.Cmp(t, []int{1, 1, 2, 8}, td.SubSetOf(2, 1))
exp1 := []int{2, 1}
exp2 := []int{5, 8}
td.Cmp(t, []int{1, 5, 1, 8, 42, 3, 3},
td.SuperSetOf(td.Flatten(exp1), 3, td.Flatten(exp2))) // succeeds
// = td.Cmp(t, []int{1, 5, 1, 8, 42, 3, 3}, td.SuperSetOf(2, 1, 3, 5, 8))
TypeBehind
method can return a non-nil
reflect.Type
if all items
known non-interface types are equal, or if only interface types
are found (mostly issued from Isa
) and they are equal.
See also SuperSetOf godoc.
Example
CmpSuperSetOf shortcut
func CmpSuperSetOf(t TestingT, got any, expectedItems []any, args ...any) bool
CmpSuperSetOf is a shortcut for:
td.Cmp(t, got, td.SuperSetOf(expectedItems...), args...)
See above for details.
Returns true if the test is OK, false if it fails.
If t is a *T
then its Config field is inherited.
args⦠are optional and allow to name the test. This name is
used in case of failure to qualify the test. If len(args) > 1
and
the first item of args is a string
and contains a β%β rune
then
fmt.Fprintf
is used to compose the name, else args are passed to
fmt.Fprint
. Do not forget it is the name of the test, not the
reason of a potential failure.
See also CmpSuperSetOf godoc.
Example
T.SuperSetOf shortcut
func (t *T) SuperSetOf(got any, expectedItems []any, args ...any) bool
SuperSetOf is a shortcut for:
t.Cmp(got, td.SuperSetOf(expectedItems...), args...)
See above for details.
Returns true if the test is OK, false if it fails.
args⦠are optional and allow to name the test. This name is
used in case of failure to qualify the test. If len(args) > 1
and
the first item of args is a string
and contains a β%β rune
then
fmt.Fprintf
is used to compose the name, else args are passed to
fmt.Fprint
. Do not forget it is the name of the test, not the
reason of a potential failure.
See also T.SuperSetOf godoc.