tests/testthat/test-has.R

test_that("has_forcings", {
  scenario <- Lemna_Schmitt() %>% set_forcings(temp=10)
  expect_true(has_forcings(scenario))
  expect_equal(has_forcings(c(scenario,scenario)), c(TRUE,TRUE))
  # no forcings
  expect_false(has_forcings(GUTS_RED_IT()))
  expect_false(has_forcings(Lemna_Schmitt()))
  # invalid arguments
  expect_error(has_forcings(NA))
  expect_error(has_forcings(NULL))
  expect_error(has_forcings(1))
  expect_error(any(has_forcings(1:5)))
})

test_that("has_exposure", {
  # exposure is set
  scenario <- new("EffectScenario", exposure=ExposureSeries(series=data.frame(t=1,c=1)))
  expect_true(has_exposure(scenario))
  expect_true(has_exposure(new("EffectScenario", exposure=ExposureSeries(series=data.frame(t=1:5,c=1:5)))))
  expect_equal(c(TRUE,TRUE), has_exposure(c(scenario, scenario)))

  # no exposure
  scenario <- new("EffectScenario")
  expect_false(has_exposure(scenario))
  expect_equal(c(FALSE,FALSE), has_exposure(c(scenario,scenario)))

  # invalid arguments
  expect_error(has_exposure(NA))
  expect_error(has_exposure(NULL))
  expect_error(has_exposure(1))
  expect_error(any(has_exposure(1:5)))
})

test_that("has_constant_forcings", {
  expect_true(has_constant_forcings(Lemna_Schmitt() %>%
                                      set_exposure(data.frame(t=0,c=0))))
  expect_true(has_constant_forcings(Lemna_Schmitt() %>%
                                      set_exposure(data.frame(t=0,c=0)) %>%
                                      set_forcings(temp=1,rad=1)))
  # non-constant forcings
  expect_false(has_constant_forcings(Lemna_Schmitt() %>%
                                       set_exposure(data.frame(t=0:1,c=0:1))))
  expect_false(has_constant_forcings(Lemna_Schmitt() %>%
                                       set_exposure(data.frame(t=0:1,c=0:1)) %>%
                                       set_forcings(temp=1,rad=1)))
  expect_false(has_constant_forcings(Lemna_Schmitt() %>%
                                       set_exposure(data.frame(t=0,c=0)) %>%
                                       set_forcings(temp=1,rad=data.frame(t=0:1,r=0:1))))
  # invalid arguments
  expect_error(has_constant_forcings(NA))
  expect_error(has_constant_forcings(NULL))
  expect_error(has_constant_forcings(1))
  expect_error(any(has_constant_forcings(1:5)))
})

test_that("has_controls", {
  expect_true(has_controls(new("EffectScenario", control=c(1))))
  expect_true(has_controls(new("EffectScenario", control=list(1))))
  # on controls
  expect_false(has_controls(new("EffectScenario")))
  # invalid arguments
  expect_error(has_controls(NA))
  expect_error(has_controls(NULL))
  expect_error(has_controls(1))
  expect_error(any(has_controls(1:5)))
})

test_that("has_windows", {
  expect_true(has_windows(new("EffectScenario", window.length=1)))
  # on controls
  expect_false(has_windows(new("EffectScenario")))
  # invalid arguments
  expect_error(has_windows(NA))
  expect_error(has_windows(NULL))
  expect_error(has_windows(1))
  expect_error(any(has_windows(1:5)))
})

test_that("has_regular_transfer", {
  expect_true(has_regular_transfer(Lemna_Schmitt() %>% set_transfer(interval=1)))
  expect_true(has_transfer(Lemna_Schmitt() %>% set_transfer(interval=1)))
  # on controls
  expect_false(has_regular_transfer(Lemna_Schmitt() %>% set_transfer(interval=-1)))
  expect_false(has_regular_transfer(Lemna_Schmitt() %>% set_transfer(times=1)))
  # invalid arguments
  expect_error(has_regular_transfer(NA))
  expect_error(has_regular_transfer(NULL))
  expect_error(has_regular_transfer(1))
  expect_error(any(has_regular_transfer(1:5)))
})

test_that("has_irregular_transfer", {
  expect_true(has_irregular_transfer(Lemna_Schmitt() %>% set_transfer(times=1)))
  expect_true(has_transfer(Lemna_Schmitt() %>% set_transfer(times=1)))
  # on controls
  expect_false(has_irregular_transfer(Lemna_Schmitt() %>% set_transfer(interval=-1)))
  expect_false(has_irregular_transfer(Lemna_Schmitt() %>% set_transfer(interval=1)))
  # invalid arguments
  expect_error(has_irregular_transfer(NA))
  expect_error(has_irregular_transfer(NULL))
  expect_error(has_irregular_transfer(1))
  expect_error(any(has_irregular_transfer(1:5)))
})

Try the cvasi package in your browser

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

cvasi documentation built on Sept. 23, 2024, 9:08 a.m.