tests/testthat/test_input_processing.R

context("Test input processing")

test_that('inits are generated properly',{
  expect_true(is.null(process_inits(NULL, 1, 1)))
  expect_error(process_inits('test',1,1))

  func_inits <- function() list(a=1,b=2)
  expect_equal(process_inits(func_inits,3,1),
               replicate(3,func_inits(),simplify=F))
  func_inits_bad <- function() c(a=1,b=2)
  expect_error(process_inits(func_inits_bad,3,1))
  
  list_inits <- replicate(3, list(a=1,b=2), simplify=F)
  expect_equal(process_inits(list_inits,3,1),
               list_inits)
  list_inits <- replicate(2, list(a=1,b=2), simplify=F)
  expect_error(process_inits(list_inits,3,1))
  list_inits <- replicate(3, c(a=1,b=2), simplify=F)
  expect_error(process_inits(list_inits,3,1))

  set.seed(123)
  inits <- process_inits(func_inits, 3, 2)
  expect_equal(inits[[1]], list(a = 1, b = 2, 
                  .RNG.name = "base::Mersenne-Twister", .RNG.seed = 51663L))
  set.seed(123)
  inits <- process_inits(NULL, 3, 2)
  expect_equal(inits[[1]], list(.RNG.name = "base::Mersenne-Twister", 
                                .RNG.seed = 51663L))
})

test_that('add_RNG adds RNG to inits when required',{ 
  set.seed(123)
  inits <- list(list(a=1,b=2))
  expect_equal(add_RNG(inits), list(list(a=1,b=2,
                                .RNG.name = "base::Mersenne-Twister", 
                                .RNG.seed = 51663L)))
  inits <- list(list(a=1,b=2,.RNG.seed = 123L))
  expect_equal(add_RNG(inits), list(list(a=1,b=2,.RNG.seed=123L)))
})
kenkellner/jagsUI2 documentation built on July 5, 2019, 9:38 a.m.