library(bayesplot) context("Shared: misc. functions") # suggested packages ------------------------------------------------------ test_that("suggested_package throws correct errors", { expect_error(suggested_package("NOPACKAGE"), "Please install the NOPACKAGE package") expect_error(suggested_package(c("testthat", "gridExtra")), "length") expect_silent(suggested_package("testthat")) expect_silent(suggested_package("testthat", min_version = "0.0.1")) expect_error(suggested_package("testthat", min_version = "100000.0.0")) }) # check_ignored_arguments ------------------------------------------------- test_that("check_ignored_arguments throws correct warnings", { expect_warning(check_ignored_arguments(a = 1, b = "2"), "The following arguments were unrecognized and ignored: a, b") expect_warning(check_ignored_arguments(a = 1, b = "2", ok_args = c("a", "c")), "The following arguments were unrecognized and ignored: b") expect_silent(check_ignored_arguments(a = 1, b = "2", ok_args = c("a", "b", "c"))) }) # parameter selection ----------------------------------------------------- all_pars <- c("param_1", "param_2", "param[1]", "param[2]", "param[1,3,5]", "param[2,4,5]", "alpha", "beta") test_that("select_parameters throws errors if 'explicit' not found", { expect_error(select_parameters(explicit = c("alpha", "ALPHA"), complete_pars = all_pars), "don't match parameter names: ALPHA") expect_error(select_parameters(c("BETA", "ALPHA"), complete = all_pars), "don't match parameter names: BETA, ALPHA") }) test_that("select_parameters throws errors if no regex matches", { expect_error(select_parameters(explicit = c("alpha", "beta"), patterns = "tomato|apple", complete_pars = all_pars), "No matches for 'regex_pars'") }) test_that("select_parameters works with regex", { expect_identical(select_parameters(patterns = "param", complete = all_pars), all_pars[-c(7:8)]) expect_identical(select_parameters(patterns = c("param", "tomato"), complete_pars = all_pars), all_pars[-c(7:8)]) expect_identical(select_parameters(patterns = c("param\\[", "tomato"), complete_pars = all_pars), all_pars[3:6]) expect_identical(select_parameters(patterns = c("param\\_"), complete_pars = all_pars), all_pars[1:2]) }) test_that("select_parameters works without regex", { expect_identical(select_parameters(explicit = "alpha", complete_pars = all_pars), "alpha") expect_identical(select_parameters(c("alpha", "param[1,3,5]"), complete_pars = all_pars), c("alpha", "param[1,3,5]")) }) test_that("select_parameters works with both explicit and regex", { expect_identical(select_parameters(explicit = "alpha", patterns = "param", complete_pars = all_pars), c("alpha", all_pars[-c(7:8)])) expect_identical(select_parameters(explicit = "alpha", patterns = "alpha", complete_pars = all_pars), "alpha") expect_identical(select_parameters(explicit = c("alpha", "beta"), patterns = "param\\[|param\\_", complete_pars = all_pars), c(all_pars[7:8], all_pars[-c(7:8)])) })