context("input_checking")
# test .check_numeric_input
test_that(".check_numeric_input error-free when expected", {
expect_null(.check_numeric_input(1:10))
expect_null(.check_numeric_input(c(1:10,NA,1:20,NA)))
my_vals <- c(1,5,2,NA)
expect_null(.check_numeric_input(my_vals))
expect_null(.check_numeric_input(1, scalar = TRUE))
expect_null(.check_numeric_input(-10:10, whole_num = TRUE))
expect_null(.check_numeric_input(NA, allow_NA = TRUE))
})
test_that(".check_numeric_input throws appropriate errors", {
my_matrix <- matrix(1:10,nrow = 2)
expect_error(.check_numeric_input(my_matrix),
'"my_matrix" must be a vector \\(one-dimensional object\\)')
expect_error(.check_numeric_input(numeric(0)),
'"numeric\\(0\\)" length must be > 0')
expect_error(.check_numeric_input(c(1,1), allow_dup = FALSE),
'"c\\(1, 1\\)" must have no duplicates')
expect_error(.check_numeric_input(c(NA,NA,NA)),
'"c\\(NA, NA, NA\\)" must have at least one non-NA value')
expect_error(.check_numeric_input(letters[1:5]),
'"letters\\[1:5\\]" must be a numeric vector')
my_letters <- letters[1:10]
expect_error(.check_numeric_input(my_letters),
'"my_letters" must be a numeric vector')
expect_error(.check_numeric_input(1:10, lower_bound = 3),
'"1\\:10" must be greater than or equal to 3')
expect_error(.check_numeric_input(1:10, lower_bound = 0, upper_bound = 5),
'"1\\:10" must be less than or equal to 5')
expect_error(.check_numeric_input(1:10, scalar = TRUE),
'"1\\:10" length must be 1 since expecting scalar')
expect_error(.check_numeric_input(1.5:10.5, whole_num = TRUE),
'"1.5\\:10.5" must be whole number\\(s\\)')
})
# test .check_binary_input
test_that(".check_binary_input error-free when expected", {
expect_null(.check_binary_input(c('a','b')))
expect_null(.check_binary_input(1:2, paired = TRUE))
expect_null(.check_binary_input(5))
expect_null(.check_binary_input(factor(rep(1:2,10))))
expect_null(.check_binary_input(c(F,T,T,F)))
my_vals <- c(1,10,1,1,NA,10)
expect_null(.check_binary_input(my_vals))
})
test_that(".check_binary_input throws appropriate errors", {
my_matrix <- matrix(rep(c('a','b'),5),nrow = 2)
expect_error(.check_binary_input(my_matrix),
'"my_matrix" must be a vector \\(one-dimensional object\\)')
expect_error(.check_binary_input(c(1:2,NA), paired = TRUE),
'When "paired" = TRUE "c\\(1:2, NA\\)" cannot have missing values')
expect_error(.check_binary_input(numeric(0)),
'"numeric\\(0\\)" length must be > 0')
expect_error(.check_binary_input(c(NA,NA,NA)),
'"c\\(NA, NA, NA\\)" must have at least one non-NA value')
expect_error(.check_binary_input(1:10),
'"1:10" cannot have more than 2 distinct values')
expect_error(.check_binary_input(1, paired = TRUE),
'When "paired" = TRUE "1" must have exactly 2 distinct values')
expect_error(.check_binary_input(c(1,1,2), paired = TRUE),
'When "paired" = TRUE "c\\(1, 1, 2\\)" must have the same number of samples for each level')
})
# test .check_response_input
test_that(".check_response_input error-free when expected", {
expect_null(.check_response_input(c(0,0,0,1,1,0,0,1)))
expect_null(.check_response_input(c(T,T,F,F,T,F)))
my_vals <- c(1,0,1,1,NA,0)
expect_null(.check_response_input(my_vals))
})
test_that(".check_response_input throws appropriate errors", {
my_matrix <- matrix(rep(0:1,5),nrow = 2)
expect_error(.check_response_input(my_matrix),
'"my_matrix" must be a vector \\(one-dimensional object\\)')
expect_error(.check_response_input(numeric(0)),
'"numeric\\(0\\)" length must be > 0')
expect_error(.check_response_input(c(NA,NA,NA)),
'"c\\(NA, NA, NA\\)" must have at least one non-NA value')
expect_error(.check_response_input(1:10),
'"1:10" must be a numeric vector containing only 0/1 values or a logical vector containing only T/F values')
my_letters <- c('a','b')
expect_error(.check_response_input(my_letters),
'"my_letters" must be a numeric vector containing only 0/1 values or a logical vector containing only T/F values')
my_letters <- c('T','F')
expect_error(.check_response_input(my_letters),
'"my_letters" must be a numeric vector containing only 0/1 values or a logical vector containing only T/F values')
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.