diff --git a/Examples/test-suite/li_std_vector_vector.i b/Examples/test-suite/li_std_vector_vector.i index 940f56a51..8dbc10e60 100644 --- a/Examples/test-suite/li_std_vector_vector.i +++ b/Examples/test-suite/li_std_vector_vector.i @@ -11,9 +11,9 @@ namespace std { }; %inline %{ -std::vector make_vector_int() { - std::string x[5] = {"1", "2", "3", "4", "5"}; - std::vector v; +std::vector make_vector_int() { + int x[5] = {1, 2, 3, 4, 5}; + std::vector v; for (size_t i = 0; i < 5; ++i) v.push_back(x[i]); return v; diff --git a/Examples/test-suite/r/li_std_vector_vector_runme.R b/Examples/test-suite/r/li_std_vector_vector_runme.R index c2c8853b2..59977c299 100644 --- a/Examples/test-suite/r/li_std_vector_vector_runme.R +++ b/Examples/test-suite/r/li_std_vector_vector_runme.R @@ -6,23 +6,24 @@ source("li_std_vector_vector.R") cacheMetaData(1) v = make_vector_int() -unittest_sequence(v, list(1, 2, 3, 4, 5)) +unittest_sequence(v, as.integer(c(1, 2, 3, 4, 5))) + v = make_vector_vector_int() unittest(length(v), 1) -unittest_sequence(v[[1]], list(1, 2, 3, 4, 5)) +unittest_sequence(v[[1]], as.integer(c(1, 2, 3, 4, 5))) v = make_vector_bool() -unittest_sequence(v, list(TRUE, FALSE, FALSE, FALSE, TRUE)) +unittest_sequence(v, c(TRUE, FALSE, FALSE, FALSE, TRUE)) print(v) v = make_vector_vector_bool() unittest(length(v), 1) print(v) -unittest_sequence(v[[1]], list(FALSE, TRUE, TRUE, TRUE, FALSE)) # Does not actually fail if no match, arg, needs fixing +unittest_sequence(v[[1]], c(FALSE, TRUE, TRUE, TRUE, FALSE)) v = make_vector_string() -unittest_sequence(v, list("aa", "bb", "cc", "dd", "ee")) +unittest_sequence(v, c("aa", "bb", "cc", "dd", "ee")) v = make_vector_vector_string() unittest(length(v), 1) -unittest_sequence(v[[1]], list("1", "2", "3", "4", "5")) +unittest_sequence(v[[1]], c("1", "2", "3", "4", "5")) q(save="no") diff --git a/Examples/test-suite/r/unittest.R b/Examples/test-suite/r/unittest.R index 7f56a579f..35258f9d2 100644 --- a/Examples/test-suite/r/unittest.R +++ b/Examples/test-suite/r/unittest.R @@ -18,10 +18,26 @@ unittesttol <- function(x,y,z) { } unittest_sequence <- function (x,y) { - if (setequal(x, y)) { + x = as.vector(x) + y = as.vector(y) + + if (length(x) == 0 && length(y) == 0) { print("PASS") - } else { - print("FAIL") - stop("Test failed") + return() } + + if (class(x[1]) != class(y[1])) { + print("FAILED") + stop(paste("Test failed: ", class(x[1]), " != ", class(y[1]))) + } + + try(expr = { + if (!any(x != y)) { + print("PASS") + return() + } + }, silent = T) + + print("FAIL") + stop("Test failed") }