From ae4ca17b89047052b35acee8e636ff8f31636c13 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Wed, 22 Apr 2020 16:09:53 +0200 Subject: Support SFORB with formation fractions --- tests/testthat/FOCUS_2006_D.csf | 2 +- tests/testthat/test_SFORB.R | 18 ++++++++++++++++++ tests/testthat/test_mkinfit_errors.R | 3 ++- tests/testthat/test_mkinmod.R | 4 ---- 4 files changed, 21 insertions(+), 6 deletions(-) (limited to 'tests/testthat') diff --git a/tests/testthat/FOCUS_2006_D.csf b/tests/testthat/FOCUS_2006_D.csf index 81a4ed74..8faa19db 100644 --- a/tests/testthat/FOCUS_2006_D.csf +++ b/tests/testthat/FOCUS_2006_D.csf @@ -5,7 +5,7 @@ Description: MeasurementUnits: % AR TimeUnits: days Comments: Created using mkin::CAKE_export -Date: 2020-04-20 +Date: 2020-04-22 Optimiser: IRLS [Data] diff --git a/tests/testthat/test_SFORB.R b/tests/testthat/test_SFORB.R index b168a4ee..ad9881a8 100644 --- a/tests/testthat/test_SFORB.R +++ b/tests/testthat/test_SFORB.R @@ -9,4 +9,22 @@ test_that("Fitting the SFORB model is equivalent to fitting DFOP", { expect_match(s_sforb, "Estimated Eigenvalues of SFORB model\\(s\\):") expect_match(s_sforb, "parent_b1 parent_b2") expect_match(s_sforb, "0.45956 *0.01785") + + DFOP_SFO <- mkinmod(parent = mkinsub("DFOP", "M1"), + M1 = mkinsub("SFO"), + use_of_ff = "max", quiet = TRUE) + SFORB_SFO <- mkinmod(parent = mkinsub("SFORB", "M1"), + M1 = mkinsub("SFO"), + use_of_ff = "max", quiet = TRUE) + + SFORB_SFO$coefmat + + f_dfop_sfo <- mkinfit(DFOP_SFO, DFOP_par_c, quiet = TRUE) + f_sforb_sfo <- mkinfit(SFORB_SFO, DFOP_par_c, quiet = TRUE) + f_sforb_sfo_eigen <- mkinfit(SFORB_SFO, DFOP_par_c, solution_type = "eigen", quiet = TRUE) + + expect_equivalent(endpoints(f_sforb_sfo)$distimes, endpoints(f_dfop_sfo)$distimes, + tolerance = 1e-6) + expect_equivalent(endpoints(f_sforb_sfo_eigen)$distimes, endpoints(f_dfop_sfo)$distimes, + tolerance = 1e-6) }) diff --git a/tests/testthat/test_mkinfit_errors.R b/tests/testthat/test_mkinfit_errors.R index 7987d291..940e0b2e 100644 --- a/tests/testthat/test_mkinfit_errors.R +++ b/tests/testthat/test_mkinfit_errors.R @@ -7,6 +7,7 @@ test_that("mkinfit stops to prevent and/or explain user errors", { # We remove zero observations from FOCUS_2006_D beforehand in # order to avoid another expect_warning in the code FOCUS_2006_D <- subset(FOCUS_2006_D, value != 0) + # We get a warning if we use transform_fractions = FALSE with formation fractions # and an error if any pathway to sink is turned off as well expect_warning( @@ -14,7 +15,7 @@ test_that("mkinfit stops to prevent and/or explain user errors", { mkinfit(SFO_SFO.ff.nosink, FOCUS_2006_D, transform_fractions = FALSE, quiet = TRUE), "turn off pathways to sink" ), - "sum of formation fractions") + "sum of formation fractions may exceed one") expect_error(mkinfit(SFO_SFO.ff, FOCUS_2006_D, transform_fractions = TRUE, parms.ini = c(f_parent_to_m1 = 0.5), fixed_parms = "f_parent_to_m1", quiet = TRUE), diff --git a/tests/testthat/test_mkinmod.R b/tests/testthat/test_mkinmod.R index 1bdf094b..3178186a 100644 --- a/tests/testthat/test_mkinmod.R +++ b/tests/testthat/test_mkinmod.R @@ -20,10 +20,6 @@ test_that("mkinmod stops to prevent and/or explain user errors", { expect_error(mkinmod(parent = mkinsub("IORE", "m1"), m1 = mkinsub("SFO"), use_of_ff = "min"), "only supported with formation fractions") - - expect_error(mkinmod(parent = mkinsub("SFORB", "m1"), - m1 = mkinsub("SFO"), use_of_ff = "max"), - "not supported") }) test_that("Printing mkinmod models is reproducible", { -- cgit v1.2.1