tests/testthat/test-effect.R

test_that("effects BM", {
 # calculate manually
 out <- lemna(metsulfuron)
 envir2 <- metsulfuron$envir
 envir2$conc <- 0
 ctrl <- lemna(metsulfuron, envir=envir2)
 efx <- 100 * (1 - tail(out$BM, 1)/tail(ctrl$BM, 1))

 # effect levels must match
 expect_equal(effect(metsulfuron)["BM"], efx, ignore_attr=TRUE)

 # no exposure, no effect
 expect_equal(effect(metsulfuron, envir=envir2)["BM"], 0, ignore_attr=TRUE)

  # less exposure, less effect
 envir2$conc <- 0.5
 expect_lt(effect(metsulfuron, envir=envir2)["BM"], effect(metsulfuron)["BM"])

 # duration argument
 expect_equal(effect(metsulfuron, times=c(0:14,20), duration=14)["BM"], efx, ignore_attr=TRUE)
})

test_that("effects r", {
  out <- lemna(metsulfuron)
  envir2 <- metsulfuron$envir
  envir2$conc <- 0
  ctrl <- lemna(metsulfuron, envir=envir2)

  r_exp <- log(out$BM[15] / out$BM[1])/14
  r_ctrl <- log(ctrl$BM[15] / ctrl$BM[1])/14
  efx <- 100 * (1 - r_exp/r_ctrl)

  # effect levels must match
  expect_equal(effect(metsulfuron)["r"], efx, ignore_attr=TRUE)

  # no exposure, no effect
  expect_equal(effect(metsulfuron, envir=envir2)["r"], 0, ignore_attr=TRUE)

  # less exposure, less effect
  envir2$conc <- 0.5
  expect_lt(effect(metsulfuron, envir=envir2)["r"], effect(metsulfuron)["r"])

  # duration argument
  expect_equal(effect(metsulfuron, times=c(0:14,20), duration=14)["r"], efx, ignore_attr=TRUE)
})

Try the lemna package in your browser

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

lemna documentation built on April 3, 2025, 5:50 p.m.