diff options
author | Ken Kellner <ken@kenkellner.com> | 2023-12-03 11:06:25 -0500 |
---|---|---|
committer | Ken Kellner <ken@kenkellner.com> | 2023-12-03 11:06:25 -0500 |
commit | 9f31a28ff889fcfb6f109e747015bf333b4f4b0b (patch) | |
tree | 4cfe59efe731a3859c843f2a17fb9770bee74a43 | |
parent | 991ed72c18ce8103e00fea29280835855a1870eb (diff) |
Some new overall tests and tests for mcmc tools
-rw-r--r-- | R/mcmc_tools.R | 11 | ||||
-rw-r--r-- | inst/tinytest/reference_codaOnly.Rds | bin | 0 -> 49121 bytes | |||
-rw-r--r-- | inst/tinytest/reference_noDIC.Rds | bin | 0 -> 49856 bytes | |||
-rw-r--r-- | inst/tinytest/reference_parsorder.Rds | bin | 0 -> 52714 bytes | |||
-rw-r--r-- | inst/tinytest/reference_parsorder_noDIC.Rds | bin | 0 -> 49656 bytes | |||
-rw-r--r-- | inst/tinytest/test_jags.R | 39 | ||||
-rw-r--r-- | inst/tinytest/test_mcmc_tools.R | 10 |
7 files changed, 39 insertions, 21 deletions
diff --git a/R/mcmc_tools.R b/R/mcmc_tools.R index b8e48a5..24c565c 100644 --- a/R/mcmc_tools.R +++ b/R/mcmc_tools.R @@ -53,17 +53,6 @@ which_params <- function(param, params_raw){ #------------------------------------------------------------------------------ -#Remove parameters from list of params -subset_params <- function(samples, exclude=NULL){ - all_params <- param_names(samples) - if(is.null(exclude)) return(all_params) - params_strip <- strip_params(all_params) - ind <- unlist(sapply(exclude, which_params, all_params)) - all_params[-ind] -} - - -#------------------------------------------------------------------------------ mcmc_to_mat <- function(mcmc_list){ stopifnot(coda::nvar(mcmc_list) == 1) matrix(unlist(mcmc_list), diff --git a/inst/tinytest/reference_codaOnly.Rds b/inst/tinytest/reference_codaOnly.Rds Binary files differnew file mode 100644 index 0000000..23c06ed --- /dev/null +++ b/inst/tinytest/reference_codaOnly.Rds diff --git a/inst/tinytest/reference_noDIC.Rds b/inst/tinytest/reference_noDIC.Rds Binary files differnew file mode 100644 index 0000000..085dad8 --- /dev/null +++ b/inst/tinytest/reference_noDIC.Rds diff --git a/inst/tinytest/reference_parsorder.Rds b/inst/tinytest/reference_parsorder.Rds Binary files differnew file mode 100644 index 0000000..dda02ca --- /dev/null +++ b/inst/tinytest/reference_parsorder.Rds diff --git a/inst/tinytest/reference_parsorder_noDIC.Rds b/inst/tinytest/reference_parsorder_noDIC.Rds Binary files differnew file mode 100644 index 0000000..f6d4d5a --- /dev/null +++ b/inst/tinytest/reference_parsorder_noDIC.Rds diff --git a/inst/tinytest/test_jags.R b/inst/tinytest/test_jags.R index f7cec7a..4477080 100644 --- a/inst/tinytest/test_jags.R +++ b/inst/tinytest/test_jags.R @@ -51,3 +51,42 @@ pdf(NULL) pp <- pp.check(out, "alpha", "beta") dev.off() expect_equal(pp, 0) + +# codaOnly--------------------------------------------------------------------- +out <- jags(data = data, inits = inits, parameters.to.save = params, + model.file = modfile, n.chains = 3, n.adapt = 100, n.iter = 100, + n.burnin = 50, n.thin = 1, codaOnly=c("mu", "sigma"), verbose=FALSE) +ref <- readRDS("reference_codaOnly.Rds") + +out$mcmc.info$elapsed.mins <- ref$mcmc.inf$elapsed.mins +expect_identical(out[-c(17,18,21)], ref[-c(17,18,21)]) + +# DIC = FALSE------------------------------------------------------------------ +out <- jags(data = data, inits = inits, parameters.to.save = params, + model.file = modfile, n.chains = 3, n.adapt = 100, n.iter = 100, + n.burnin = 50, n.thin = 1, DIC=FALSE, verbose=FALSE) +expect_false(out$calc.DIC) + +ref <- readRDS("reference_noDIC.Rds") +out$mcmc.info$elapsed.mins <- ref$mcmc.inf$elapsed.mins +expect_identical(out[-c(15,16,19)], ref[-c(15,16,19)]) + +# Reordered parameter names---------------------------------------------------- +pars_new <- c("mu", "sigma", "alpha", "beta") +out <- jags(data = data, inits = inits, parameters.to.save = pars_new, + model.file = modfile, n.chains = 3, n.adapt = 100, n.iter = 100, + n.burnin = 50, n.thin = 1, verbose=FALSE) +ref <- readRDS("reference_parsorder.Rds") + +out$mcmc.info$elapsed.mins <- ref$mcmc.inf$elapsed.mins +expect_identical(out[-c(17,18,21)], ref[-c(17,18,21)]) + +# Reordered parameter names and no DIC----------------------------------------- +pars_new <- c("mu", "sigma", "alpha", "beta") +out <- jags(data = data, inits = inits, parameters.to.save = pars_new, + model.file = modfile, n.chains = 3, n.adapt = 100, n.iter = 100, + n.burnin = 50, n.thin = 1, DIC = FALSE, verbose=FALSE) +ref <- readRDS("reference_parsorder_noDIC.Rds") + +out$mcmc.info$elapsed.mins <- ref$mcmc.inf$elapsed.mins +expect_identical(out[-c(15,16,19)], ref[-c(15,16,19)]) diff --git a/inst/tinytest/test_mcmc_tools.R b/inst/tinytest/test_mcmc_tools.R index a85afe7..18f956e 100644 --- a/inst/tinytest/test_mcmc_tools.R +++ b/inst/tinytest/test_mcmc_tools.R @@ -63,16 +63,6 @@ expect_equal(which_params('gamma',params_raw),c(4,5)) expect_null(which_params('kappa',params_raw)) -# test that subset_params drops correct params from list----------------------- -subset_params <- jagsUI:::subset_params -samples <- readRDS('coda_samples.Rds') -expect_equal(subset_params(samples), param_names(samples)) -expect_equal(subset_params(samples, 'beta'), param_names(samples)[-2]) -expect_equal(subset_params(samples, c('mu','kappa')), - c('alpha','beta','sigma','deviance')) -expect_equal(subset_params(samples, param_names(samples, simplify=TRUE)), - character(0)) - # test that mcmc_to_mat converts properly-------------------------------------- mcmc_to_mat <- jagsUI:::mcmc_to_mat samples <- readRDS('coda_samples.Rds') |