@@ -34,25 +34,17 @@ expect_setequal <- function(object, expected) {
3434 testthat_warn(" expect_setequal() ignores names" )
3535 }
3636
37- expect_setequal_(act , exp )
37+ expect_setequal_(" Expected %s to have the same values as %s. " , act , exp )
3838}
3939
40- expect_setequal_ <- function (
41- act ,
42- exp ,
43- trace_env = caller_env()
44- ) {
40+ expect_setequal_ <- function (msg , act , exp , trace_env = caller_env()) {
4541 act_miss <- unique(act $ val [! act $ val %in% exp $ val ])
4642 exp_miss <- unique(exp $ val [! exp $ val %in% act $ val ])
4743
4844 if (length(exp_miss ) == 0 && length(act_miss ) == 0 ) {
4945 pass()
5046 } else {
51- msg_exp <- sprintf(
52- " Expected %s to have the same values as %s." ,
53- act $ lab ,
54- exp $ lab
55- )
47+ msg_exp <- sprintf(msg , act $ lab , exp $ lab )
5648 msg_act <- c(
5749 sprintf(" Actual: %s" , values(act $ val )),
5850 sprintf(" Expected: %s" , values(exp $ val )),
@@ -103,13 +95,16 @@ expect_mapequal <- function(object, expected) {
10395 pass()
10496 } else {
10597 if (! setequal(act_nms , exp_nms )) {
106- act_names <- labelled_value(names(act $ val ), paste0(" names of " , act $ lab ))
107- exp_names <- labelled_value(names(exp $ val ), paste0(" names of " , exp $ lab ))
108- expect_setequal_(act_names , exp_names )
98+ msg <- " Expected %s to have the same names as %s."
99+ act_names <- labelled_value(names(act $ val ), act $ lab )
100+ exp_names <- labelled_value(names(exp $ val ), exp $ lab )
101+ expect_setequal_(msg , act_names , exp_names )
109102 } else {
110103 if (edition_get() > = 3 ) {
111104 act <- labelled_value(act $ val [exp_nms ], act $ lab )
112- expect_waldo_equal_(" equal" , act , exp )
105+
106+ msg <- " Expected %s to contain the same values as %s."
107+ expect_waldo_equal_(msg , act , exp , tolerance = testthat_tolerance())
113108 } else {
114109 # Packages depend on 2e behaviour, but the expectation isn't written
115110 # to be reused, and we don't want to bother
0 commit comments