Skip to content

Commit 7ae4cd0

Browse files
committed
Add revised unit test #465
1 parent 9ba405e commit 7ae4cd0

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

tests/testthat/test-tmb-simulation.R

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ test_that("coarse meshes with zeros in simulation still return fields #370", {
231231
})
232232

233233
test_that("simulate without observation error works for binomial likelihoods #431", {
234+
skip_on_cran()
234235
mesh <- make_mesh(pcod, c("X", "Y"), cutoff = 30)
235236
fit.dg <- sdmTMB(density ~ 1,
236237
data = pcod, mesh = mesh, family = delta_gamma(type="standard")
@@ -247,7 +248,7 @@ test_that("simulate without observation error works for binomial likelihoods #43
247248
expect_gt(min(s.dg), 0)
248249
m <- apply(s.dg, 1, mean)
249250
p <- predict(fit.dg, newdata = qcs_grid)
250-
expect_gt(cor(plogis(p$est1) * exp(p$est2), m), 0.95)
251+
expect_gt(cor(plogis(p$est1) * exp(p$est2), m), 0.98)
251252

252253
fit.b <- sdmTMB(present ~ 1,
253254
data = pcod, mesh = mesh, family = binomial()
@@ -266,7 +267,7 @@ test_that("simulate without observation error works for binomial likelihoods #43
266267
p <- predict(fit.b, newdata = qcs_grid)
267268
expect_gt(cor(plogis(p$est), m), 0.95)
268269

269-
# with size specified
270+
# with size specified (but wrong length at first)
270271
expect_error({simulate(
271272
fit.b,
272273
newdata = qcs_grid,
@@ -275,15 +276,41 @@ test_that("simulate without observation error works for binomial likelihoods #43
275276
size = c(1, 2, 3)
276277
)}, regexp = "size")
277278

279+
set.seed(1)
280+
w <- sample(1:9, size = nrow(qcs_grid), replace = TRUE)
278281
s.b1 <- simulate(
279282
fit.b,
280283
newdata = qcs_grid,
284+
type = "mle-mvn",
285+
mle_mvn_samples = "multiple",
286+
nsim = 50,
287+
observation_error = FALSE,
288+
seed = 23859,
289+
size = w
290+
)
291+
expect_true(max(s.b1) > 1)
292+
expect_equal(mean(s.b1[1,]), m[1] * w[1])
293+
expect_equal(mean(s.b1[51,]), m[51] * w[51])
294+
})
295+
296+
test_that("simulate without observation error works for binomial likelihoods and Poisson-link delta", {
297+
skip_on_cran()
298+
skip_on_ci()
299+
mesh <- make_mesh(pcod, c("X", "Y"), cutoff = 30)
300+
fit.dg <- sdmTMB(density ~ 1,
301+
data = pcod, mesh = mesh, family = delta_gamma(type="poisson-link")
302+
)
303+
s.dg <- simulate(
304+
fit.dg,
305+
newdata = qcs_grid,
281306
type = "mle-mvn", # fixed effects at MLE values and random effect MVN draws
282307
mle_mvn_samples = "multiple", # take an MVN draw for each sample
283-
nsim = 50, # increase this for more stable results
308+
nsim = 200, # increase this for more stable results
284309
observation_error = FALSE, # do not include observation error
285-
seed = 23859,
286-
size = sample(1:9, size = nrow(qcs_grid), replace = TRUE)
310+
seed = 23859
287311
)
288-
expect_false(identical(s.b, s.b1))
312+
expect_gt(min(s.dg), 0)
313+
m <- apply(s.dg, 1, mean)
314+
p <- predict(fit.dg, newdata = qcs_grid)
315+
expect_gt(cor(exp(p$est1) * exp(p$est2), m), 0.98)
289316
})

0 commit comments

Comments
 (0)