Keys

func Keys(val any) TestDeep

Keys is a smuggler operator. It takes a map and compares its ordered keys to val.

val can be a slice of items of the same type as the map keys:

got := map[string]bool{"c": true, "a": false, "b": true}
td.Cmp(t, got, td.Keys([]string{"a", "b", "c"})) // succeeds, keys sorted
td.Cmp(t, got, td.Keys([]string{"c", "a", "b"})) // fails as not sorted

as well as an other operator as Bag, for example, to test keys in an unsorted manner:

got := map[string]bool{"c": true, "a": false, "b": true}
td.Cmp(t, got, td.Keys(td.Bag("c", "a", "b"))) // succeeds

See also Values and ContainsKey.

See also Keys godoc.

Example

Base example

CmpKeys shortcut

func CmpKeys(t TestingT, got, val any, args ...any) bool

CmpKeys is a shortcut for:

td.Cmp(t, got, td.Keys(val), 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 CmpKeys godoc.

Example

Base example

T.Keys shortcut

func (t *T) Keys(got, val any, args ...any) bool

Keys is a shortcut for:

t.Cmp(got, td.Keys(val), 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.Keys godoc.

Example

Base example