From b36ae3d710858ee3ff2907eb2d780e0dff48a4f3 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Mon, 11 May 2020 13:43:40 +0200 Subject: Analytical solutions for all SFO variants --- tests/testthat/test_analytical.R | 45 +++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) (limited to 'tests/testthat/test_analytical.R') diff --git a/tests/testthat/test_analytical.R b/tests/testthat/test_analytical.R index 3d30e042..5972a18a 100644 --- a/tests/testthat/test_analytical.R +++ b/tests/testthat/test_analytical.R @@ -1,11 +1,46 @@ context("Analytical solutions for coupled models") -test_that("The analytical solution of SFO-SFO is correct", { - f_sfo_sfo.ff.analytical <- mkinfit(SFO_SFO.ff, - subset(FOCUS_2006_D, value != 0), - quiet = TRUE) +test_that("The analytical solutions of SFO-SFO are correct", { + # No sink, no formation fractions + SFO_SFO_nosink <- mkinmod( + parent = mkinsub("SFO", to = "m1", sink = FALSE), + m1 = mkinsub("SFO"), + use_of_ff = "min", quiet = TRUE) + f_sfo_sfo_nosink <- mkinfit(SFO_SFO_nosink, FOCUS_D, quiet = TRUE) + f_sfo_sfo_nosink_deSolve <- mkinfit(SFO_SFO_nosink, FOCUS_D, + solution_type = "deSolve", quiet = TRUE) + expect_equal( + parms(f_sfo_sfo_nosink), + parms(f_sfo_sfo_nosink_deSolve) + ) + + # No sink, with formation fractions + SFO_SFO.ff_nosink <- mkinmod( + parent = mkinsub("SFO", to = "m1", sink = FALSE), + m1 = mkinsub("SFO"), + use_of_ff = "max", quiet = TRUE) + f_sfo_sfo_nosink <- mkinfit(SFO_SFO.ff_nosink, FOCUS_D, quiet = TRUE) + f_sfo_sfo_nosink_deSolve <- mkinfit(SFO_SFO.ff_nosink, FOCUS_D, + solution_type = "deSolve", quiet = TRUE) + expect_equal( + parms(f_sfo_sfo_nosink), + parms(f_sfo_sfo_nosink_deSolve) + ) + + # Without formation fraction + f_sfo_sfo_analytical <- mkinfit(SFO_SFO, FOCUS_D, + solution_type = "analytical", quiet = TRUE) + expect_equal( + parms(f_sfo_sfo_analytical), + parms(f_sfo_sfo_desolve) + ) + + # With formation fraction + f_sfo_sfo.ff_desolve <- mkinfit(SFO_SFO.ff, FOCUS_D, + solution_type = "deSolve", quiet = TRUE) expect_equal( parms(f_sfo_sfo.ff), - parms(f_sfo_sfo.ff.analytical) + parms(f_sfo_sfo.ff_desolve) ) + }) -- cgit v1.2.1