expect_setequal {testthat} | R Documentation

## Expectation: do two vectors contain the same values?

### Description

- `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`.

### Usage

    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)))

    x <- list(b = 2, a = 1)
    expect_mapequal(x, list(a = 1, b = 2))
    show_failure(expect_mapequal(x, list(a = 1)))
    show_failure(expect_mapequal(x, list(a = 1, b = "x")))
    show_failure(expect_mapequal(x, list(a = 1, b = 2, c = 3)))

[Package testthat version 2.1.1 Index]