aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Kellner <ken@kenkellner.com>2023-12-03 11:06:25 -0500
committerKen Kellner <ken@kenkellner.com>2023-12-03 11:06:25 -0500
commit9f31a28ff889fcfb6f109e747015bf333b4f4b0b (patch)
tree4cfe59efe731a3859c843f2a17fb9770bee74a43
parent991ed72c18ce8103e00fea29280835855a1870eb (diff)
Some new overall tests and tests for mcmc tools
-rw-r--r--R/mcmc_tools.R11
-rw-r--r--inst/tinytest/reference_codaOnly.Rdsbin0 -> 49121 bytes
-rw-r--r--inst/tinytest/reference_noDIC.Rdsbin0 -> 49856 bytes
-rw-r--r--inst/tinytest/reference_parsorder.Rdsbin0 -> 52714 bytes
-rw-r--r--inst/tinytest/reference_parsorder_noDIC.Rdsbin0 -> 49656 bytes
-rw-r--r--inst/tinytest/test_jags.R39
-rw-r--r--inst/tinytest/test_mcmc_tools.R10
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
new file mode 100644
index 0000000..23c06ed
--- /dev/null
+++ b/inst/tinytest/reference_codaOnly.Rds
Binary files differ
diff --git a/inst/tinytest/reference_noDIC.Rds b/inst/tinytest/reference_noDIC.Rds
new file mode 100644
index 0000000..085dad8
--- /dev/null
+++ b/inst/tinytest/reference_noDIC.Rds
Binary files differ
diff --git a/inst/tinytest/reference_parsorder.Rds b/inst/tinytest/reference_parsorder.Rds
new file mode 100644
index 0000000..dda02ca
--- /dev/null
+++ b/inst/tinytest/reference_parsorder.Rds
Binary files differ
diff --git a/inst/tinytest/reference_parsorder_noDIC.Rds b/inst/tinytest/reference_parsorder_noDIC.Rds
new file mode 100644
index 0000000..f6d4d5a
--- /dev/null
+++ b/inst/tinytest/reference_parsorder_noDIC.Rds
Binary files differ
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')