aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Ranke <jranke@uni-bremen.de>2019-02-27 12:57:10 +0100
committerJohannes Ranke <jranke@uni-bremen.de>2019-02-27 12:57:10 +0100
commitb2b5c0f2294e19178e95c9adc5351a1b73218a34 (patch)
tree73c645a7b45ff8b7090ca186f4e9867a70e6324c
parent6b4ab746e5474dfeda9237f01bc2dd01f1bb62ee (diff)
Further increase test coverage
-rw-r--r--test.log13
-rw-r--r--tests/testthat/SFO_SFO_printed.txt12
-rw-r--r--tests/testthat/test_from_max_mean.R18
-rw-r--r--tests/testthat/test_mkinds.R18
-rw-r--r--tests/testthat/test_mkinfit_errors.R19
-rw-r--r--tests/testthat/test_mkinmod.R52
-rw-r--r--tests/testthat/test_schaefer07_complex_case.R4
7 files changed, 125 insertions, 11 deletions
diff --git a/test.log b/test.log
index aee7acf6..a7e44fd8 100644
--- a/test.log
+++ b/test.log
@@ -3,7 +3,7 @@ Testing mkin
✔ | OK F W S | Context
⠏ | 0 | Export dataset for reading into CAKE ⠋ | 1 | Export dataset for reading into CAKE ✔ | 1 | Export dataset for reading into CAKE
⠏ | 0 | Calculation of FOCUS chi2 error levels ⠋ | 1 | Calculation of FOCUS chi2 error levels ⠙ | 2 | Calculation of FOCUS chi2 error levels ✔ | 2 | Calculation of FOCUS chi2 error levels [2.3 s]
- ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠼ | 5 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠴ | 6 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠦ | 7 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠧ | 8 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠏ | 10 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 11 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 12 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠹ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [7.9 s]
+ ⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠼ | 5 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠴ | 6 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠦ | 7 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠧ | 8 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠏ | 10 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠋ | 11 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠙ | 12 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ⠹ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) ✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [8.0 s]
⠏ | 0 | Test fitting the decline of metabolites from their maximum ⠋ | 1 | Test fitting the decline of metabolites from their maximum ⠙ | 2 | Test fitting the decline of metabolites from their maximum ⠹ | 3 | Test fitting the decline of metabolites from their maximum ✔ | 3 | Test fitting the decline of metabolites from their maximum [0.6 s]
⠏ | 0 | Iteratively reweighted least squares (IRLS) fitting ⠋ | 1 | Iteratively reweighted least squares (IRLS) fitting ⠙ | 2 | Iteratively reweighted least squares (IRLS) fitting ⠹ | 2 1 | Iteratively reweighted least squares (IRLS) fitting ✔ | 2 1 | Iteratively reweighted least squares (IRLS) fitting [15.9 s]
────────────────────────────────────────────────────────────────────────────────
@@ -16,11 +16,12 @@ test_logistic.R:41: skip: The logistic fit can be done via differential equation
Skip slow fit of logistic model using deSolve without compilation
────────────────────────────────────────────────────────────────────────────────
⠏ | 0 | Test dataset class mkinds used in gmkin ⠋ | 1 | Test dataset class mkinds used in gmkin ✔ | 1 | Test dataset class mkinds used in gmkin
- ⠏ | 0 | Special cases of mkinfit calls ⠋ | 1 | Special cases of mkinfit calls ⠙ | 2 | Special cases of mkinfit calls ⠹ | 3 | Special cases of mkinfit calls ⠸ | 4 | Special cases of mkinfit calls ⠼ | 5 | Special cases of mkinfit calls ⠴ | 6 | Special cases of mkinfit calls ⠦ | 7 | Special cases of mkinfit calls ⠧ | 8 | Special cases of mkinfit calls ⠇ | 9 | Special cases of mkinfit calls ⠏ | 10 | Special cases of mkinfit calls ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ⠹ | 12 1 | Special cases of mkinfit calls ⠸ | 13 1 | Special cases of mkinfit calls ⠼ | 14 1 | Special cases of mkinfit calls ⠴ | 15 1 | Special cases of mkinfit calls ⠦ | 16 1 | Special cases of mkinfit calls ✔ | 16 1 | Special cases of mkinfit calls [3.0 s]
+ ⠏ | 0 | Special cases of mkinfit calls ⠋ | 1 | Special cases of mkinfit calls ⠙ | 2 | Special cases of mkinfit calls ⠹ | 3 | Special cases of mkinfit calls ⠸ | 4 | Special cases of mkinfit calls ⠼ | 5 | Special cases of mkinfit calls ⠴ | 6 | Special cases of mkinfit calls ⠦ | 7 | Special cases of mkinfit calls ⠧ | 8 | Special cases of mkinfit calls ⠇ | 9 | Special cases of mkinfit calls ⠏ | 10 | Special cases of mkinfit calls ⠋ | 11 | Special cases of mkinfit calls ⠙ | 12 | Special cases of mkinfit calls ⠹ | 12 1 | Special cases of mkinfit calls ⠸ | 13 1 | Special cases of mkinfit calls ⠼ | 14 1 | Special cases of mkinfit calls ⠴ | 15 1 | Special cases of mkinfit calls ⠦ | 16 1 | Special cases of mkinfit calls ✔ | 16 1 | Special cases of mkinfit calls [2.9 s]
────────────────────────────────────────────────────────────────────────────────
-test_mkinfit_errors.R:52: skip: mkinfit warns if the user chooses the SANN method
+test_mkinfit_errors.R:67: skip: mkinfit warns if the user chooses the SANN method
The SANN algorithm takes very long with the default maximum number of iterations of 10000
────────────────────────────────────────────────────────────────────────────────
+ ⠏ | 0 | mkinmod model generation and printing ⠋ | 1 | mkinmod model generation and printing ⠙ | 2 | mkinmod model generation and printing ⠹ | 3 | mkinmod model generation and printing ⠸ | 4 | mkinmod model generation and printing ⠼ | 5 | mkinmod model generation and printing ⠴ | 6 | mkinmod model generation and printing ⠦ | 7 | mkinmod model generation and printing ⠧ | 8 | mkinmod model generation and printing ⠇ | 9 | mkinmod model generation and printing ✔ | 9 | mkinmod model generation and printing [0.2 s]
⠏ | 0 | Model predictions with mkinpredict ⠋ | 1 | Model predictions with mkinpredict ⠙ | 2 | Model predictions with mkinpredict ⠹ | 3 | Model predictions with mkinpredict ✔ | 3 | Model predictions with mkinpredict [0.3 s]
⠏ | 0 | Evaluations according to 2015 NAFTA guidance ⠋ | 1 | Evaluations according to 2015 NAFTA guidance ⠙ | 2 | Evaluations according to 2015 NAFTA guidance ⠹ | 3 | Evaluations according to 2015 NAFTA guidance ⠸ | 4 | Evaluations according to 2015 NAFTA guidance ⠼ | 5 | Evaluations according to 2015 NAFTA guidance ⠴ | 6 | Evaluations according to 2015 NAFTA guidance ⠦ | 7 | Evaluations according to 2015 NAFTA guidance ⠧ | 8 | Evaluations according to 2015 NAFTA guidance ⠇ | 9 | Evaluations according to 2015 NAFTA guidance ⠏ | 9 1 | Evaluations according to 2015 NAFTA guidance ⠏ | 10 | Evaluations according to 2015 NAFTA guidance ⠋ | 11 | Evaluations according to 2015 NAFTA guidance ⠙ | 12 | Evaluations according to 2015 NAFTA guidance ⠹ | 13 | Evaluations according to 2015 NAFTA guidance ⠸ | 14 | Evaluations according to 2015 NAFTA guidance ⠼ | 15 | Evaluations according to 2015 NAFTA guidance ⠴ | 16 | Evaluations according to 2015 NAFTA guidance ⠦ | 17 | Evaluations according to 2015 NAFTA guidance ✔ | 17 | Evaluations according to 2015 NAFTA guidance [1.5 s]
⠏ | 0 | Fitting of parent only models ⠋ | 1 | Fitting of parent only models ⠙ | 2 | Fitting of parent only models ⠹ | 3 | Fitting of parent only models ⠸ | 4 | Fitting of parent only models ⠼ | 5 | Fitting of parent only models ⠴ | 6 | Fitting of parent only models ⠦ | 7 | Fitting of parent only models ⠧ | 8 | Fitting of parent only models ⠇ | 9 | Fitting of parent only models ⠏ | 10 | Fitting of parent only models ⠋ | 11 | Fitting of parent only models ⠙ | 12 | Fitting of parent only models ⠹ | 13 | Fitting of parent only models ⠸ | 14 | Fitting of parent only models ⠼ | 15 | Fitting of parent only models ⠴ | 16 | Fitting of parent only models ⠦ | 17 | Fitting of parent only models ⠧ | 18 | Fitting of parent only models ⠇ | 19 | Fitting of parent only models ⠏ | 20 | Fitting of parent only models ⠋ | 21 | Fitting of parent only models ✔ | 21 | Fitting of parent only models [23.8 s]
@@ -28,13 +29,13 @@ The SANN algorithm takes very long with the default maximum number of iterations
⠏ | 0 | Summary ⠋ | 1 | Summary ✔ | 1 | Summary
⠏ | 0 | Plotting ⠋ | 1 | Plotting ⠙ | 2 | Plotting ⠹ | 3 | Plotting ⠸ | 4 | Plotting ✔ | 4 | Plotting [0.3 s]
⠏ | 0 | AIC calculation ⠋ | 1 | AIC calculation ⠙ | 2 | AIC calculation ✔ | 2 | AIC calculation
- ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠙ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.8 s]
+ ⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper ⠙ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper ✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.9 s]
⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠙ | 2 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014) ⠸ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.4 s]
══ Results ═════════════════════════════════════════════════════════════════════
-Duration: 74.2 s
+Duration: 74.5 s
-OK: 97
+OK: 106
Failed: 0
Warnings: 0
Skipped: 3
diff --git a/tests/testthat/SFO_SFO_printed.txt b/tests/testthat/SFO_SFO_printed.txt
new file mode 100644
index 00000000..8a188152
--- /dev/null
+++ b/tests/testthat/SFO_SFO_printed.txt
@@ -0,0 +1,12 @@
+<mkinmod> model generated with
+Use of formation fractions $use_of_ff: min
+Specification $spec:
+$parent
+$type: SFO; $to: m1; $sink: TRUE
+$m1
+$type: SFO; $sink: TRUE
+Coefficient matrix $coefmat available
+Compiled model $cf available
+Differential equations:
+d_parent/dt = - k_parent_sink * parent - k_parent_m1 * parent
+d_m1/dt = + k_parent_m1 * parent - k_m1_sink * m1
diff --git a/tests/testthat/test_from_max_mean.R b/tests/testthat/test_from_max_mean.R
index 8e5953b9..7529c5f2 100644
--- a/tests/testthat/test_from_max_mean.R
+++ b/tests/testthat/test_from_max_mean.R
@@ -1,3 +1,21 @@
+# Copyright (C) 2018 Johannes Ranke
+# Contact: jranke@uni-bremen.de
+
+# This file is part of the R package mkin
+
+# mkin 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.
+
+# This program 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 <http://www.gnu.org/licenses/>
+
context("Test fitting the decline of metabolites from their maximum")
test_that("Fitting from maximum mean value works", {
diff --git a/tests/testthat/test_mkinds.R b/tests/testthat/test_mkinds.R
index e017301c..1046449b 100644
--- a/tests/testthat/test_mkinds.R
+++ b/tests/testthat/test_mkinds.R
@@ -1,3 +1,21 @@
+# Copyright (C) 2019 Johannes Ranke
+# Contact: jranke@uni-bremen.de
+
+# This file is part of the R package mkin
+
+# mkin 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.
+
+# This program 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 <http://www.gnu.org/licenses/>
+
context("Test dataset class mkinds used in gmkin")
test_that("An mkinds object can be created and printed", {
diff --git a/tests/testthat/test_mkinfit_errors.R b/tests/testthat/test_mkinfit_errors.R
index 50032628..50d528e0 100644
--- a/tests/testthat/test_mkinfit_errors.R
+++ b/tests/testthat/test_mkinfit_errors.R
@@ -1,5 +1,20 @@
-library(mkin)
-library(testthat)
+# Copyright (C) 2019 Johannes Ranke
+# Contact: jranke@uni-bremen.de
+
+# This file is part of the R package mkin
+
+# mkin 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.
+
+# This program 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 <http://www.gnu.org/licenses/>
context("Special cases of mkinfit calls")
diff --git a/tests/testthat/test_mkinmod.R b/tests/testthat/test_mkinmod.R
new file mode 100644
index 00000000..430fad61
--- /dev/null
+++ b/tests/testthat/test_mkinmod.R
@@ -0,0 +1,52 @@
+# Copyright (C) 2019 Johannes Ranke
+# Contact: jranke@uni-bremen.de
+
+# This file is part of the R package mkin
+
+# mkin 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.
+
+# This program 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 <http://www.gnu.org/licenses/>
+
+context("mkinmod model generation and printing")
+
+test_that("mkinmod stops to prevent and/or explain user errors", {
+ expect_error(mkinmod(compound_x = mkinsub("SFO", to = "compound_x_y"),
+ compound_x_y = mkinsub("SFO")),
+ "variable names can not contain each other")
+ expect_error(mkinmod(compound_to_x = mkinsub("SFO")),
+ "can not contain _to_")
+ expect_error(mkinmod(sink = mkinsub("SFO")),
+ "Naming")
+
+ expect_error(mkinmod(parent = mkinsub("SFO"), use_of_ff = "foo"))
+
+ expect_error(mkinmod(parent = mkinsub("foo")))
+
+ expect_error(mkinmod(parent = mkinsub("SFO", "m1"),
+ m1 = mkinsub("FOMC")),
+ "only implemented for the first compartment")
+
+ 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", {
+ expect_known_output(print(mkinmod(parent = mkinsub("SFO", "m1"),
+ m1 = mkinsub("SFO"),
+ quiet = TRUE)),
+ file = "SFO_SFO_printed.txt")
+})
diff --git a/tests/testthat/test_schaefer07_complex_case.R b/tests/testthat/test_schaefer07_complex_case.R
index 80306bbe..844dd88f 100644
--- a/tests/testthat/test_schaefer07_complex_case.R
+++ b/tests/testthat/test_schaefer07_complex_case.R
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2015,2018 Johannes Ranke
+# Copyright (C) 2014-2015,2018,2019 Johannes Ranke
# Contact: jranke@uni-bremen.de
# This file is part of the R package mkin
@@ -16,8 +16,6 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>
-# This test was migrated from a RUnit test inst/unitTests/runit.mkinfit.R
-
context("Complex test case from Schaefer et al. (2007) Piacenza paper")
test_that("Complex test case from Schaefer (2007) can be reproduced (10% tolerance)", {

Contact - Imprint