aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DESCRIPTION2
-rw-r--r--GNUmakefile5
-rw-r--r--test.log20
-rw-r--r--test_dev.log117
-rw-r--r--tests/testthat/print_mmkin_biphasic_mixed.txt26
-rw-r--r--tests/testthat/print_mmkin_sfo_1_mixed.txt19
-rw-r--r--tests/testthat/setup_script.R1
-rw-r--r--tests/testthat/test_mixed.R2
-rw-r--r--tests/testthat/test_saemix_parent.R6
9 files changed, 107 insertions, 91 deletions
diff --git a/DESCRIPTION b/DESCRIPTION
index 41237793..c2aefe50 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -2,7 +2,7 @@ Package: mkin
Type: Package
Title: Kinetic Evaluation of Chemical Degradation Data
Version: 1.1.0
-Date: 2022-03-02
+Date: 2022-03-03
Authors@R: c(
person("Johannes", "Ranke", role = c("aut", "cre", "cph"),
email = "jranke@uni-bremen.de",
diff --git a/GNUmakefile b/GNUmakefile
index 75a18e58..d6a6d9b5 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -57,6 +57,9 @@ build-no-vignettes: $(TGZVNR)
install: build
"$(RBIN)/R" CMD INSTALL $(TGZ)
+devinstall: build
+ "$(RDEVBIN)/R" CMD INSTALL $(TGZ)
+
quickinstall: build-no-vignettes
"$(RBIN)/R" CMD INSTALL $(TGZVNR)
@@ -82,7 +85,7 @@ test: install
"$(RBIN)/Rscript" -e 'options(cli.dynamic = TRUE); devtools::test()' 2>&1 | tee test.log
sed -i -e "s/.*\r.*\r//" test.log
-devtest: install
+devtest: devinstall
"$(RDEVBIN)/Rscript" -e 'options(cli.dynamic = TRUE); devtools::test()' 2>&1 | tee test_dev.log
sed -i -e "s/\r.*\r//" test_dev.log
diff --git a/test.log b/test.log
index be039e9a..c2dac1d7 100644
--- a/test.log
+++ b/test.log
@@ -3,17 +3,17 @@ Loading required package: parallel
ℹ Testing mkin
✔ | F W S OK | Context
✔ | 5 | AIC calculation
-✔ | 5 | Analytical solutions for coupled models [4.2s]
+✔ | 5 | Analytical solutions for coupled models [4.3s]
✔ | 5 | Calculation of Akaike weights
✔ | 2 | Export dataset for reading into CAKE
✔ | 12 | Confidence intervals and p-values [1.0s]
⠋ | 1 | Dimethenamid data from 2018
-✔ | 1 27 | Dimethenamid data from 2018 [63.0s]
+✔ | 1 27 | Dimethenamid data from 2018 [62.6s]
────────────────────────────────────────────────────────────────────────────────
-Skip (test_dmta.R:162:3): Different backends get consistent results for SFO-SFO3+, dimethenamid data
+Skip (test_dmta.R:164:3): Different backends get consistent results for SFO-SFO3+, dimethenamid data
Reason: Fitting this ODE model with saemix takes about 15 minutes on my system
────────────────────────────────────────────────────────────────────────────────
-✔ | 14 | Error model fitting [6.8s]
+✔ | 14 | Error model fitting [6.9s]
✔ | 5 | Time step normalisation
✔ | 4 | Calculation of FOCUS chi2 error levels [0.8s]
✔ | 14 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [1.1s]
@@ -31,21 +31,21 @@ Reason: Fitting with saemix takes around 10 minutes when using deSolve
✔ | 8 | mkinmod model generation and printing [0.2s]
✔ | 3 | Model predictions with mkinpredict [0.3s]
✔ | 16 | Evaluations according to 2015 NAFTA guidance [2.1s]
-✔ | 9 | Nonlinear mixed-effects models with nlme [9.0s]
+✔ | 9 | Nonlinear mixed-effects models with nlme [9.4s]
✔ | 16 | Plotting [1.5s]
✔ | 4 | Residuals extracted from mkinfit models
-✔ | 23 | saemix_parent [29.8s]
-✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [1.6s]
+✔ | 23 | saemix parent models [29.4s]
+✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [1.7s]
✔ | 7 | Fitting the SFORB model [4.4s]
✔ | 1 | Summaries of old mkinfit objects
✔ | 4 | Summary [0.1s]
-✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [2.5s]
-✔ | 9 | Hypothesis tests [9.6s]
+✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [2.6s]
+✔ | 9 | Hypothesis tests [9.4s]
✔ | 2 | tffm0
✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.2s]
══ Results ═════════════════════════════════════════════════════════════════════
-Duration: 144.7 s
+Duration: 144.3 s
── Skipped tests ──────────────────────────────────────────────────────────────
• Fitting this ODE model with saemix takes about 15 minutes on my system (1)
diff --git a/test_dev.log b/test_dev.log
index df159d1e..041804e9 100644
--- a/test_dev.log
+++ b/test_dev.log
@@ -1,62 +1,81 @@
-Loading mkin
+ℹ Loading mkin
Loading required package: parallel
-Testing mkin
-✔ | OK F W S | Context
-✔ | 5 | AIC calculation
-✔ | 2 | Export dataset for reading into CAKE
-✔ | 14 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [1.0 s]
-✔ | 4 | Calculation of FOCUS chi2 error levels [0.5 s]
-✔ | 7 | Fitting the SFORB model [3.4 s]
-✔ | 5 | Analytical solutions for coupled models [3.1 s]
-✔ | 5 | Calculation of Akaike weights
-✔ | 14 | Confidence intervals and p-values [1.2 s]
-✔ | 14 | Error model fitting [5.8 s]
-✔ | 5 | Time step normalisation
-✔ | 4 | Test fitting the decline of metabolites from their maximum [0.3 s]
-✔ | 1 | Fitting the logistic model [0.2 s]
-✔ | 5 3 | Nonlinear mixed-effects models [0.1 s]
+ℹ Testing mkin
+✔ | F W S OK | Context
+✔ | 5 | AIC calculation
+✔ | 5 | Analytical solutions for coupled models [14.4s]
+✔ | 5 | Calculation of Akaike weights
+✔ | 2 | Export dataset for reading into CAKE
+✔ | 12 | Confidence intervals and p-values [1.0s]
+⠋ | 1 | Dimethenamid data from 2018
+✔ | 1 27 | Dimethenamid data from 2018 [124.8s]
────────────────────────────────────────────────────────────────────────────────
-Skip (test_mixed.R:4:3): Parent fits using saemix are correctly implemented
-Reason: !saemix_available is TRUE
-
-Skip (test_mixed.R:94:3): Print methods work
-Reason: !saemix_available is TRUE
-
-Skip (test_mixed.R:118:3): saem results are reproducible for biphasic fits
-Reason: !saemix_available is TRUE
+Skip (test_dmta.R:164:3): Different backends get consistent results for SFO-SFO3+, dimethenamid data
+Reason: Fitting this ODE model with saemix takes about 15 minutes on my system
────────────────────────────────────────────────────────────────────────────────
-✔ | 2 | Test dataset classes mkinds and mkindsg
-✔ | 1 | mkinfit features [0.3 s]
-✔ | 10 | Special cases of mkinfit calls [0.3 s]
-✔ | 8 | mkinmod model generation and printing [0.2 s]
-✔ | 3 | Model predictions with mkinpredict [0.3 s]
-✔ | 14 2 | Evaluations according to 2015 NAFTA guidance [2.2 s]
+✔ | 14 | Error model fitting [6.8s]
+✔ | 5 | Time step normalisation
+✔ | 4 | Calculation of FOCUS chi2 error levels [0.8s]
+✔ | 14 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [3.5s]
+✔ | 4 | Test fitting the decline of metabolites from their maximum [0.6s]
+✔ | 1 | Fitting the logistic model [0.3s]
+⠇ | 1 8 | Nonlinear mixed-effects models
+✖ | 1 1 13 | Nonlinear mixed-effects models [1.5s]
────────────────────────────────────────────────────────────────────────────────
-Skip (test_nafta.R:25:5): Test data from Appendix B are correctly evaluated
-Reason: getRversion() >= "4.1.0" is TRUE
+Failure (test_mixed.R:5:3): Print methods work
+Results have changed from known value recorded in 'print_mmkin_dfop_1_mixed.txt'.
-Skip (test_nafta.R:53:5): Test data from Appendix D are correctly evaluated
-Reason: getRversion() >= "4.1.0" is TRUE
+old[18:21] vs new[18:21]
+ ""
+ "Mean fitted parameters:"
+ "parent_0 log_k1 log_k2 g_qlogis "
+- " 100.06 -2.68 -5.57 0.01 "
++ " 100.06 -2.68 -5.58 0.01 "
+
+Skip (test_mixed.R:68:3): saemix results are reproducible for biphasic fits
+Reason: Fitting with saemix takes around 10 minutes when using deSolve
────────────────────────────────────────────────────────────────────────────────
-✔ | 9 | Nonlinear mixed-effects models [7.9 s]
-✔ | 0 1 | Plotting [0.7 s]
+✔ | 3 | Test dataset classes mkinds and mkindsg
+✔ | 10 | Special cases of mkinfit calls [0.6s]
+✔ | 3 | mkinfit features [1.1s]
+✔ | 8 | mkinmod model generation and printing [0.2s]
+✔ | 3 | Model predictions with mkinpredict [0.3s]
+✔ | 16 | Evaluations according to 2015 NAFTA guidance [2.1s]
+✔ | 9 | Nonlinear mixed-effects models with nlme [8.5s]
+✖ | 2 14 | Plotting [1.5s]
────────────────────────────────────────────────────────────────────────────────
-Skip (test_plot.R:18:3): Plotting mkinfit, mmkin and mixed model objects is reproducible
-Reason: getRversion() >= "4.1.0" is TRUE
+Failure (test_plot.R:42:3): Plotting mkinfit, mmkin and mixed model objects is reproducible
+Snapshot of `testcase` to 'plot/mixed-model-fit-for-nlme-object.svg' has changed
+Run `testthat::snapshot_review('plot/')` to review changes
+Backtrace:
+ 1. vdiffr::expect_doppelganger(...)
+ at test_plot.R:42:2
+ 3. testthat::expect_snapshot_file(...)
+
+Failure (test_plot.R:50:3): Plotting mkinfit, mmkin and mixed model objects is reproducible
+Snapshot of `testcase` to 'plot/mixed-model-fit-for-saem-object-with-mkin-transformations.svg' has changed
+Run `testthat::snapshot_review('plot/')` to review changes
+Backtrace:
+ 1. vdiffr::expect_doppelganger(...)
+ at test_plot.R:50:2
+ 3. testthat::expect_snapshot_file(...)
────────────────────────────────────────────────────────────────────────────────
-✔ | 4 | Residuals extracted from mkinfit models
-✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [1.4 s]
-✔ | 4 | Summary [0.1 s]
-✔ | 1 | Summaries of old mkinfit objects
-✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [2.2 s]
-✔ | 9 | Hypothesis tests [7.7 s]
-✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.0 s]
+✔ | 4 | Residuals extracted from mkinfit models
+✔ | 23 | saemix_parent [28.7s]
+✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [12.2s]
+✔ | 7 | Fitting the SFORB model [16.1s]
+✔ | 1 | Summaries of old mkinfit objects
+✔ | 4 | Summary [0.1s]
+✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [19.0s]
+✔ | 9 | Hypothesis tests [67.6s]
+✔ | 2 | tffm0
+✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.0s]
══ Results ═════════════════════════════════════════════════════════════════════
-Duration: 41.2 s
+Duration: 314.2 s
── Skipped tests ──────────────────────────────────────────────────────────────
-● !saemix_available is TRUE (3)
-● getRversion() >= "4.1.0" is TRUE (3)
+• Fitting this ODE model with saemix takes about 15 minutes on my system (1)
+• Fitting with saemix takes around 10 minutes when using deSolve (1)
-[ FAIL 0 | WARN 0 | SKIP 6 | PASS 160 ]
+[ FAIL 3 | WARN 0 | SKIP 2 | PASS 237 ]
diff --git a/tests/testthat/print_mmkin_biphasic_mixed.txt b/tests/testthat/print_mmkin_biphasic_mixed.txt
deleted file mode 100644
index 712c813a..00000000
--- a/tests/testthat/print_mmkin_biphasic_mixed.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-Kinetic model fitted by nonlinear regression to each dataset
-Structural model:
-d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
- time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
- * parent
-d_m1/dt = + f_parent_to_m1 * ((k1 * g * exp(-k1 * time) + k2 * (1 - g)
- * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
- exp(-k2 * time))) * parent - k_m1 * m1
-
-Data:
-507 observations of 2 variable(s) grouped in 15 datasets
-
-<mmkin> object
-Status of individual fits:
-
- dataset
-model 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- DFOP-SFO OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK
-
-OK: No warnings
-
-Mean fitted parameters:
- parent_0 log_k_m1 f_parent_qlogis log_k1 log_k2
- 100.648 -5.380 -0.093 -2.736 -4.534
- g_qlogis
- -0.142
diff --git a/tests/testthat/print_mmkin_sfo_1_mixed.txt b/tests/testthat/print_mmkin_sfo_1_mixed.txt
new file mode 100644
index 00000000..33e5bf5c
--- /dev/null
+++ b/tests/testthat/print_mmkin_sfo_1_mixed.txt
@@ -0,0 +1,19 @@
+Kinetic model fitted by nonlinear regression to each dataset
+Structural model:
+d_parent/dt = - k_parent * parent
+
+Data:
+262 observations of 1 variable(s) grouped in 15 datasets
+
+<mmkin> object
+Status of individual fits:
+
+ dataset
+model 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ SFO OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK
+
+OK: No warnings
+
+Mean fitted parameters:
+ parent_0 log_k_parent
+ 99.9 -3.3
diff --git a/tests/testthat/setup_script.R b/tests/testthat/setup_script.R
index ca0ca313..ec96fbc2 100644
--- a/tests/testthat/setup_script.R
+++ b/tests/testthat/setup_script.R
@@ -187,7 +187,6 @@ mmkin_sfo_1 <- mmkin("SFO", ds_sfo, quiet = TRUE, error_model = "tc", cores = n_
mmkin_dfop_1 <- mmkin("DFOP", ds_dfop, quiet = TRUE, cores = n_cores)
mmkin_biphasic <- mmkin(list("DFOP-SFO" = DFOP_SFO), ds_biphasic, quiet = TRUE, cores = n_cores,
error_model = "tc")
-mmkin_biphasic_mixed <- mixed(mmkin_biphasic)
# nlme
dfop_nlme_1 <- nlme(mmkin_dfop_1)
diff --git a/tests/testthat/test_mixed.R b/tests/testthat/test_mixed.R
index 798dd01f..ae8743af 100644
--- a/tests/testthat/test_mixed.R
+++ b/tests/testthat/test_mixed.R
@@ -2,7 +2,7 @@ context("Nonlinear mixed-effects models")
test_that("Print methods work", {
expect_known_output(print(fits[, 2:3], digits = 2), "print_mmkin_parent.txt")
- expect_known_output(print(mmkin_biphasic_mixed, digits = 2), "print_mmkin_biphasic_mixed.txt")
+ expect_known_output(print(mixed(mmkin_sfo_1), digits = 2), "print_mmkin_sfo_1_mixed.txt")
expect_known_output(print(dfop_nlme_1, digits = 1), "print_dfop_nlme_1.txt")
expect_known_output(print(sfo_saem_1, digits = 1), "print_sfo_saem_1.txt")
diff --git a/tests/testthat/test_saemix_parent.R b/tests/testthat/test_saemix_parent.R
index 2f05c175..8beceba9 100644
--- a/tests/testthat/test_saemix_parent.R
+++ b/tests/testthat/test_saemix_parent.R
@@ -1,3 +1,5 @@
+context("saemix parent models")
+
test_that("Parent fits using saemix are correctly implemented", {
expect_error(saem(fits), "Only row objects")
@@ -63,9 +65,9 @@ test_that("Parent fits using saemix are correctly implemented", {
expect_true(all(rel_diff_mmkin[c("parent_0", "k1")] < 0.20))
expect_true(all(rel_diff_mmkin_tested[c("parent_0", "k1", "k2")] < 0.20))
- # We get < 15% deviations with transformations made in mkin
+ # We get < 20% deviations with transformations made in mkin
rel_diff_1 <- (s_dfop_s1$confint_back[, "est."] - dfop_pop) / dfop_pop
- expect_true(all(rel_diff_1 < 0.15))
+ expect_true(all(rel_diff_1 < 0.20))
# We get < 20% deviations with transformations made in saemix
rel_diff_2 <- (s_dfop_s2$confint_back[, "est."] - dfop_pop) / dfop_pop

Contact - Imprint