diff --git a/R/get_cv.R b/R/get_cv.R index afc3178e..67be6d7a 100644 --- a/R/get_cv.R +++ b/R/get_cv.R @@ -98,6 +98,11 @@ get_rse <- function (fmf, poped.db, eval(parse(text=paste(capture.output(default_args[[i]]),"<-",i))) } } + + ## if prior is given in poped.db then add it to the given fim + if((!isempty(poped.db$settings$prior_fim) && all(size(poped.db$settings$prior_fim)==size(fmf)))){ + fmf = fmf + poped.db$settings$prior_fim + } inv_fim <- tryCatch({ inv(fmf,...) diff --git a/tests/testthat/examples_fcn_doc/examples_evaluate.fim.R b/tests/testthat/examples_fcn_doc/examples_evaluate.fim.R index a053212a..4b1d798d 100644 --- a/tests/testthat/examples_fcn_doc/examples_evaluate.fim.R +++ b/tests/testthat/examples_fcn_doc/examples_evaluate.fim.R @@ -69,3 +69,7 @@ FIM.7 det(FIM.7) get_rse(FIM.7,poped.db,fim.calc.type=7) +## evaluate FIM and rse with prior FIM.1 +poped.db.prior = create.poped.database(poped.db, prior_fim = FIM.1) +FIM.1.prior <- evaluate.fim(poped.db.prior) +FIM.1.prior diff --git a/tests/testthat/test_evaluate.fim.R b/tests/testthat/test_evaluate.fim.R index 5630d717..cf353218 100644 --- a/tests/testthat/test_evaluate.fim.R +++ b/tests/testthat/test_evaluate.fim.R @@ -9,7 +9,7 @@ test_that("RSE from evaluate.fim", { comp.red.1 <- get_rse(FIM.1,poped.db) comp.red.4 <- get_rse(FIM.4,poped.db,fim.calc.type=4) comp.full.0 <- get_rse(FIM.0,poped.db) - + comp.red.1.prior <- get_rse(FIM.1.prior, poped.db.prior) for(i in 1:length(expected.reduced)){ expect_that(round(comp.red.1[[i]],digits=1), equals(expected.reduced[i], @@ -24,6 +24,8 @@ test_that("RSE from evaluate.fim", { tolerance = 0.01, scale = expected.reduced[i])) } + expect_true(all.equal(comp.red.1/sqrt(2), comp.red.1.prior)) + }) test_that("det(FIM) using evaluate.fim, approx and derivative types", {