R version 4.4.0 RC (2024-04-16 r86468 ucrt) -- "Puppy Cup" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## This file is part of SimInf, a framework for stochastic > ## disease spread simulations. > ## > ## Copyright (C) 2015 -- 2024 Stefan Widgren > ## > ## SimInf is free software: you can redistribute it and/or modify > ## it under the terms of the GNU General Public License as published by > ## the Free Software Foundation, either version 3 of the License, or > ## (at your option) any later version. > ## > ## SimInf is distributed in the hope that it will be useful, > ## but WITHOUT ANY WARRANTY; without even the implied warranty of > ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > ## GNU General Public License for more details. > ## > ## You should have received a copy of the GNU General Public License > ## along with this program. If not, see . > > library(SimInf) > library(tools) > source("util/check.R") > > model <- SIR(u0 = data.frame(S = 1:3, I = 4:6, R = 7:9), + tspan = 1:10, + events = NULL, + beta = 0, + gamma = 0) > > res <- assertError( + v0(model) <- data.frame(phi = 10:13)) > check_error(res, "The number of rows in 'v0' must match nodes in 'model'.") > > v0(model) <- data.frame(phi = 1:3) > stopifnot(identical(model@v0, matrix(numeric(0), nrow = 0, ncol = 0))) > > ## Check that a matrix is coerced to a data.frame. > res <- SimInf:::check_v0(matrix(1:9, + ncol = 3, + dimnames = list(NULL, c("A", "B", "C"))), + c("A", "B", "C")) > stopifnot(identical(res, + data.frame(A = 1:3, + B = 4:6, + C = 7:9))) > > ## Check that a named vector is coerced to a data.frame. > res <- SimInf:::check_v0(c(A = 1, B = 4, C = 7), c("A", "B", "C")) > stopifnot(identical(res, + data.frame(A = 1, + B = 4, + C = 7))) > > ## Create an 'SISe' model with 6 nodes. > model <- SISe(u0 = data.frame(S = 100:105, I = 1:6), tspan = 1:10, + phi = rep(0, 6), upsilon = 0.02, gamma = 0.1, alpha = 1, + epsilon = 1.1e-5, beta_t1 = 0.15, beta_t2 = 0.15, + beta_t3 = 0.15, beta_t4 = 0.15, end_t1 = 91, end_t2 = 182, + end_t3 = 273, end_t4 = 365) > > res <- assertError( + v0(model) <- data.frame(A = 1:6)) > check_error(res, "Missing columns in 'v0'.") > > v0(model) <- data.frame(phi = 1:6) > stopifnot(identical(model@v0, + matrix(c(1, 2, 3, 4, 5, 6), + nrow = 1, + ncol = 6, + dimnames = list("phi", NULL)))) > > proc.time() user system elapsed 0.82 0.18 1.01