tests/test_checks.R

library(efdm)
library(testthat)
statespace <- expand.grid(a=1:2, b=1:2, vol=1:5)
state0 <- statespace
actprob <- statespace
actprob$test <- 1
state0$area <- 0
state0$area[1] <- 1


act3 <- define_activity("test", c("vol"))
transprobs(act3) <- data.frame(vol0 = 1:4, vol1=2:5, prob=1)
expect_error(runEFDM(state0, actprob, list(act3), 5), "States with no activity (in list of activities)", fixed=TRUE)
expect_error(runEFDM(state0, data.frame(test=1), list(act3), 5), "No state variables in actprob")



transprobs(act3) <- data.frame(vol0 = 1:5, vol1=c(2:6), prob=1)
expect_error(runEFDM(state0, actprob, list(act3), 3), "Activity transitions to state not in actprob")


expect_error(runEFDM(state0, actprob, list(act3, act3), 3), "States with multiple activities")


act4 <- define_activity("test2", c("vol"))
transprobs(act4) <- data.frame(vol0 = 1:5, vol1=c(2:5,5), prob=1)
expect_error(runEFDM(state0, actprob, list(act4), 5), "Activity probabilities for test2 not given.")

act5 <- define_activity("test", c("vol"))
transprobs(act5) <- data.frame(vol0 = 1:6, vol1=2, prob=1)
expect_error(runEFDM(state0, actprob, list(act5), 5), "Activity transitions from state not in actprob")

act6 <- define_activity("test", c("vol"))
expect_error(runEFDM(state0, actprob, list(act6), 1), "Activity 'test' has no transprobs.")
transprobs(act6) <- data.frame(vol0 = 1:5, vol1=2, c=1, prob=1)
expect_error(runEFDM(state0, actprob, list(act6), 1), "Activity 'test' has variable c not in actprob.")

actprob$test[3] <- NA
expect_error(runEFDM(state0, actprob, list(act3), 5), "Actprob should not have NAs.")

actprob$test2 <- actprob$test <- 0.5
expect_error(runEFDM(state0, actprob, list(act3), 5), "Activity probabilities for test2 given, but activities not.")

Try the efdm package in your browser

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

efdm documentation built on Aug. 17, 2023, 9:07 a.m.