context("checkInteger") test_that("checkInteger", { myobj = 1L expect_succ_all(Integer, myobj) myobj = 1 expect_fail_all(Integer, myobj) expect_true(testInteger(integer(0))) expect_false(testInteger(NULL)) expect_false(testInteger(TRUE)) expect_false(testInteger(FALSE)) expect_true(testInteger(NA)) expect_false(testInteger(NA, any.missing = FALSE)) expect_false(testInteger(NA, all.missing = FALSE)) expect_true(testInteger(1L)) expect_true(testInteger(1:3, any.missing = FALSE, min.len = 1L, max.len = 3L)) expect_false(testInteger(1:3, any.missing = FALSE, len = 5)) expect_true(testInteger(1:3, lower = 1L, upper = 3L)) expect_false(testInteger(1:3, lower = 5)) expect_false(testInteger(1:3, upper = 1)) expect_error(assertInteger(1), "integer") }) test_that("bounds of vectors with only missings are not checked", { expect_true(checkInteger(NA, lower = 1)) expect_true(checkInteger(NA_character_, upper = 10)) expect_fail_all(Integer, 0L, lower = 1L) expect_fail_all(Integer, 100L, upper = 10L) }) test_that("sorted works", { xu = sample(10) while(!is.unsorted(xu)) xu = sample(10) xs = sort(xu) expect_true(checkInteger(xs, sorted = TRUE)) expect_true(grepl("sorted", checkInteger(xu, sorted = TRUE), fixed = TRUE)) expect_true(checkInteger(1L, sorted = TRUE)) expect_true(checkInteger(integer(0), sorted = TRUE)) expect_true(checkInteger(NA_integer_, sorted = TRUE)) expect_true(checkInteger(rep(NA_integer_, 10), sorted = TRUE)) for (i in 1:10) { x = sample(10) x[sample(10, sample(7:9, 1))] = NA if (is.unsorted(na.omit(x))) expect_true(grepl("sorted", checkInteger(xu, sorted = TRUE), fixed = TRUE)) else expect_true(grepl("sorted", checkInteger(xu, sorted = TRUE), fixed = TRUE)) } }) test_that("factors are detected (#164)", { x = factor(letters) expect_error(assertInteger(x), "factor") }) test_that("typed.missing", { expect_true(testInteger(NA_character_)) expect_true(testInteger(NA_character_, typed.missing = FALSE)) expect_false(testInteger(NA_character_, typed.missing = TRUE)) expect_true(testInteger(character())) expect_true(testInteger(character(), typed.missing = FALSE)) expect_false(testInteger(character(), typed.missing = TRUE)) })