tests/testthat/test_structure.R

context("Test output structure")

set_up_input <- function(){
  data(longley)
  jags_data <<- list(gnp=longley$GNP, employed=longley$Employed, 
             n=length(longley$Employed))
  model_file <<- tempfile()
  writeLines("
  model{
  #Likelihood
  for (i in 1:n){ 
  employed[i] ~ dnorm(mu[i], tau)     
  mu[i] <- alpha + beta*gnp[i]
  }
  #Priors
  alpha ~ dnorm(0, 0.00001)
  beta ~ dnorm(0, 0.00001)
  sigma ~ dunif(0,1000)
  tau <- pow(sigma,-2)
  }", con=model_file)
  params <<- c('alpha','beta','sigma','mu')
  n_chains <<- 3; n_iter <<- 1000; n_warmup <<- 500
}

test_that("correct output structure",{
  skip_on_cran()
  set_up_input()
  out <- jagsUI(model_file,jags_data,inits=NULL,params,
              n_chains=n_chains,n_iter=n_iter,n_warmup=n_warmup, quiet=T)

  expect_is(out, "jagsUI")
  expect_is(out$summary, "matrix")
  expect_is(out$samples, "mcmc.list")
  expect_equal(length(out$samples),n_chains)
  expect_equal(nrow(out$samples[[1]]),(n_iter-n_warmup))
  expect_is(out$samples[[1]], "mcmc")
  expect_is(out$model, "jags")

})

test_that("correct parallel output structure",{
  skip_on_cran()
  skip_on_travis()
  set_up_input()
  out_par <- jagsUI(model_file,jags_data,inits=NULL,params,n_chains=n_chains,
                  n_iter=n_iter,n_warmup=n_warmup,n_cores=3, quiet=T)

  expect_is(out_par$samples,"mcmc.list") 
  expect_equal(length(out_par$samples),n_chains)
  expect_is(out_par$samples[[1]],"mcmc")
  expect_equal(nrow(out_par$samples[[1]]),(n_iter-n_warmup))
  expect_is(out_par$model,"list")
  expect_equal(length(out_par$model),n_chains)
  expect_is(out_par$model[[1]], "jags")

})

test_that("check_class works correctly",{
  out <- list()
  expect_error(check_class(out))
  class(out) <- 'jagsUI'
  expect_error(check_class(out),NA)
})
kenkellner/jagsUI2 documentation built on July 5, 2019, 9:38 a.m.