From b2b5c0f2294e19178e95c9adc5351a1b73218a34 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Wed, 27 Feb 2019 12:57:10 +0100 Subject: Further increase test coverage --- tests/testthat/SFO_SFO_printed.txt | 12 +++++++ tests/testthat/test_from_max_mean.R | 18 ++++++++++ tests/testthat/test_mkinds.R | 18 ++++++++++ tests/testthat/test_mkinfit_errors.R | 19 ++++++++-- tests/testthat/test_mkinmod.R | 52 +++++++++++++++++++++++++++ tests/testthat/test_schaefer07_complex_case.R | 4 +-- 6 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 tests/testthat/SFO_SFO_printed.txt create mode 100644 tests/testthat/test_mkinmod.R (limited to 'tests') 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 @@ + 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 + 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 + 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 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 + +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 -# 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)", { -- cgit v1.2.1