• expect_setequal(x, y) tests that every element of x occurs in y, and that every element of y occurs in x.

  • expect_mapequal(x, y) tests that x and y have the same names, and that x[names(y)] equals x.

expect_setequal(object, expected)

expect_mapequal(object, expected)

Arguments

object

Computation and value to compare it to.

Both arguments supports limited unquoting to make it easier to generate readable failures within a function or for loop. See quasi_label for more details.

expected

Computation and value to compare it to.

Both arguments supports limited unquoting to make it easier to generate readable failures within a function or for loop. See quasi_label for more details.

Details

Note that expect_setequal() ignores names, and you will be warned if both object and expected have them.

Examples

expect_setequal(letters, rev(letters)) show_failure(expect_setequal(letters[-1], rev(letters)))
#> Failed expectation: #> rev(letters)[26] absent from letters[-1]
x <- list(b = 2, a = 1) expect_mapequal(x, list(a = 1, b = 2)) show_failure(expect_mapequal(x, list(a = 1)))
#> Failed expectation: #> Names absent from `expected`: "b",
show_failure(expect_mapequal(x, list(a = 1, b = "x")))
#> Failed expectation: #> act$val[exp_nms] not equal to exp$val. #> Component “b”: Modes: numeric, character #> Component “b”: target is numeric, current is character
show_failure(expect_mapequal(x, list(a = 1, b = 2, c = 3)))
#> Failed expectation: #> Names absent from `object`: "c",