tests/testthat/test-classes.R

test_that("All modules are the correct S4 classes", {
  m <- create_model_Scaled(10, 3, 1:10, create_Lmatrix(1:10, 3, 10))
  expect_s4_class(m, "Rcpp_Scaled")
  m <- create_model_Unscaled(10, 3, 1:10, create_Lmatrix(1:10, 3, 10))
  expect_s4_class(m, "Rcpp_Unscaled")
  m <- create_model_Unscaled_nuts(10, 3, 2, 1:10, create_Lmatrix(1:10, 3, 10))
  expect_s4_class(m, "Rcpp_Unscaled_nuts")
})

test_that("All classes input is correct", {
  set.seed(1234)
  nb_s <- sample(seq(2, 1e1, by = 2), 1)
  fw <- create_niche_model(nb_s, .3)
  nb_n <- sample(seq(2, 1e1), 1)
  # scaled
  m <- create_model_Scaled(nb_s, nb_s / 2, 1:nb_s, fw)
  expect_equal(m$nb_s, nb_s)
  expect_equal(m$nb_b, nb_s / 2)
  # unscaled
  m <- create_model_Unscaled(nb_s, nb_s / 2, 1:nb_s, fw)
  expect_equal(m$nb_s, nb_s)
  expect_equal(m$nb_b, nb_s / 2)
  # nutrients
  m <- create_model_Unscaled_nuts(nb_s, nb_s / 2, nb_n, 1:nb_s, fw)
  expect_equal(m$nb_s, nb_s)
  expect_equal(m$nb_b, nb_s / 2)
  expect_equal(m$nb_n, nb_n)
})

test_that("Initializations are class specific", {
  set.seed(1234)
  nb_s <- sample(seq(2, 1e1, by = 2), 1)
  fw <- create_niche_model(nb_s, .3)
  nb_n <- sample(seq(2, 1e1), 1)
  # scaled
  m <- create_model_Scaled(nb_s, nb_s / 2, 1:nb_s, fw)
  expect_error(initialise_default_Unscaled(m))
  expect_error(initialise_default_Unscaled_nuts(m))
  # unscaled
  m <- create_model_Unscaled(nb_s, nb_s / 2, 1:nb_s, fw)
  expect_error(initialise_default_Scaled(m))
  expect_error(initialise_default_Unscaled_nuts(m))
  # nutrients
  m <- create_model_Unscaled_nuts(nb_s, nb_s / 2, nb_n, 1:nb_s, fw)
  expect_error(initialise_default_Scaled(m))
  expect_error(initialise_default_Unscaled(m))
})

test_that("Initializations work properly", {
  set.seed(1234)
  nb_s <- sample(seq(2, 1e1, by = 2), 1)
  fw <- create_niche_model(nb_s, .3)
  nb_n <- sample(seq(2, 1e1), 1)
  # scaled
  m <- create_model_Scaled(nb_s, nb_s / 2, 1:nb_s, fw)
  expect_equal(sum(m$alpha), 0)
  expect_equal(sum(m$X), 0)
  m <- initialise_default_Scaled(m)
  expect_gt(sum(m$alpha), 0)
  expect_gt(sum(m$X), 0)
  # unscaled
  m <- create_model_Unscaled(nb_s, nb_s / 2, 1:nb_s, fw)
  expect_equal(sum(m$alpha), 0)
  expect_equal(sum(m$X), 0)
  m <- initialise_default_Unscaled(m)
  expect_gt(sum(m$alpha), 0)
  expect_gt(sum(m$X), 0)
  # nutrients
  m <- create_model_Unscaled_nuts(nb_s, nb_s / 2, nb_n, 1:nb_s, fw)
  expect_equal(sum(m$D), 0)
  expect_equal(sum(m$X), 0)
  expect_equal(sum(m$V), 0)
  expect_equal(sum(m$S), 0)
  m <- initialise_default_Unscaled_nuts(m, L.mat = fw)
  expect_gt(sum(m$D), 0)
  expect_gt(sum(m$X), 0)
  expect_gt(sum(m$V), 0)
  expect_gt(sum(m$S), 0)
})

Try the ATNr package in your browser

Any scripts or data that you put into this service are public.

ATNr documentation built on Sept. 4, 2023, 5:07 p.m.